Ceph残留磁盘清理与格式化
背景介绍
在Ceph存储集群退役或重构过程中,经常会遇到需要清理和重新格式化Ceph OSD磁盘的情况。这些磁盘通常包含LVM(逻辑卷管理)结构,需要系统性地清理才能重新利用。安全地清理Ceph残留磁盘并重新格式化为XFS文件系统。
环境说明
磁盘信息如下:
nvme0n1 259:0 0 3.5T 0 disk
└─ceph--[volume-group-id-1]-osd--block--[logical-volume-id-1] 253:1 0 3.5T 0 lvm
nvme1n1 259:1 0 3.5T 0 disk
└─ceph--[volume-group-id-2]-osd--block--[logical-volume-id-2] 253:0 0 3.5T 0 lvm
这些是两块3.5TB的NVMe磁盘,之前用作Ceph OSD设备,现在需要清理并重新格式化。
清理步骤详解
1. 确认磁盘状态
需要确认磁盘的当前状态。使用lsblk
命令可以查看磁盘及其分区信息:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 3.5T 0 disk
└─ceph--[volume-group-id-1]-osd--block--[logical-volume-id-1] 253:1 0 3.5T 0 lvm
nvme1n1 259:1 0 3.5T 0 disk
└─ceph--[volume-group-id-2]-osd--block--[logical-volume-id-2] 253:0 0 3.5T 0 lvm
2. 检查挂载状态
确保这些磁盘没有被挂载,以免数据丢失:
# mount | grep ceph
如果没有输出,说明磁盘未被挂载,可以安全地进行下一步操作。
3. 检查LVM卷状态
查看LVM逻辑卷的状态:
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
osd-block-[logical-volume-id-2] ceph-[volume-group-id-2] -wi-a----- 3.49t
osd-block-[logical-volume-id-1] ceph-[volume-group-id-1] -wi-a----- 3.49t
4. 删除LVM逻辑卷
删除第一个LVM逻辑卷:
# sudo lvremove -f ceph-[volume-group-id-2]/osd-block-[logical-volume-id-2]
Logical volume "osd-block-[logical-volume-id-2]" successfully removed
删除第二个LVM逻辑卷:
# sudo lvremove -f ceph-[volume-group-id-1]/osd-block-[logical-volume-id-1]
Logical volume "osd-block-[logical-volume-id-1]" successfully removed
5. 删除卷组
删除第一个卷组:
# sudo vgremove -f ceph-[volume-group-id-2]
Volume group "ceph-[volume-group-id-2]" successfully removed
删除第二个卷组:
# sudo vgremove -f ceph-[volume-group-id-1]
Volume group "ceph-[volume-group-id-1]" successfully removed
6. 检查物理卷状态
查看物理卷的状态:
# sudo pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1 lvm2 --- 3.49t 3.49t
/dev/nvme1n1 lvm2 --- 3.49t 3.49t
7. 删除物理卷
删除第一个物理卷:
# sudo pvremove -f /dev/nvme0n1
Labels on physical volume "/dev/nvme0n1" successfully wiped.
删除第二个物理卷:
# sudo pvremove -f /dev/nvme1n1
Labels on physical volume "/dev/nvme1n1" successfully wiped.
8. 格式化磁盘
将第一个磁盘格式化为XFS文件系统:
# sudo mkfs.xfs -f /dev/nvme0n1
meta-data=/dev/nvme0n1 isize=512 agcount=4, agsize=234421142 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=937684566, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=457853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
将第二个磁盘格式化为XFS文件系统:
# sudo mkfs.xfs -f /dev/nvme1n1
meta-data=/dev/nvme1n1 isize=512 agcount=4, agsize=234421142 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=937684566, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=457853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
9. 验证格式化结果
使用lsblk -f
命令验证磁盘格式化结果:
# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
nvme0n1 xfs [uuid-disk-1]
nvme1n1 xfs [uuid-disk-2]
可以看到,两个磁盘都已成功格式化为XFS文件系统,并且分配了UUID。
后续操作建议
完成格式化后,根据需要执行以下操作:
创建挂载点:
sudo mkdir -p /mnt/disk1 sudo mkdir -p /mnt/disk2
临时挂载:
sudo mount /dev/nvme0n1 /mnt/disk1 sudo mount /dev/nvme1n1 /mnt/disk2
设置永久挂载:编辑
/etc/fstab
文件,添加以下内容:UUID=[uuid-disk-1] /mnt/disk1 xfs defaults,nofail,discard 0 0 UUID=[uuid-disk-2] /mnt/disk2 xfs defaults,nofail,discard 0 0
设置权限:根据需要设置适当的权限:
sudo chown -R user:group /mnt/disk1 sudo chown -R user:group /mnt/disk2
总结
介绍了如何清理Ceph残留磁盘并重新格式化为XFS文件系统的完整过程。通过系统性地删除LVM逻辑卷、卷组和物理卷,然后重新格式化磁盘,成功地将两块3.5TB的NVMe磁盘从Ceph OSD设备转换为可用的XFS文件系统。这些磁盘现在可以用于新的存储需求。
在执行类似操作时,请务必确保数据已备份或不再需要,因为这些操作会永久删除磁盘上的所有数据。