实验环境:centos7 服务器
问题:之前服务器 做过ceph,之后格式化磁盘,数据盘作raid0。系统装好后,查看设备信息。
lsblk,显示部分磁盘正常,部分下面有-ceph-**等标识,用ilo多次格式化磁盘作raid0均无效果。
直接parted /dev/sdb , 做好分区/dev/sdm1,格式化/dev/sdb mkfs.xfs 出错,cannot open /dev/sdm: Device or resource busy
[root@k8s-node1 dev]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot └─sda2 8:2 0 19.8G 0 part ├─centos-root 253:0 0 15.8G 0 lvm / └─centos-swap 253:1 0 4G 0 lvm sdb 8:16 0 20G 0 disk └─ceph--ad379ab6--8ecf--43b6--9059--81da051e6ce2-osd--block--ce003820--8473--40ed--8c0f--1a33ac015d11 253:2 0 20G 0 lvm sr0 11:0 1 10.3G 0 rom
[root@k8s-node1 dev]# mkfs.xfs /dev/sdb
mkfs.xfs: cannot open /dev/sdb: 设备或资源忙
解决方法:
dmsetup介绍
根据官方解释,说dmsetup 是low level logical volume management 。我理解的意思是,这是一个更加底层的逻辑卷管理工具。平时我们管理linux 上的逻辑卷,使用lvm相关的工具即可。lvs是更高级的管理逻辑卷的命令,但是,有时候会出现类似lvm 删除不掉的lvm分区。我们可以使用dmsetup 去删除。
下图可以看到其实lvm 所管理的逻辑卷,是dm设备的软链接,而直接操作dm设备,我们就可以用dmsetup。
dmsetup ls 查看谁在占用,找到ceph-**字样(ceph-**为lsblk显示的块设备具体信息)
[root@k8s-node1 dev]# dmsetup ls ceph--ad379ab6--8ecf--43b6--9059--81da051e6ce2-osd--block--ce003820--8473--40ed--8c0f--1a33ac015d11 (253:2) centos-swap (253:1) centos-root (253:0)
使用dmsetup 删除字样
[root@k8s-node1 dev]# dmsetup remove ceph--ad379ab6--8ecf--43b6--9059--81da051e6ce2-osd--block--ce003820--8473--40ed--8c0f--1a33ac015d11 [root@k8s-node1 dev]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot └─sda2 8:2 0 19.8G 0 part ├─centos-root 253:0 0 15.8G 0 lvm / └─centos-swap 253:1 0 4G 0 lvm sdb 8:16 0 20G 0 disk sr0 11:0 1 10.3G 0 rom
lsblk 查看设备信息,可以看到ceph-**等标识等标识消失
mkfs.xfs -f /dev/sdb 成功通过