GlusterFS更换故障Brick
1 前言
笔者公司内有一套GlusterFS分布式存储,最近数据分区的文件系统提示错误,群集有一个Brick需要替换掉。
基于稳妥操作的原则,笔者要先搭建测试环境并通过测试后才能在真实环境中执行,以下是笔者的测试文档,给有需要的博友参阅,另外笔者在发表本文时已经在生产环境通过验证。
服务器的故障日志(有修复文件系统方法的博友欢迎指教):
可以看到如下信息:
2 实践部分
2.1 环境信息
2.1.1 主机信息
GlusterH0[1-5]:
hostname=GlusterH0[1-5].cmdschool.org
ipaddress=10.168.0.19[1-5]
2.1.2 名称解析配置
In GlusterH0[1-6]
2.1.3 配置YUM源
In GlusterH0[1-6]
2.1.4 关闭防火墙
In GlusterH0[1-6]
2.2 配置数据存储根目录
In GlusterH0[1-5]
2.2.1 新建分区
详细向导如下:
2.2.2 发现并校验
2.2.3 创建文件系统
2.2.4 配置挂载
2.3 配置glusterfs服务端
In GlusterH0[1-5] :
2.3.1 安装yum源
2.3.2 启动服务
2.4 配置信任池
In GlusterH01:
显示如成功信息:
检查信任池状态
显示如下:
检查本与其他服务器的连接状态
显示如下:
注:以上可以看出本机与其他的每个brick都有两个TCP连接,一共6个。
2.5 配置GlusterFS卷
2.5.1 配置存储位置
In GlusterH0[1-4] :
2.5.2 创建Gluster卷
In GlusterH01 :
显示如成功信息:
2.5.3 启动GlusterFS卷
In GlusterH01 :
显示如成功信息:
2.5.4 验证卷的信息
In GlusterH01 :
显示如下:
2.6 配置Gluster客户端
In GlusterH01 :
2.6.1 安装客户端相关包
2.6.2 手动挂载卷gv0到本地
2.7 测试Gluster卷
2.7.1 写入测试
In GlusterH01 :
2.7.2 写入确认
In GlusterH01 :
In GlusterH0[1-4] :
2.8 模拟brick故障
2.8.1 查看当前存储状态
In GlusterH01 :
显示如下:
注:注意到Online项全部为“Y”
2.8.2 制造故障
In GlusterH01 :
注释掉如下行:
重启服务器
2.8.3 查看当前存储状态
In GlusterH01 :
显示如下:
注:注意到GH01的Online项为“N”
注:文件系统故障,假设物理硬盘没有问题或已经更换阵列中的硬盘
2.9 恢复故障brick方法
2.9.1 结束故障brick的进程
In GlusterH01 :
显示如下:
注:如果状态Online项为“N”的GH01存在PID号(不显示N/A)应当使用如下命令结束掉进程方可继续下面步骤。
2.9.2 创建新的数据目录
In GlusterH01:
编辑fstab
去掉注释:
重新挂载文件系统:
增加新的数据存放文件夹(不可以与之前目录一样)
2.9.3 查询故障节点的备份节点(gh02)目录的扩展属性
In GlusterH01:
显示如下:
2.9.4 挂载卷并触发自愈
In GlusterH01:
1)将卷挂到mnt目录下
2)新建一个卷中不存在的目录并删除
3)设置扩展属性触发自愈
2.9.5 检查当前节点是否挂起xattrs
In GlusterH01:
1)再次查询故障节点的备份节点(gh02)目录的扩展属性
发现如下:
注:留意第4行,表示xattrs已经将源标记为gh02:/data/brick1/gv0
2)检查卷的状态是否显示需要替换
In GlusterH01:
显示如下:
注:状态提示传输端点未连接(第2行)
2.9.6 使用强制提交完成操作
In GlusterH01:
提示如下表示正常完成:
注:也可以将数据恢复到另外一台服务器,详细命令如下(可选):
2.9.7 检查存储的在线状态
In GlusterH01:
显示如下:
另外,如果更换到其他服务器状态显示如下:
参阅文档
===================================
官方更换操作:
http://gluster.readthedocs.io/en/latest/Administrator%20Guide/Managing%20Volumes/#shrinking-volumes