Fix lỗi disk vẫn dính LVM sau wipefs -af không cần reboot
Hướng dẫn clear LVM cho disk sau khi wipefs disk mà không cần reboot
Mô tả
Khi gõ lệnh wipefs -af cho disk đang có LVM, đôi khi hệ điều hành vẫn chưa giải phóng hoàn toàn device-mapper đang giữ disk đó. Kết quả là phải reboot server rồi chạy lại lsblk thì mới thấy disk đã được format sạch hoàn toàn.
Việc này khá phiền trong môi trường production, đặc biệt khi server đang chạy dịch vụ và không thể reboot ngay. Một ví dụ thực tế là khi cần thêm OSD mới cho Ceph, nhưng disk vẫn còn bị kẹt LVM nên Ceph không nhận là disk trắng để triển khai OSD mới.
Bài này hướng dẫn cách clear LVM còn kẹt sau khi đã wipefs -af mà không cần reboot server.
1. Tình trạng ban đầu
Kiểm tra bằng lsblk, disk /dev/sdh vẫn đang có logical volume bên dưới.

Ở ví dụ này, /dev/sdh là disk 10.9T, bên dưới vẫn còn mapping dạng:
ceph--xxx-osd--block--xxxĐây thường là LVM được Ceph tạo ra khi triển khai OSD bằng ceph-volume lvm.
2. Chạy wipefs để xóa signature trên disk
Thực hiện xóa filesystem signature / LVM signature trên disk:
wipefs -af /dev/sdh
Kết quả cho thấy wipefs đã xóa được signature LVM2_member.
Tuy nhiên, vấn đề là sau khi chạy xong, kernel vẫn có thể đang giữ device-mapper cũ.
3. Kiểm tra lại lsblk sau wipefs
Chạy lại:
lsblk
Kết quả vẫn còn thấy LVM bên dưới /dev/sdh.
Điều này nghĩa là wipefs đã xóa metadata trên disk, nhưng device-mapper / LVM mapping vẫn còn đang tồn tại trong kernel.
Nói thẳng: lúc này disk chưa thật sự “trắng” trong mắt hệ điều hành, nên các tool như Ceph vẫn có thể không dùng được disk này để tạo OSD mới.
4. Kiểm tra Volume Group còn tồn tại
Chạy:
vgs
Có thể thấy vẫn còn các VG dạng ceph-xxxx.
Tiếp tục kiểm tra LV:
lvs
Ở đây có các LV dạng:
osd-block-xxxxNếu đây là disk Ceph OSD cũ, các LV này thường chính là block device của OSD trước đó.
5. Kiểm tra device nào đang giữ disk
Kiểm tra holder của disk:
ls -l /sys/block/sdh/holders/
Kết quả cho thấy /dev/sdh đang bị giữ bởi:
dm-6Đây là nguyên nhân chính làm disk chưa được release hoàn toàn.
6. Thử zap GPT metadata
Có thể chạy thêm:
sgdisk --zap-all /dev/sdh
Lệnh này sẽ xóa GPT / partition metadata trên disk.
Tuy nhiên, nếu device-mapper vẫn còn giữ disk thì chỉ chạy sgdisk --zap-all là chưa đủ.
Kiểm tra lại lsblk:

Vẫn còn mapping LVM bên dưới /dev/sdh.
7. Thử reread partition table
Chạy:
blockdev --rereadpt /dev/sdh
lsblk
Nếu disk vẫn còn holder, kết quả có thể vẫn chưa sạch:

Lý do rất đơn giản: kernel vẫn còn device-mapper đang active.
8. Gỡ device-mapper đang giữ disk
Từ bước kiểm tra holder, ta biết disk đang bị giữ bởi /dev/dm-6.
Gỡ mapping này bằng lệnh:
dmsetup remove -f /dev/dm-6
Lưu ý cực kỳ quan trọng:
- Không chạy bừa với
dm-Xnếu chưa xác định đúng disk. - Luôn kiểm tra bằng
/sys/block/<disk>/holders/trước. - Nếu remove nhầm device-mapper đang được sử dụng, có thể ảnh hưởng dữ liệu hoặc dịch vụ đang chạy.
- Chỉ làm khi chắc chắn disk đó là disk cần xóa, không còn mount, không còn service dùng, không còn OSD cần giữ dữ liệu.
9. Kiểm tra kết quả cuối cùng
Chạy lại:
lsblk
Lúc này /dev/sdh đã hiển thị là disk trắng, không còn LV / LVM mapping bên dưới.
Đây là trạng thái mong muốn để có thể tiếp tục dùng disk cho các mục đích khác, ví dụ như thêm OSD mới cho Ceph.
10. Bộ lệnh tổng hợp
Dưới đây là flow xử lý gọn:
# 1. Kiểm tra disk
lsblk
# 2. Xóa signature
wipefs -af /dev/sdh
# 3. Xóa GPT metadata nếu cần
sgdisk --zap-all /dev/sdh
# 4. Kiểm tra holder
ls -l /sys/block/sdh/holders/
# 5. Nếu thấy dm-X đang giữ disk, remove device-mapper đó
dmsetup remove -f /dev/dm-6
# 6. Reread partition table
blockdev --rereadpt /dev/sdh
# 7. Kiểm tra lại
lsblkThay /dev/sdh và /dev/dm-6 đúng theo môi trường thực tế của bạn.
11. Trường hợp dùng với Ceph OSD
Nếu disk từng là Ceph OSD, trước khi clear disk nên đảm bảo OSD đã được xử lý đúng quy trình, ví dụ:
ceph osd out osd.
ceph osd safe-to-destroy osd.
ceph osd destroy osd. --yes-i-really-mean-it Sau đó mới xử lý disk ở tầng OS.
Nếu đang dùng ceph-volume, có thể dùng thêm:
ceph-volume lvm list
ceph-volume lvm zap /dev/sdh --destroyTuy nhiên, trong trường hợp đã wipefs -af rồi mà disk vẫn còn kẹt LVM mapping, thì điểm mấu chốt vẫn là kiểm tra holder và remove device-mapper còn sót lại.
12. Kết luận
Khi wipefs -af xong nhưng lsblk vẫn còn thấy LVM bên dưới disk, nguyên nhân thường không phải do wipefs không chạy, mà là do kernel vẫn còn giữ device-mapper cũ.
Cách xử lý đúng là:
- Kiểm tra holder của disk.
- Xác định đúng
dm-Xđang giữ disk.
- Xác định đúng
- Remove device-mapper đó bằng
dmsetup remove -f.
- Remove device-mapper đó bằng
- Reread partition table.
- Kiểm tra lại bằng
lsblk.
- Kiểm tra lại bằng
Cách này giúp clear disk mà không cần reboot server, rất hữu ích trong môi trường production, đặc biệt khi cần tái sử dụng disk để thêm OSD mới cho Ceph.