Saturday, January 18, 2025

Sửa lỗi has a holder (500) Ceph trên Proxmox

-

Thông báo lỗi “has a holder (500) Ceph trên Proxmox” có thể xuất hiện khi bạn thử format một ổ đĩa trên Proxmox VE và ổ đĩa đó có một “holder” đang được sử dụng bởi Ceph. “Holder” ở đây đề cập đến một tiến trình hoặc dịch vụ đang sử dụng ổ đĩa hoặc tệp liên quan đến Ceph.

disk/partition '/dev/sda' has a holder (500)

Để giải quyết vấn đề này, bạn có thể thực hiện các bước sau:

  • Kiểm tra Tiến trình Ceph: Đảm bảo rằng không có dịch vụ Ceph nào đang sử dụng ổ đĩa mục tiêu. Bạn có thể sử dụng lệnh ceph status để kiểm tra trạng thái của cụm Ceph và đảm bảo rằng nó đã ngừng.
  • Unmount Ceph Mounts: Nếu bạn đang sử dụng Ceph Mounts, đảm bảo rằng bạn đã gỡ bỏ chúng trước khi thử format ổ đĩa.
  • Kiểm tra OSDs: Kiểm tra xem các OSDs (Object Storage Daemons) trong Ceph cụm có thể đang sử dụng ổ đĩa mục tiêu. Bạn có thể sử dụng lệnh ceph osd tree để xem thông tin về OSDs và kiểm tra xem ổ đĩa có liên quan đã được gỡ bỏ chưa.
  • Cân nhắc Tác động đến Ceph: Trước khi tiến hành format, bạn nên cân nhắc tác động đến Ceph cụm. Format ổ đĩa có thể gây mất dữ liệu hoặc gây rủi ro cho cụm Ceph, nên bạn cần thực hiện một kế hoạch cẩn thận.

Nếu sau khi thực hiện các bước kiểm tra và đảm bảo rằng không có dịch vụ hoặc tiến trình Ceph nào đang sử dụng ổ đĩa mục tiêu, bạn vẫn gặp thông báo lỗi này, có thể xem xét kiểm tra xem có lỗi hệ thống hoặc các vấn đề khác đang gây ra tình trạng này. Điều này có thể yêu cầu phân tích thêm để xác định nguyên nhân cụ thể.

Nếu bạn đã cài mới cụm Ceph nhưng vẫn còn xuất hiện lỗi trên, hãy thực hiện các bước sau đây:

Dưới đây là hình ảnh các ổ đĩa đã được sử dụng ở 1 cụm Ceph cũ với trạng thái là LVM, Ceph (OSD.x).

Bây giờ bạn thử vào format disk bất kỳ để join vào cụm mới.

Xác nhận Format SDA.

Bạn sẽ gặp lỗi has a holder (500) như dưới.

Giờ hãy vào trong terminal sử dụng lệnh lsblk để list các disk hiện có đang bị lỗi.

$ lsblk 
NAME                                                                                                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                                                                                                     8:0    0   3.5T  0 disk 
└─ceph--f538fda8--930a--4353--a663--a43f4b4478a6-osd--block--41a0a8fd--0566--454e--aa45--731e161f36e4 253:5    0   3.5T  0 lvm  
sdb                                                                                                     8:16   0   3.5T  0 disk 
└─ceph--485ed7c2--5935--4897--8cd4--67f0fcdac16b-osd--block--8e8a79e4--877d--45f6--971b--e7957fb5b9fc 253:6    0   3.5T  0 lvm  
sdc                                                                                                     8:32   0   3.5T  0 disk 
└─ceph--025ab07d--fcea--45b0--911b--60982089400b-osd--block--9741e818--4daa--4b29--be46--c1dbca3f262e 253:9    0   3.5T  0 lvm  
sdd                                                                                                     8:48   0   3.5T  0 disk 
└─ceph--bed3549e--eb5d--4688--9e67--436c9d4c8422-osd--block--eb117d84--c089--4bda--abcd--40f45bdfc111 253:1    0   3.5T  0 lvm  
sde                                                                                                     8:64   0   3.5T  0 disk 
└─ceph--7e03a223--9b7a--44bf--86af--d0b408507d86-osd--block--c08fcf05--69c6--4eaa--81e0--74ec7c7a1b9d 253:0    0   3.5T  0 lvm  
sdf                                                                                                     8:80   0   3.5T  0 disk 
└─ceph--c4bdbad3--ad39--4129--b0de--0a91104afd20-osd--block--d50f3a1e--a001--4549--aa6d--49c1452bae20 253:2    0   3.5T  0 lvm  
sdg                                                                                                     8:96   0   3.5T  0 disk 
└─ceph--5746fd7d--f1a4--4921--801c--d76b0e3a5b00-osd--block--5f0592d3--84a6--4b25--b3d8--d937f53db826 253:3    0   3.5T  0 lvm  
sdh                                                                                                     8:112  0   3.5T  0 disk 
└─ceph--f2a2457b--c144--40b2--9b6a--fccf76368eda-osd--block--b66011e6--44bf--4671--8ae5--56619fa4bd4e 253:4    0   3.5T  0 lvm  
sdi                                                                                                     8:128  0 446.6G  0 disk 
├─sdi1                                                                                                  8:129  0  1007K  0 part 
├─sdi2                                                                                                  8:130  0     1G  0 part /boot/efi
└─sdi3                                                                                                  8:131  0 445.6G  0 part 
  ├─pve-swap                                                                                          253:7    0     8G  0 lvm  [SWAP]
  ├─pve-root                                                                                          253:8    0    96G  0 lvm  /
  ├─pve-data_tmeta                                                                                    253:10   0   3.3G  0 lvm  
  │ └─pve-data                                                                                        253:12   0 319.1G  0 lvm  
  └─pve-data_tdata                                                                                    253:11   0 319.1G  0 lvm  
    └─pve-data                                                                                        253:12   0 319.1G  0 lvm  

