前提:基于红帽商业版glusterfs 3.5
本文主要内容:glusterfs卷管理、gluster存储日志管理、BITROT检测、分层卷(弃用)、
监控工作负载、性能优化
**仅用作经验记录**
卷支持的配置项
参考官方文档SUPPORTED VOLUME OPTIONS
https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/administration_guide/volume_option_table
以只读的方式挂载卷
1
# gluster volume set volname read-only enable
当 brick 可用的空间小于等于用户声明的保留空间时,不会创建新文件,只可进行内部操作,如重平衡、自愈等。
1
# gluster volume set volname storage.reserve percentage
- 扩大卷(不支持开启异地复制的卷)
- 1.1 扩展复制卷,复制卷应扩大对应副本数量的 brick ,扩展后应立即执行 rebalance
1
# gluster volume add-brick test-volume server5:/rhgs/brick5/ server6:/rhgs/brick6/
- 1.2 扩展分布式分散卷,如果配置为 6+2 的卷,则必须添加 6 的倍数的 brick
- 1.3 扩展基础逻辑卷 lvm
- 1.3.1 强制关闭 glusterd 服务
1
2# gluster volume stop volname
# kill -9 brick-process-id - 1.3.2 扩展逻辑卷,扩展后重新启动卷
1
2
3
4
5
6
7# pvcreate /dev/PHYSICAL_VOLUME_NAME
# vgextend VOLUME_GROUP_NAME /dev/PHYSICAL_VOLUME_NAME
# lvextend -L+nG VOLUME_GROUP_NAME/POOL_NAME
# lvextend -L+nG /dev/mapper/ LOGICAL_VOLUME_NAME-VOLUME_GROUP_NAME
# xfs_growfs /dev/VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME
# mount -o remount /dev/VOLUME_GROUP_NAME/LOGICAL_VOLUME_NAME /bricks/path_to_brick
# gluster volume start VOLNAME force
- 1.3.1 强制关闭 glusterd 服务
- 缩小卷
- 2.1 收缩复制卷,必须收缩 replica 的倍数
1
# gluster volume remove-brick test-volume server2:/rhgs/brick2 start
- 2.1.1 检查移除状态
1
# gluster volume remove-brick VOLNAME BRICK status
- 2.1.2 显示状态为迁移完成,提交移除
1
# gluster volume remove-brick VOLNAME BRICK commit
- 2.1.3 停止移除操作
1
# gluster volume remove-brick VOLNAME BRICK stop
- 2.1.1 检查移除状态
- 迁移卷
- 3.1 复制卷执行新 brick 替换旧 brick
- 3.1.1 执行替换
1
# gluster volume replace-brick test-volume server0:/rhgs/brick1 server5:/rhgs/brick1 commit force
- 3.1.2 新brick 在线后,检查自愈
1
# gluster volume heal VOL_NAME info
- 3.1.1 执行替换
- 重平衡 rebalance
- 4.1 启动重平衡,最好将所有挂载点都取消后进行
1
# gluster volume rebalance VOLNAME start
- 4.2 重平衡速率
1
# gluster volume set VOLNAME rebal-throttle lazy|normal|aggressive
- 4.3 显示重平衡状态
1
# gluster volume rebalance VOLNAME start
- 4.4. 停止重平衡
1
# gluster volume rebalance VOLNAME stop
- 管理脑裂 split-brain
- 5.1 防止脑裂
- 5.1.1 服务器端配置
- 5.1.1.1 为所有卷开启超过一半节点在线
1
# gluster volume set all cluster.server-quorum-ratio 51%
- 5.1.1.2 特定卷需要以下配置以参与服务器仲裁
1
#gluster volume set testvol cluster.server-quorum-type server
- 5.1.1.1 为所有卷开启超过一半节点在线
- 5.1.2 客户端配置
- 5.1.2.1 cluster.quorum-count 允许写入时必须可用的最小brick 数量
- 5.1.2.2 cluster.quorum-type 配置写入行为,
- fixed 则只要副本集中可用的砖块数量大于或等于该cluster.quorum-count选项的值,就允许写入。
- auto 则当副本集中至少 50% 的砖块可用时,允许写入。
- 5.1.1 服务器端配置
- 5.2 从脑裂中恢复文件
参考官方文档Recovering from File Split-brain
https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/administration_guide/sect-managing_split-brain
存储日志管理
- 日志轮换
每周轮换一次,每两周以 gzip 格式压缩一次,保存 52 周的日志
- 日志轮换
- 配置日志格式
- 为卷配置
1
2
3
4日志包含 msg id
# gluster volume set VOLNAME diagnostics.brick-log-format with-msg-id
日志不包含 msg id
# gluster volume set testvol diagnostics.brick-log-format no-msg-id - 为客户端配置
1
2
3
4日志包含 msg id
# gluster volume set testvol diagnostics.client-log-format with-msg-id
日志不包含 msg id
# gluster volume set testvol diagnostics.client-log-format no-msg-id - 为 glusterd 服务配置
1
2
3
4日志包含 msg id
# glusterd --log-format=with-msg-id
日志不包含 msg id
# glusterd --log-format=no-msg-id
- 日志等级
默认为info
,即仅记录CRITICAL
ERROR
WARNING
INFO
的信息
- 3.1 将 brick 日志等级提升为 warning
1
# gluster volume set testvol diagnostics.brick-log-level WARNING
- 3.2 将 brick 的 syslog 日志等级提升为 warning
1
# gluster volume set testvol diagnostics.brick-sys-log-level WARNING
- 3.3 将客户端日志等级调整为 error
1
# gluster volume set testvol diagnostics.client-log-level ERROR
- 3.4 客户端 syslog 日志等级调整为 error
1
# gluster volume set testvol diagnostics.client-sys-log-level ERROR
- 3.5 为
glusterd
服务配置日志级别/etc/sysconfig/gluster
配置完成后重启1
LOG_LEVEL='value'
glusterd
服务 - 3.6 以日志级别为 error 的方式运行
volume status
1
# gluster --log-level=ERROR volume status
- 日志等级
BITROT检测
- 启用或禁用 BitRot 检测
1
2gluster volume bitrot VOLNAME enable
gluster volume bitrot VOLNAME disable
- 启用或禁用 BitRot 检测
- 清理文件
- 2.1 启动按需清理
1
gluster volume bitrot VOLNAME scrub ondemand
- 2.2 暂停清理
1
gluster volume bitrot VOLNAME scrub pause
- 2.3 恢复卷清理
1
gluster volume bitrot VOLNAME scrub resume
- 2.4 卷清理状态
1
gluster volume bitrot VOLNAME scrub status
- 2.5 配置清理的速录,默认
lazy
normal
aggressive
1
gluster volume bitrot VOLNAME scrub-throttle rate
- 2.6 配置清理频率
daily
weekly
默认biweekly
monthly
1
gluster volume bitrot VOLNAME scrub-frequency frequency
分层卷(弃用)
- 将层附加到卷
1
# gluster volume tier test-volume attach replica 3 server1:/rhgs/brick5/b1 server2:/rhgs/brick6/b2
- 将层附加到卷
- 要设置文件升级和降级的百分比,请运行以下命令:
1
2# gluster volume set VOLNAME cluster.watermark-hi value
# gluster volume set VOLNAME cluster.watermark-low value
- 要设置文件升级和降级的百分比,请运行以下命令:
- 显示分成卷的信息
1
# gluster volume tier VOLNAME status
- 显示分成卷的信息
- 分层卷分离
4.1 启动分离
1
# gluster volume tier VOLNAME detach start
4.2 检查分离状态
1
# gluster volume tier VOLNAME detach status
4.3 成功分离后,提交层分离
1
# gluster volume tier VOLNAME detach commit
监控工作负载
- 卷分析
- 1.1 启动卷分析
1
# gluster volume profile VOLNAME start
- 1.2 显示信息
1
# gluster volume profile VOLNAME info
- 1.3 停止卷分析
1
# gluster volume profile VOLNAME stop
- 1.4 显示挂载点的所有信息
1
# setfattr -ntrusted.io-stats-dump -v output_file_id mount_point
性能优化
- 小文件性能增强
- 1.1 为客户端配置时间线程,最多可用同时处理n个网络连接
1
# gluster volume set test-vol client.event-threads 4
- 1.2 为访问卷的服务器调整事件线程
1
# gluster volume set test-vol server.event-threads 4
- 1.3 启用查找优化
1
# gluster volume set VOLNAME cluster.lookup-optimize <on/off>
- 目录操作
- 2.1 启用元数据存储
1
# gluster volume set <volname> group metadata-cache
- 2.2 增加可以缓存的文件数量,增加会增加 brick 进程内存占用
1
# gluster volume set <VOLNAME> network.inode-lru-limit <n>