實驗環境: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 成功通過