Sử dụng các lệnh sau để sửa lỗi cho từng ổ đĩa.

wipefs -fa /dev/<tên ổ đĩa>
dd if=/dev/zero of=/dev/<tên ổ đĩa> bs=1M count=1000
udevadm settle
reboot

Các lệnh này đã sử dụng dường như đã giúp mình giải quyết vấn đề liên quan đến lỗi “has a holder (500) Ceph trên Proxmox”.

Dưới đây là tác dụng của từng lệnh:

  • wipefs -fa /dev/sda: Lệnh này được sử dụng để xóa mọi chữ ký (file system signatures) hoặc dấu vết của filesystem trên ổ đĩa /dev/sda. Ceph có thể để lại các dấu vết trên ổ đĩa sau khi sử dụng, và việc sử dụng lệnh này giúp loại bỏ chúng, cho phép bạn format lại ổ đĩa mà không gặp lỗi.
  • dd if=/dev/zero of=/dev/nvme4n1 bs=1M count=1000: Lệnh dd được sử dụng để ghi dữ liệu từ thiết bị nguồn (if=/dev/zero, dữ liệu 0) vào ổ đĩa /dev/sda. Điều này tạo ra một file dữ liệu 0 với dung lượng 1 GB trên ổ đĩa. Mục tiêu của lệnh này là ghi đè lên dữ liệu cũ trên ổ đĩa và đảm bảo rằng không còn dữ liệu cũ hoặc chữ ký hệ thống trên ổ đĩa.
  • udevadm settle: Lệnh này được sử dụng để đảm bảo rằng tất cả các thay đổi cấu hình và quy tắc của hệ thống udev đã hoàn thành trước khi bạn thực hiện bước tiếp theo. Udev là một hệ thống quản lý thiết bị trong Linux, và việc sử dụng udevadm settle đảm bảo rằng mọi thay đổi đã được áp dụng trước khi bạn khởi động lại hệ thống.
  • reboot: Cuối cùng, sau khi bạn đã xóa chữ ký, ghi đè dữ liệu và đảm bảo rằng tất cả các thay đổi đã được áp dụng, bạn khởi động lại hệ thống để hoàn tất quá trình format và làm sạch ổ đĩa.

Những lệnh này giúp đảm bảo rằng ổ đĩa không còn chứa dữ liệu hoặc chữ ký hệ thống liên quan đến Ceph, và bạn có thể sử dụng nó lại cho mục đích khác mà không gặp lỗi “has a holder (500) Ceph”.

Ví dụ đầu ra cho các lệnh:

  • Với wipefs -fa /dev/sda.
$ wipefs -fa /dev/sda
/dev/sda: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31

Với dd if=/dev/zero of=/dev/sda bs=1M count=1000.

$ dd if=/dev/zero of=/dev/sda bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.426739 s, 2.5 GB/s

Với udevadm settle bạn sẽ không nhận được kết quả đầu ra.

udevadm settle

Lệnh reboot thì bạn biết rồi.

reboot

Hoặc đơn giản bạn có thể thêm các disk bị lỗi vào list array rồi chạy đoạn script dưới.

cat > ./fix-disk.sh << 'OEF'
#!/bin/bash

array=('sda' 'sdb' 'sdc' 'sdd' 'sde' 'sdf' 'sdg' 'sdh')

for i in ${array[@]}; do
    wipefs -fa /dev/$i
    sleep 1
    dd if=/dev/zero of=/dev/$i bs=1M count=1000
    
done

udevadm settle
reboot
OEF

Chạy script bằng lệnh . fix-disk.sh.

$ . fix-disk.sh 
/dev/sda: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.431767 s, 2.4 GB/s
/dev/sdb: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.431349 s, 2.4 GB/s
/dev/sdc: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.430889 s, 2.4 GB/s
/dev/sdd: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.432012 s, 2.4 GB/s
/dev/sde: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.426589 s, 2.5 GB/s
/dev/sdf: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.425183 s, 2.5 GB/s
/dev/sdg: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.429609 s, 2.4 GB/s
/dev/sdh: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.427725 s, 2.5 GB/s

Sau khi chạy xong trạng thái sử dụng disk đã chuyển sang Device Mapper, tuy nhiên bạn vẫn chưa thể sử dụng được và cũng không thể format được.

Hãy khởi động lại OS và bạn sẽ có kết quả Usage là No như dưới.

Giờ đây bạn có thể sử dụng đĩa này để thêm vào OSD của Ceph nhé.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories