2 giờ sáng, Telegram nổ thông báo liên hồi…
Hệ thống giám sát đang gào thét: Node Proxmox số 1 – nơi đặt con Database production chứa toàn bộ đơn hàng của công ty – vừa “hẹo”. Có thể là sự cố chập điện tại datacenter hoặc đơn giản là thanh RAM ECC dở chứng lỗi Single-bit. Nếu bạn chỉ chạy Proxmox ở dạng Standalone, việc duy nhất có thể làm là bật dậy, mò vào iDRAC hoặc phi thẳng đến phòng máy để cứu server. Trong khi đó, group chat của sếp bắt đầu “nổ” vì khách hàng phàn nàn web sập.
Cảnh tượng này chẳng xa lạ gì với anh em SysAdmin. Mình cũng từng trải qua những đêm trắng như thế khi mới build homelab với 12 VM. Chính từ những lần “đau thương” ấy, mình nhận ra: Nếu đã chạy dịch vụ cho sản xuất (production), đừng bao giờ để trứng vào một giỏ.
Tại sao máy ảo của bạn không tự “hồi sinh”?
Nhiều anh em nhầm tưởng chỉ cần kết nối 2-3 con Proxmox thành một Cluster là xong. Thực tế, Cluster mới chỉ là bước gom nhóm quản lý tập trung. Nếu node vật lý chứa VM bị chết nguồn, máy ảo đó vẫn nằm chết dí trên ổ cứng của chính node đó.
Về cơ bản, có ba rào cản khiến hệ thống chưa thể đạt ngưỡng High Availability (HA):
- Thiếu Quorum (Số đông): Trong cluster, các node cần biểu quyết để xác định ai còn sống. Với cluster 2 node, nếu 1 node chết, node còn lại chỉ có 50% phiếu, không đủ quá bán (50% + 1) để ra quyết định. Kết quả là hệ thống rơi vào trạng thái “Split-brain” và dừng hoạt động để bảo vệ dữ liệu.
- Dữ liệu nằm cục bộ (Local Storage): Nếu file .qcow2 nằm trên ổ SSD nội bộ của Node 1, thì Node 2 lấy gì mà chạy khi Node 1 đã tắt ngóm?
- Chưa giao việc cho HA Manager: Proxmox có bộ máy
ha-managerchuyên trách. Nếu bạn không đưa VM vào danh sách giám sát, nó sẽ mặc kệ khi sự cố xảy ra.
Từ di tản thủ công đến tự động hóa hoàn toàn
1. Live Migration (Chỉ dùng khi bảo trì)
Nếu bạn biết trước node sắp bảo trì, hãy chuyển máy ảo sang node khác mà không gây gián đoạn dịch vụ. Nhưng cách này vô dụng khi node đã sập đột ngột vì disk không còn khả năng truy cập.
2. Khôi phục từ Backup (Chậm và mệt)
Dùng Proxmox Backup Server (PBS) để restore VM sang server mới. Cách này an toàn nhưng tốn thời gian. Với database khoảng 500GB, việc chờ restore có thể mất hơn 40 phút — quá lâu cho một hệ thống đang cần online gấp.
3. Cluster kết hợp Shared Storage
Đây là bước tiến lớn. Bạn dùng NAS (TrueNAS) hoặc chạy Ceph để làm ổ cứng chung. Khi Node 1 chết, Node 2 vẫn nhìn thấy file đĩa cứng của VM qua mạng. Tuy nhiên, bạn vẫn phải vào web để nhấn “Start” máy ảo thủ công.
Giải pháp dứt điểm: Triển khai Proxmox HA thực thụ
Để ngủ ngon mỗi đêm, bạn cần bộ ba: Cluster (ít nhất 3 node), Shared Storage và HA Groups. Dưới đây là quy trình thực chiến mình thường áp dụng.
Bước 1: Thiết lập Cluster và xử lý bài toán Quorum
Đừng bao giờ chạy cluster 2 node cho production. Nếu kinh phí hẹp, hãy tận dụng một con Raspberry Pi hoặc PC mini cũ làm “QDevice” để tạo lá phiếu thứ 3.
Tạo cluster từ dòng lệnh trên Node chính:
pvecm create MY-CLUSTER
Gia nhập các node còn lại:
pvecm add [IP-NODE-CHINH]
Kiểm tra bằng lệnh pvecm status. Hãy đảm bảo dòng Quorum information báo Activity: ok.
Bước 2: Cấu hình Shared Storage
Dù dùng NFS, iSCSI hay Ceph, hãy chắc chắn tất cả các node đều được mount vào cùng một Storage ID. Mình thường dùng NFS từ một server chuyên dụng chạy RAID 10 để tối ưu tốc độ.
Vào Datacenter > Storage > Add > NFS. Nhớ tick chọn tất cả các Node trong danh sách.
Bước 3: Thiết lập HA Group
Nhiều người bỏ qua bước này và đưa thẳng VM vào mục HA. Sai lầm! HA Group giúp bạn kiểm soát VM sẽ ưu tiên nhảy sang đâu. Ví dụ: Node 1 và 2 dùng CPU Xeon Gold mạnh mẽ, Node 3 là server cũ chỉ để dự phòng.
- Vào Datacenter > HA > Groups > Create.
- Đặt tên group là
Critical-Services. - Chọn Node 1 và 2, đặt
Prioritycao hơn Node 3. - Tick
Restrictednếu muốn VM chỉ được phép chạy trên các node này.
Bước 4: Kích hoạt HA cho máy ảo
Bây giờ, hãy giao máy ảo cho “người quản lý”:
- Vào Datacenter > HA > Resources > Add.
- Chọn
VM IDcủa con database quan trọng. - Chọn
Groupvừa tạo. Max Restart: Để là 1 (thử khởi động lại tại chỗ 1 lần trước khi chuyển vùng).
Test thực tế: Bài toán “rút điện”
Kỹ thuật viên giỏi không tin vào lý thuyết. Hãy thực hiện bài test vào giờ thấp điểm: gõ poweroff trực tiếp trên Node 1.
Sau khoảng 60-120 giây (tùy cấu hình timeout), Proxmox sẽ đánh dấu Node 1 là dead. Ngay lập tức, ha-manager ra lệnh cho Node 2 chiếm quyền điều khiển đĩa cứng và khởi động VM lên. Kiểm tra trạng thái bằng lệnh:
ha-manager status
Trạng thái chuyển từ started sang fence rồi lại về started trên node mới. Đó là lúc hệ thống của bạn đã tự cứu lấy chính nó.
Lưu ý xương máu:
- Mạng Corosync: Nên có card mạng hoặc VLAN riêng. Nếu mạng này lag, cluster sẽ hiểu lầm node chết và gây ra hiện tượng reboot liên tục (Fencing).
- Fencing: Proxmox dùng cơ chế Watchdog để đảm bảo node chết đã “ngừng thở” thực sự trước khi node khác khởi động VM, tránh việc 2 node cùng ghi vào 1 file gây hỏng dữ liệu.
Cấu hình HA thực ra khá nhàn nếu bạn nắm vững 2 trụ cột: Quorum và Shared Storage. Hy vọng hướng dẫn này giúp bạn tự tin build hệ thống chịu lỗi cao cho doanh nghiệp.

