不重启修复磁盘乱序

2018-06-13 11:54:41 浏览数 (1)

不重启修复/dev/sdx 磁盘乱序

磁盘热插拔过程中可能会有/dev/sdx名称乱序的问题,通过下面的方法可以在不重启节点的情况下删除并重新添加磁盘,更新磁盘设备名称。

删除设备

代码语言:javascript复制
停OSD服务,释放被占用的磁盘资源,以停OSD1,释放其/dev/sdd为例
[root@demo cephuser]# mount -l
...
/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sdc1 on /var/lib/ceph/osd/ceph-0 type xfs (rw,noatime,nodiratime,attr2,inode64,logbsize=256k,noquota)
/dev/sdb4 on /var/lib/ceph/osd/ceph-2 type xfs (rw,noatime,nodiratime,attr2,inode64,logbsize=256k,noquota)
/dev/sdd1 on /var/lib/ceph/osd/ceph-1 type xfs (rw,noatime,nodiratime,attr2,inode64,logbsize=256k,noquota)
[root@demo cephuser]# systemctl stop  ceph-osd@1
[root@demo cephuser]# systemctl disable ceph-osd@1
Removed symlink /etc/systemd/system/ceph-osd.target.wants/ceph-osd@1.service.
[root@demo cephuser]# umount /dev/sdd1

一定要确保已经释放了对应的磁盘资源才能执行后面的操作。

代码语言:javascript复制
[root@demo cephuser]# cat /sys/block/sdd/device/state
running
[root@demo cephuser]# echo "offline" > /sys/block/sdd/device/state
[root@demo cephuser]# cat /sys/block/sdd/device/state
offline
[root@demo cephuser]# ls /dev/sd
sda   sda1  sda2  sdb   sdb1  sdb2  sdb3  sdb4  sdc   sdc1  sdd   sdd1
[root@demo cephuser]#  echo "1" > /sys/block/sdd/device/delete
[root@demo cephuser]# ls /dev/sd
sda   sda1  sda2  sdb   sdb1  sdb2  sdb3  sdb4  sdc   sdc1

重新添加

代码语言:javascript复制
[root@demo cephuser]# ls /dev/sd
sda   sda1  sda2  sdb   sdb1  sdb2  sdb3  sdb4  sdc   sdc1
[root@demo cephuser]# echo "- - -" | tee /sys/class/scsi_host/host5/scan
- - -
[root@demo cephuser]# ls /dev/sd
sda   sda1  sda2  sdb   sdb1  sdb2  sdb3  sdb4  sdc   sdc1  sdd   sdd1

无法确认具体的hostx名称的情况下,可以把对应的host都执行一下上面的命令,比如这里有5个host

代码语言:javascript复制
[root@demo cephuser]# ls /sys/class/scsi_host/host
host0/ host1/ host2/ host3/ host4/ host5/
[root@demo cephuser]# for i in {0..5};do echo "- - -" | tee /sys/class/scsi_host/host${i}/scan;done
- - -
- - -
- - -
- - -
- - -
- - -

0 人点赞