Thursday, November 21, 2024

Xử lý lỗi VM is locked trong Proxmox

-

Lỗi “VM is locked (backup)” xảy ra khi bạn cố gắng khởi động một máy ảo KVM nhưng Proxmox không thể thực hiện thao tác này vì máy ảo đang bị khóa (locked). Khóa này thường được thiết lập khi bạn đang thực hiện các thao tác nhạy cảm hoặc dài như sao lưu (backup), di chuyển (migration), hoặc snapshot, để đảm bảo rằng không có thao tác nào khác có thể gây ra xung đột.

Nguyên nhân có thể xảy ra:

  • Quá trình sao lưu bị gián đoạn hoặc không kết thúc đúng cách, dẫn đến việc máy ảo vẫn còn trong trạng thái bị khóa.
  • Sau khi khởi động lại máy chủ, trạng thái khóa này không được tự động gỡ bỏ.

Cách giải quyết:

  • Bạn có thể sử dụng lệnh qm unlock <VMID> để gỡ bỏ khóa này. Ví dụ, với VM ID là 101, bạn có thể chạy lệnh:

Bạn có thể sử dụng lệnh qm unlock [vmid] để bỏ lock cho vmid này.

qm unlock 142

Lệnh này sẽ xóa khóa và cho phép bạn khởi động hoặc thao tác với máy ảo bình thường.

Lưu ý:

Trước khi gỡ bỏ khóa, hãy chắc chắn rằng không có tiến trình sao lưu hoặc di chuyển nào đang chạy liên quan đến máy ảo đó để tránh gây ra sự cố dữ liệu.

Kết quả bạn nhận được như hình dưới, ổ khóa đã được loại bỏ.

Bây giờ bạn tiến hành xóa vm và bạn có thể sẽ nhận được kết quả như dưới.

Đây là log lỗi.

TASK ERROR: rbd error: rbd: listing images failed: (2) No such file or directory

Nguyên nhân lỗi:

  • Bạn đã tạo container không đặc quyền (unprivileged container) thông qua GUI và trong quá trình này đã tạo ra image vm-142-disk-1.
  • Sau đó, bạn đã thử phục hồi (restore) từ bản sao lưu của container có đặc quyền (privileged container), nhưng quá trình này thất bại. Điều này có thể đã làm container biến mất hoặc bạn đã xóa nó.
  • Khi bạn tạo lại container với ID 142, image vm-142-disk-2 được tạo ra, nhưng image vm-142-disk-1 không bị xóa đúng cách, dẫn đến lỗi.

Sử dụng lệnh rbd ls -l CEPH-NVME-01 để liệt kê các image RBD trong pool. Bạn phát hiện ra một vài image hợp lệ, nhưng có một image liên quan đến máy ảo có id 142 vm-142-disk-1 báo lỗi No such file or directory.

shell> rbd ls -l CEPH-NVME-01
rbd: error opening vm-144-disk-0: (2) No such file or directory
NAME           SIZE     PARENT  FMT  PROT  LOCK
vm-100-disk-0  200 GiB            2        excl
vm-100-disk-1  9.8 TiB            2        excl
vm-101-disk-0  160 GiB            2        excl
vm-104-disk-0  200 GiB            2        excl
vm-106-disk-0  160 GiB            2        excl
vm-107-disk-0  160 GiB            2        excl
vm-108-disk-0  160 GiB            2        excl
vm-109-disk-0  160 GiB            2        excl
vm-110-disk-0  200 GiB            2        excl
vm-111-disk-0  160 GiB            2        excl
vm-112-disk-0  200 GiB            2        excl
vm-113-disk-0  160 GiB            2        excl
vm-114-disk-0  160 GiB            2        excl
vm-115-disk-0  200 GiB            2        excl
vm-116-disk-0  200 GiB            2        excl
vm-117-disk-0  160 GiB            2        excl
vm-118-disk-0  160 GiB            2        excl
vm-119-disk-0  160 GiB            2        excl
vm-120-disk-0  200 GiB            2        excl
vm-121-disk-0  160 GiB            2        excl
vm-122-disk-0  160 GiB            2        excl
vm-123-disk-0  160 GiB            2        excl
vm-124-disk-0  160 GiB            2        excl
vm-125-disk-0  160 GiB            2        excl
vm-126-disk-0  160 GiB            2        excl
vm-127-disk-0  160 GiB            2        excl
vm-128-disk-0  160 GiB            2        excl
vm-129-disk-0  200 GiB            2        excl
vm-130-disk-0  160 GiB            2        excl
vm-131-disk-0  160 GiB            2        excl
vm-132-disk-0  160 GiB            2        excl
vm-133-disk-0  200 GiB            2
vm-133-disk-1  9.8 TiB            2        excl
vm-134-disk-0  160 GiB            2        excl
vm-135-disk-0  200 GiB            2        excl
vm-136-disk-0  160 GiB            2        excl
vm-137-disk-0  160 GiB            2        excl
vm-138-disk-0  200 GiB            2
vm-139-disk-0  160 GiB            2        excl
vm-140-disk-0  160 GiB            2        excl
vm-141-disk-0  160 GiB            2        excl
vm-142-disk-1  9.8 TiB            2        excl
vm-143-disk-0  200 GiB            2
vm-143-disk-1  9.8 TiB            2        excl
vm-144-disk-1  9.8 TiB            2        excl
vm-145-disk-0  200 GiB            2
vm-145-disk-1  9.8 TiB            2        excl
rbd: listing images failed: (2) No such file or directory

Bạn có thể xóa thủ công nó bằng lệnh rbd theo cú pháp rbd rm [image name] -p [pool name].

shell> rbd rm vm-142-disk-1 -p CEPH-NVME-01
Removing image: 100% complete...done.
  • Giải quyết vấn đề tương tự khác:
    • Trong trường hợp khác, khi bạn cố gắng xóa image vm-106-disk-1, bạn gặp lỗi “image has watchers”. Điều này có nghĩa là image vẫn đang được mở hoặc client sử dụng nó đã bị crash.
    • Bạn đã thử lại sau khi đóng/mapping image hoặc chờ client bị crash timeout và sau đó đã thành công xóa image vm-106-disk-1.
  • Xác nhận kết quả:
    • Bạn kiểm tra lại danh sách các image RBD trong pool để đảm bảo rằng image bị lỗi đã được xóa thành công và không còn lỗi nào xảy ra.

Cũng có thể bạn gặp thông báo này, hãy xử lý tiếp như sau.

Nếu vào CLI sử dụng lệnh rbd ls -l [pool name] bạn sẽ nhận được lỗi dưới, lỗi này cho thấy rằng lệnh rbd ls -l CEPH-NVME-01 đã gặp vấn đề khi liệt kê các image trong pool CEPH-NVME-01. Cụ thể, nó không thể mở image vm-144-disk-0 vì không tìm thấy image này trong pool.

shell> rbd ls -l CEPH-NVME-01
rbd: error opening vm-144-disk-0: (2) No such file or directory
NAME                                       SIZE    PARENT  FMT  PROT  LOCK
vm-1001-daviHyviUnV8GxsZ-d659ZZHOW8VX8O1t  80 GiB            2        excl
rbd: listing images failed: (2) No such file or directory

Nhưng nếu bạn dùng lệnh rbd ls [pool name bạn sẽ không gặp lỗi và thấy kết quả lệnh rbd ls CEPH-NVME-01, ta thấy rằng image vm-144-disk-0 hoàn toàn tồn tại trong pool CEPH-NVME-01.

shell> rbd ls CEPH-NVME-01
vm-1001-daviHyviUnV8GxsZ-d659ZZHOW8VX8O1t
vm-144-disk-0

Vì sao lại xuất hiện lỗi khi dùng rbd ls -l?

Có thể có một số nguyên nhân khiến lệnh rbd ls -l báo lỗi trong khi image vẫn tồn tại:

  • Quyền truy cập: Tài khoản bạn đang sử dụng có thể không có quyền đọc đối với image đó.
  • Lỗi tạm thời: Có thể có một lỗi tạm thời trong quá trình kết nối với Ceph cluster hoặc trong quá trình xử lý lệnh.
  • Vấn đề về metadata: Có thể có một số vấn đề nhỏ trong metadata của image, khiến lệnh rbd ls -l không thể đọc được thông tin đầy đủ.
shell> rbd rm CEPH-NVME-01/vm-144-disk-0
Removing image: 100% complete...done.

Xác minh lại bằng lệnh rbd ls [pool name].

root@pve02:~# rbd ls CEPH-NVME-01
vm-1001-daviHyviUnV8GxsZ-d659ZZHOW8VX8O1t

Bạn cũng có thể xác minh lại bằng lệnh rbd ls -l [pool name].

root@pve02:~# rbd ls -l CEPH-NVME-01
NAME                                       SIZE    PARENT  FMT  PROT  LOCK
vm-1001-daviHyviUnV8GxsZ-d659ZZHOW8VX8O1t  80 GiB            2        excl

Và trên WebGUID của Proxmox bạn cũng thấy kết quả xóa VM thành công.

Lưu ý:

  • Dữ liệu bị xóa vĩnh viễn: Khi bạn xóa một image, dữ liệu bên trong nó sẽ bị xóa vĩnh viễn. Hãy chắc chắn rằng bạn đã sao lưu dữ liệu nếu cần thiết.
  • Ảnh hưởng đến VM: Nếu image này đang được sử dụng bởi một virtual machine nào đó, việc xóa image sẽ khiến VM không thể khởi động được.
  • Kiểm tra phụ thuộc: Nếu image này là một snapshot của một image khác, việc xóa image gốc có thể ảnh hưởng đến các snapshot.

Các trường hợp đặc biệt.

  • Image đang được sử dụng: Nếu image đang được sử dụng bởi một virtual machine, bạn cần dừng VM trước khi xóa image.
  • Image bị hỏng: Nếu image bị hỏng, bạn có thể gặp khó khăn trong việc xóa nó. Hãy thử sử dụng các tùy chọn như --force hoặc --yes-i-really-really-mean-it (tùy thuộc vào phiên bản Ceph) để xóa image. Tuy nhiên, hãy cẩn thận khi sử dụng các tùy chọn này.

Lời khuyên:

  • Sao lưu: Luôn luôn sao lưu dữ liệu quan trọng trước khi thực hiện bất kỳ thay đổi nào đối với Ceph.
  • Kiểm tra kỹ: Kiểm tra kỹ tên image và pool trước khi thực hiện lệnh xóa.
  • Tham khảo tài liệu: Nếu bạn gặp khó khăn, hãy tham khảo tài liệu chính thức của Ceph hoặc tìm kiếm sự trợ giúp từ cộng đồng.

Quy trình này giải thích cách bạn đã xử lý thành công lỗi liên quan đến việc liệt kê và xóa các image RBD bị lỗi trong Ceph pool.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories