故障原因:ceph节点一个磁盘损坏,其中osd69 down了,需要更换磁盘并重新创建osd加入ceph集群。
信息采集:
更换磁盘前,查询osd69对应的盘符:
将对应的故障磁盘更换后,并重做raid,然后查看新磁盘盘符,这里新盘符为sdl :
查看空余的日志盘,发现sda13尚未使用,因此重新做osd的磁盘磁盘选用sda13为日志盘。
具体操作步骤:
-
修改root可登录(在故障节点点10.99.192.104操作)
-
使用
vi
编辑器修改/etc/ssh/sshd_config
文件,将PermitRootLogin no
改为PermitRootLogin yes
,允许root用户通过SSH登录。 -
修改后,重启SSH服务(
systemctl restart sshd
),使配置生效。注: 该步骤是要开启root用户权限,用root用户去执行下述命令,如已开启,可忽略本步骤。
-
-
关闭osd69的服务(在故障节点点10.99.192.104操作)
-
使用
systemctl
命令停止并禁用名为ceph-osd@69.service
的Ceph OSD服务,防止它自动重启。systemctl stop ceph-osd@69.service systemctl disable ceph-osd@69.service
-
-
删除osd69的映射认证(在ceph的admin节点操作10.99.192.98)
- 使用
ceph osd crush remove osd.69
从Ceph集群的CRUSH映射中移除OSD 69。 - 使用
ceph auth del osd.69
删除OSD 69的认证密钥。 - 使用
ceph osd rm 69
从Ceph集群中移除OSD 69的标识。
- 使用
-
卸载挂载目录(在故障节点10.99.192.104操作)
- 使用
umount
命令卸载/var/lib/ceph/osd/ceph-69
目录,确保磁盘可以重新格式化。
umount /var/lib/ceph/osd/ceph-69
- 使用
-
格式化磁盘(在ceph的admin节点操作10.99.192.98)
- 使用
ceph-deploy disk zap
命令在/etc/ceph
目录下执行,准备磁盘/dev/sdl
用于新的OSD,这里的chongqing7
可能是节点名或主机名。
ceph-deploy disk zap chongqing7 /dev/sdl
- 使用
-
关闭流量状态(在ceph的admin节点操作10.99.192.98)
-
使用一系列
ceph osd set
命令临时关闭OSD的多种状态,包括禁止进入(in)、上升(up)、恢复(recover)、再平衡(rebalance)、回填(backfill)以及暂停(pause)操作,这通常是为了在维护期间避免OSD影响集群状态。ceph osd set noin ceph osd set noup ceph osd set norecover ceph osd set norebalance ceph osd set nobackfill ceph osd set pause
-
-
创建osd(在ceph的admin节点操作10.99.192.98)
- 使用
ceph-deploy osd create
命令在chongqing7
节点上创建新的OSD,使用--filestore
指定文件存储后端,--fs-type xfs
指定文件系统类型为XFS,--data /dev/sdl
指定数据磁盘,--journal /dev/sda13
指定日志磁盘。
ceph-deploy osd create --filestore --fs-type xfs --data /dev/sdl --journal /dev/sda13 chongqing7
- 使用
-
检查ceph-osd@69.service是否开启,如未开启则执行命令开启。
systemctl start ceph-osd@69.service systemctl enable --runtime ceph-osd@69.service 或 systemctl enable ceph-osd@69.service
至于设置为永久开启自己还是临时开机自启,可以根据实际需求,若不知道,推荐选择和ceph集群中其他节点设置一样的即可。可以用下述命令查看
[root@chongqing7 ~]# systemctl is-enabled ceph-osd@65.service enabled-runtime
-
开启(在ceph的admin节点操作10.99.192.98)
- 使用一系列
ceph osd unset
命令重新开启之前关闭的OSD状态,使OSD能够正常参与集群操作。
ceph osd unset noin ceph osd unset noup ceph osd unset norecover ceph osd unset norebalance ceph osd unset nobackfill ceph osd unset pause
- 使用一系列
-
检查(在ceph的admin节点操作10.99.192.98)
- 使用
ceph osd tree
命令查看Ceph集群中OSD的当前树结构,确认新OSD已正确添加。
注:当上方第8步骤开启后,此时执行ceph osd tree命令才会发现osd69为up
- 使用
-
修改root不可登录(在故障节点10.99.192.104操作)
-
再次使用
vi
编辑器修改/etc/ssh/sshd_config
文件,将PermitRootLogin yes
改回PermitRootLogin no
,禁止root用户通过SSH登录。 -
修改后,重启SSH服务(
systemctl restart sshd
),使配置生效。注:该步骤是恢复原有root的设置,该操作可选择执行。
-