Giả sử sau khi bạn nâng cấp hệ thống xong, sẽ có vấn đề mà bạn có thể sẽ gặp phải sau khi nâng cấp hệ thống Proxmox từ phiên bản 7.x lên 8.x, cụ thể là với cụm Ceph.
- Nâng cấp thành công ngoại trừ Ceph:
- Bạn đã nâng cấp thành công Proxmox từ phiên bản 7.x lên 8.x, nhưng gặp vấn đề với Ceph. Điều này không quá nghiêm trọng vì bạn chỉ sử dụng Ceph để Lab, không phải cho Prod.
- Mong muốn xóa sạch cụm Ceph và bắt đầu lại từ đầu:
- Bạn muốn xóa toàn bộ cụm Ceph hiện tại, bao gồm tất cả các cấu hình và dữ liệu liên quan, để có thể thiết lập lại từ đầu một cách sạch sẽ.
- Vấn đề khi xóa monitor cuối cùng:
- Bạn đã xóa tất cả các monitors của Ceph ngoại trừ monitor cuối cùng mà bạn không thể xóa được. Bạn cũng đã xóa toàn bộ dữ liệu trên các ổ đĩa Ceph, nhưng hệ thống vẫn chưa hoàn toàn sạch sẽ như mong muốn.
- Node cũ vẫn xuất hiện khi thiết lập lại qua wizard:
- Mỗi khi bạn cố gắng thiết lập lại cụm Ceph qua wizard trong Proxmox, node cũ vẫn xuất hiện, cho thấy rằng một số cấu hình cũ của Ceph vẫn còn tồn tại.
Để giúp bạn làm sạch hoàn toàn cụm Ceph hiện tại và khởi động lại từ đầu, bạn có thể thực hiện các bước sau (lưu ý rằng các bước này này không khuyến nghị trong môi trường Prod
):
Dừng tất cả các dịch vụ Ceph:
Chạy các lệnh sau để dừng các dịch vụ Ceph:
systemctl stop ceph-mon.target
systemctl stop ceph-mgr.target
systemctl stop ceph-mds.target
systemctl stop ceph-osd.target
Xóa các tệp cấu hình và dữ liệu liên quan đến Ceph:
Xóa các tệp cấu hình systemd:
rm -rf /etc/systemd/system/ceph*
Dừng tất cả các tiến trình Ceph còn lại:
killall -9 ceph-mon ceph-mgr ceph-mds
Xóa dữ liệu của Ceph:
rm -rf /var/lib/ceph/mon/ /var/lib/ceph/mgr/ /var/lib/ceph/mds/
Gỡ cài đặt các gói Ceph:
Chạy lệnh sau để xóa hoàn toàn các gói Ceph khỏi hệ thống:
apt purge ceph-mon ceph-osd ceph-mgr ceph-mds
apt purge ceph-base ceph-mgr-modules-core
Xóa các tệp cấu hình Ceph còn lại:
Xóa các tệp cấu hình Ceph còn lại trong hệ thống:
rm -rf /etc/ceph/*
rm -rf /etc/pve/ceph.conf
rm -rf /etc/pve/priv/ceph.*
Dưới đây là tóm tắt lại các câu lệnh ở trên.
systemctl stop ceph-mon.target
systemctl stop ceph-mgr.target
systemctl stop ceph-mds.target
systemctl stop ceph-osd.target
rm -rf /etc/systemd/system/ceph*
killall -9 ceph-mon ceph-mgr ceph-mds
rm -rf /var/lib/ceph/mon/ /var/lib/ceph/mgr/ /var/lib/ceph/mds/
pveceph purge
apt purge ceph-mon ceph-osd ceph-mgr ceph-mds
apt purge ceph-base ceph-mgr-modules-core
rm -rf /etc/ceph/*
rm -rf /etc/pve/ceph.conf
rm -rf /etc/pve/priv/ceph.*
Xóa cấu hình liên quan đến Ceph trong tệp storage.cfg
:
Vấn đề tiếp theo mà bạn gặp phải với hệ thống Proxmox sau khi đã xóa cấu hình Ceph nhưng vẫn gặp lỗi khi hệ thống cố gắng tải cephfs (Ceph File System).
Jan 08 02:51:30 proxmox-node systemd[1]: Failed to mount /mnt/pve/cephfs.
Jan 08 02:51:30 proxmox-node pvestatd[978]: mount error: Job failed. See "journalctl -xe" for details.
Jan 08 02:51:40 proxmox-node pvestatd[978]: Supplied ceph config doesn't exist, /etc/pve/ceph.conf
Jan 08 02:51:40 proxmox-node systemd[1]: Reloading.
Jan 08 02:51:40 proxmox-node systemd[1]: Mounting /mnt/pve/cephfs...
Jan 08 02:51:40 proxmox-node mount[6065]: global_init: unable to open config file from search list /etc/pve/ceph.conf
Jan 08 02:51:40 proxmox-node mount[6068]: global_init: unable to open config file from search list /etc/pve/ceph.conf
Jan 08 02:51:40 proxmox-node mount[6064]: unable to determine mon addresses
Jan 08 02:51:40 proxmox-node systemd[1]: mnt-pve-cephfs.mount: Mount process exited, code=exited, status=234/n/a
Jan 08 02:51:40 proxmox-node systemd[1]: mnt-pve-cephfs.mount: Failed with result 'exit-code'.
Ý nghĩa của đoạn này:
- Lỗi khi cố gắng gắn kết CephFS:
- Trong log, hệ thống gặp lỗi khi cố gắng gắn kết CephFS (Ceph File System) vào đường dẫn
/mnt/pve/cephfs
. Hệ thống không thể tìm thấy tệp cấu hình Ceph (/etc/pve/ceph.conf
) và không thể xác định địa chỉ của các monitor Ceph (mon addresses
).
- Trong log, hệ thống gặp lỗi khi cố gắng gắn kết CephFS (Ceph File System) vào đường dẫn
- Hệ thống vẫn cố gắng gắn kết CephFS:
- Mặc dù bạn đã thực hiện các bước để xóa Ceph khỏi hệ thống, hệ thống vẫn tiếp tục cố gắng gắn kết CephFS, dẫn đến việc ghi nhận lỗi liên tục trong log.
- Giải pháp:
- Để khắc phục lỗi này, bạn cần tìm tệp cấu hình
/etc/pve/storage.cfg
và xóa các mục cấu hình liên quan đến Ceph trong đó. - Cụ thể, bạn cần xóa các dòng cấu hình có chứa
rbd:
(liên quan đến Ceph RBD – RADOS Block Device) vàcephfs:
(liên quan đến Ceph File System) để hệ thống không còn cố gắng gắn kết các thành phần Ceph nữa.
- Để khắc phục lỗi này, bạn cần tìm tệp cấu hình
dir: local
path /var/lib/vz
content backup,iso,vztmpl
lvmthin: local-lvm
thinpool data
vgname pve
content images,rootdir
rbd: ceph-pool
content rootdir,images
krbd 0
pool ceph-pool
cephfs: cephfs
path /mnt/pve/cephfs
content vztmpl,backup,iso
fs-name cephfs
Sau khi thực hiện điều này, Proxmox sẽ ngừng cố gắng gắn kết CephFS và lỗi trong log sẽ không còn xuất hiện nữa.
Xóa các cấu hình LVM liên quan đến Ceph:
- Xóa các logical volumes (LV) liên quan đến Ceph:
lvremove -y /dev/ceph*
Xóa volume group (VG) liên quan đến Ceph:
vgremove -y ceph-<press-tab-for-bash-completion>
Xóa physical volumes (PV) liên quan đến Ceph:
pvremove /dev/nvme1n1
Nếu bạn vẫn gặp lỗi khi khởi động lại, như không thể gắn kết CephFS hoặc thấy thông báo lỗi liên quan đến Ceph, hãy kiểm tra các tệp cấu hình và log như /etc/pve/storage.cfg
và xóa các mục liên quan đến Ceph. Sau đó, khởi động lại hệ thống để đảm bảo mọi thứ đã được gỡ bỏ hoàn toàn.
Hy vọng hướng dẫn này giúp bạn xóa sạch cụm Ceph hiện tại và khởi động lại từ đầu một cách suôn sẻ!
Sau khi bạn đã xóa các thành phần trên của Ceph, vẫn có thể còn lại các cấu hình liên quan đến LVM (Logical Volume Manager) trong hệ thống. Cụ thể:
lvremove
: Lệnh này dùng để xóa các logical volumes (LV) và cho phép sử dụng globbing/wildcards trong bash. Điều này có nghĩa là bạn có thể sử dụng ký tự đại diện như*
để xóa nhiều LV cùng lúc. Ví dụ, bạn có thể dùnglvremove -y /dev/ceph*
để xóa tất cả các logical volumes bắt đầu bằng “ceph”.vgremove
: Lệnh này dùng để xóa volume groups (VG). Nó không hỗ trợ wildcards nhưng bạn có thể sử dụng tính năng bash completion (ấnTab
) để tự động hoàn thành tên của volume group khi bạn gõ lệnh. Ví dụ, bạn bắt đầu gõvgremove ceph-
, sau đó nhấnTab
để tự động hoàn thành tên của volume group.pvremove
: Lệnh này dùng để xóa physical volumes (PV). Tuy nhiên, lệnh này không hỗ trợ globbing/wildcards hoặc bash completion, vì vậy bạn phải cẩn thận chọn đúng disk mà bạn muốn xóa. Bạn cần kiểm tra và đảm bảo rằng bạn đang xóa đúng PV để tránh xóa nhầm các dữ liệu quan trọng khác.
lvremove -y /dev/ceph*
vgremove -y ceph-<press-tab-for-bash-completion>
pvremove /dev/nvme1n1
Bạn cần cẩn thận hơn khi sử dụng pvremove
vì lệnh này yêu cầu bạn chỉ định chính xác đĩa mà bạn muốn xóa, trong khi các lệnh khác có thể giúp bạn tiết kiệm thời gian với wildcards hoặc bash completion.