ceph集群更换故障硬盘

集群名称: xxxxxxxxxxxxxxxxx
monitor主机:192.168.90.71,192.168.90.72,192.168.90.73

故障盘主机:xxxxxxxxx

变更前检查

#确认mon节点信息
[root@cnsz92pl00227 ~]#cat /etc/ceph/ceph.conf |grep -i mon
mon host = 192.168.90.71,192.168.90.72,192.168.90.73
mon initial members = osd1,osd2,osd3


#确认osd对应的数据盘信息
[root@xxxxxxxxx ~]#df -h | grep -i ceph-291
/dev/sdc1              1.7T  947G  729G  57% /var/lib/ceph/osd/ceph-291


#确认osd对应的日志盘信息
[root@xxxxxxxxx ~]#ll /var/lib/ceph/osd/ceph-291
ls: cannot access /var/lib/ceph/osd/ceph-291: Input/output error   /dev/sdl2

经过比对,osd.291对应的journal 为 /dev/sdl2


#确认数据盘在阵列卡上的vd信息,以下显示表示这块盘在/c0/v2
[root@xxxxxxxxx ~]#lsscsi -s | grep -i sdc
[0:2:2:0]   disk    AVAGO    AVAGO            4.66  /dev/sdc   1.79TB

#确认数据盘在阵列卡上的物理信息,以下显示表示这块盘的物理信息为/c0/e2/s3
# storcli /c0/v2 show all | grep -A3 EID:Slt
EID:Slt DID State DG     Size Intf Med SED PI SeSz Model            Sp Type 
----------------------------------------------------------------------------
2:3     12 Onln   8 1.635 TB SAS  HDD N   N  512B ST1800MM0129     U  -    
----------------------------------------------------------------------------

#查看物理盘的故障信息
# storcli /c0/e2/s3 show all | egrep -i "fail|error"
Status = Failure
Description = Show Drive Information Failed.
/c0/e2/s3 Failure    46 - 


# osd.291   data=sdc   journal=sdl2    0:2:2:0    2:3

变更开始:

登陆monitor主机使用tell命令修改/etc/ceph/ceph.conf配置,降低磁盘迁移给磁盘带来的性能损耗,缓解磁盘压力:
ceph tell osd.* injectargs '--osd_max_backfills=1 --osd_recovery_sleep=0.5'
注意: 有可能需要加\转义一下: ceph tell osd.\* injectargs '--osd_max_backfills=1 --osd_recovery_sleep=0.5'

删除osd 方法: 手动删除
   登陆故障硬盘主机执行,停止待更换osd的守护进程实例:
   systemctl stop ceph-osd@291

   登陆monitor主机执行下面命令,将故障OSD移出集群:
   ceph osd out 291

   登陆monitor主机执行:
   ceph osd crush remove osd.291 (将该osd从ceph crush map中移除)
   ceph auth del osd.291 (删除该osd的ceph验证密钥)
   ceph osd rm 291 (将该osd从ceph集群中删除)

#以下操作在故障盘所在的主机上进行:


登陆故障硬盘主机卸载使用故障盘的文件系统:
umount /var/lib/ceph/osd/ceph-291


登陆故障硬盘主机清空日志盘1G数据:
dd if=/dev/zero of=/dev/sdl2  bs=1M count=1024
注意:不管日志盘多大,都只清空1G数据。


确认/c0/v2和/c0/e2/s3的对应性
storcli /c0/v2 show all


删除raid
storcli /c0/v2 del

如果失败
storcli /c0/v2 del force

登陆故障硬盘主机点亮磁盘:
storcli /c0/e2/s3 start locate


# osd.291   data=sdc   journal=sdl2    0:2:2:0    2:3
通知厂家人员更换硬盘!

登陆故障硬盘主机,检查更换后的情况:
storcli /c0/e2/s3 show all


1.获取缓存信息:
storcli /c0 show preservedcache
或者:
storcli -GetPreservedCacheList -aALL


2.清理指定盘缓存信息:
storcli /c0 /v* delete preservedCache
#-c0代表控制器0,v*代表vd*
或者:
storcli -DiscardPreservedCache -L10 -a0
Adapter #0
Virtual Drive(Target ID 10): Preserved Cache Data Cleared.
Exit Code: 0x00
#a0代表控制器0,L10代表target10

3.查看 VD LIST, 确认新装的磁盘是jbod还是UGood状态
storcli /c0 show

如果是UGood状态,直接进行下一步
如果是jbod状态,先把把磁盘从jbod变更成UGood
storcli /c0/e2/s3 set good force

建立raid0
storcli -CfgLdAdd -r0[2:3] WB ra Direct -a0
or
storcli /c0 add vd type=raid0 size=all drives=2:3 WB ra direct

登陆故障硬盘主机检查:
storcli /c0/e2/s3 show all


登陆故障硬盘主机,用原来数据盘对应得scsi信息检查sdi号是不是与原来一样,如果不一样就用当前看到的盘符
lsscsi -s|grep -i 0:2:2:0


初始化新更换的磁盘
ceph-disk zap /dev/sdc


登陆故障硬盘主机修改/etc/ssh/sshd_config文件,把“#PermitRootLogin yes”注释去掉,且重启sshd服务:
systemctl restart sshd

登陆monitor主机准备OSD:
先切换ceph-deploy版本,执行命令:maintance(如果ceph-deploy版本不是1.5.38,monitor主机上才会有此脚本,才需要执行)
ceph-deploy --version
1.5.38

然后进入下面目录执行命令:
cd /etc/ceph

ceph-deploy --overwrite-conf osd prepare  主机名:sdc:/dev/sdl2
说明:添加的硬盘一旦成为OSD就会自动被分区。

需要ceph -s 查看osds总数量, up数量, Sin数量是否与更换前一致,如不一致,有可能需要执行激活osd:
ceph-deploy osd activate  主机名:sdc1:/dev/sdl2
 
登陆monitor主机调大恢复速率:
ceph tell osd.* injectargs '--osd_max_backfills=1 --osd_recovery_sleep=0.3'

登陆monitor主机或故障硬盘主机,随便挑一个本地osd,以便查看osd运行时的详细配置中的osd_max_backfills和osd_recovery_sleep参数是否已经修改:
ceph daemon osd.** config show|grep -i osd_recovery_sleep

登陆monitor主机检查集群状态:
ceph -s 
ceph osd tree|grep -i down

结果验证
1. 检测/var/log/ceph/ceph-osd.291.log是否有报错
2.ceph -s 输出的osds总数量, up数量, in数量是否与更换前一致
3.检查osd及host的weight值
ceph osd tree

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大 大金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值