Chuyên mục
Virtualization

[XCP-ng] Phục hồi Pool khi Pool Master gặp sự cố

Trong thời gian nghiên cứu tính năng High Availability của XCP-ng, mình nhận ra rằng mọi hoạt động của Resource Pool đều phụ thuộc vào Pool Master. Lý do vì Xen-Orchestra chỉ kết nối và trao đổi thông tin trực tiếp với Pool Master.

Nếu Pool Master gặp sự cố không thể truy cập (rớt mạng, cúp điện,…), các máy chủ còn lại trong Pool sẽ mất luôn kết nối với Xen Orchestra. Khi đó, tính năng High Availability sẽ không thể hoạt động.

Dưới đây là Resource Pool của mình gồm 3 máy chủ, trong đó Pool Master là máy chủ xcp-ng-17.

Mình thử nghiệm tắt máy chủ xcp-ng-17 đi. Sau đó quay lại Xen Orchestra, tất cả các máy chủ đều biến mất khỏi hệ thống.

Trong trường hợp Pool Master thực sự gặp sự cố chưa thể khắc phục sớm, bắt buộc phải chọn một máy chủ khác trong Pool làm Pool Master để thiết lập lại quyền điều khiển Pool trên Xen Orchestra.

Dưới đây là hướng dẫn cách phục hồi Resrouce Pool khi Pool Master gặp sự cố.

1. Xem thông tin pool và host

Truy cập SSH vào một trong các máy chủ còn lại trong pool. Sử dụng lệnh sau để xem danh sách host

xe host-list params=uuid,name-label,host-metrics-liveCode language: Dockerfile (dockerfile)

Do máy chủ xcp-ng-17 của mình đang gặp sự cố, nên thông số host-metrics-live hiển thị false, còn 2 máy chủ còn lại đang hoạt động bình thường, hiển thị true.

uuid ( RO)                 : edab6a91-4ea7-4adb-bdea-15c51e675d5f
           name-label ( RW): xcp-ng-18
    host-metrics-live ( RO): true


uuid ( RO)                 : e3cce885-f617-482e-b598-30a57df414a2
           name-label ( RW): xcp-ng-17
    host-metrics-live ( RO): false


uuid ( RO)                 : 8e52ca30-dcc0-4b28-af8c-ab009d2d5f10
           name-label ( RW): xcp-ng-16
    host-metrics-live ( RO): trueCode language: YAML (yaml)

Kiểm tra thông tin pool bằng lệnh xe pool-list

[09:44 xcp-ng-17 ~]# xe pool-list
uuid ( RO)                : c53ef1f0-9703-b811-a6d5-2f1b01a4203b
          name-label ( RW): My Pool
    name-description ( RW):
              master ( RO): e3cce885-f617-482e-b598-30a57df414a2
          default-SR ( RW): 57db5d2e-1ab0-0277-a15a-19eb6a06115aCode language: Dockerfile (dockerfile)

Pool My Pool đang có master là xcp-ng-17 (uuid e3cce885-f617-482e-b598-30a57df414a2)

2. Thay đổi Pool Master

Gõ tiếp lệnh sau để chuyển Pool Master sang máy chủ mới trong Pool

xe-toolstack-restart

Chờ 2 phút để hệ thống xử lý và khởi động lại. Sau đó kiểm tra lại pool bằng lệnh xe pool-list, master giờ đã được chuyển qua xcp-ng-16 (uuid edab6a91-4ea7-4adb-bdea-15c51e675d5f)

[09:46 xcp-ng-17 ~]# xe pool-list
uuid ( RO)                : c53ef1f0-9703-b811-a6d5-2f1b01a4203b
          name-label ( RW): My Pool
    name-description ( RW):
              master ( RO): edab6a91-4ea7-4adb-bdea-15c51e675d5f
          default-SR ( RW): 57db5d2e-1ab0-0277-a15a-19eb6a06115aCode language: Dockerfile (dockerfile)

3. Kết nối lại trong Xen Orchestra

Mở Xen Orchestra, truy cập vào mục Settings –> Servers, xóa kết nối cũ và thực hiện lại kết nối đến máy chủ xcp-ng-16.

  • Nếu máy chủ xcp-ng-17 khởi động lại nó sẽ hoạt động dưới chế độ slave trong pool.
  • Nếu máy chủ xcp-ng-17 không thể phục hồi và phải cài đặt lại từ đầu, chúng ta sẽ xóa nó ra khỏi pool bằng lệnh xe pool-eject host-uuid=e3cce885-f617-482e-b598-30a57df414a2.

Vậy là xong. Resource Pool giờ đã hoạt động bình thường trở lại.

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng mò vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!

Bởi Thuận Bùi

Runner at Yêu Chạy Bộ. Blogger at Ba Lô & Dép Lào. Web Developer at TB's Blog.
Follow me: Facebook / Instagram

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *