Local Storage: “Gót chân Achilles” của hệ thống Cluster
Hồi mới làm quen với Proxmox, mình từng rơi vào cảnh tiến thoái lưỡng nan. Dù đã dựng Cluster 3 node hoành tráng, nhưng khi một node đột ngột hỏng ổ cứng, toàn bộ máy ảo (VM) trên đó cũng “đi đời” theo. Vấn đề nằm ở chỗ dữ liệu nằm chết dí tại ổ cứng cục bộ (Local Storage). Khi node sập, các node còn lại dù rất muốn “cứu viện” cũng chịu chết vì không thể truy cập vào file disk của VM đó.
Lúc này, tính năng High Availability (HA) chỉ còn là lý thuyết suông. Khách hàng gọi điện phàn nàn, còn bạn thì phải hì hục tháo ổ cứng hoặc đợi thay linh kiện mới mong cứu được dữ liệu. Đây chính là lý do bạn cần một hệ thống lưu trữ dùng chung (Shared Storage) để giải phóng sức mạnh thực sự của Proxmox.
Tại sao dữ liệu không tự “nhảy” sang node khác?
Mặc định, Proxmox Cluster chỉ quản lý “phần hồn” gồm cấu hình máy ảo và trạng thái CPU/RAM. “Phần xác” là dữ liệu ổ cứng vẫn nằm cố định trên các ổ vật lý của từng server. Nếu thiếu một lớp lưu trữ mà tất cả các node đều có thể đọc-ghi đồng thời, việc Live Migration (di chuyển VM không downtime) hay tự động phục hồi khi có sự cố là điều bất khả thi.
Sai lầm phổ biến của nhiều quản trị viên là không quy hoạch storage ngay từ đầu. Đến khi hệ thống phình to, việc chuyển đổi định dạng disk hay di chuyển hàng Terabyte dữ liệu qua mạng sẽ trở thành một cơn ác mộng về hiệu năng và thời gian.
Các phương án lưu trữ tập trung: Đâu là lựa chọn tối ưu?
Có 3 hướng đi chính để giải quyết bài toán lưu trữ trong Cluster:
- NAS/SAN rời (NFS, iSCSI): Sử dụng thiết bị chuyên dụng như Synology hoặc TrueNAS. Phương án này đơn giản nhưng tạo ra “điểm chết duy nhất” (Single Point of Failure). Nếu con NAS gặp sự cố, toàn bộ Cluster Proxmox sẽ tê liệt hoàn toàn.
- GlusterFS: Từng là ngôi sao sáng nhưng hiện tại việc tích hợp với Proxmox không còn mượt mà. Hiệu năng thường trồi sụt và khó kiểm soát khi số lượng file tăng cao.
- Ceph Storage: Đây chính là “vũ khí hạng nặng” đi kèm Proxmox. Nó biến các ổ cứng rời rạc trên mỗi node thành một bể chứa dữ liệu khổng lồ (Pool). Dữ liệu được nhân bản thông minh sang nhiều node khác nhau.
Với kinh nghiệm triển khai thực tế, mình khẳng định Ceph là lựa chọn số 1. Nó giúp bạn xây dựng mô hình Hyper-Converged Infrastructure (HCI). Server của bạn vừa đảm nhận tính toán (Compute), vừa thực hiện lưu trữ (Storage), giúp tối ưu hóa chi phí phần cứng mà vẫn đảm bảo an toàn dữ liệu mức cao nhất.
Hướng dẫn cấu hình Ceph Storage trên Proxmox VE
Trong hệ thống Lab mình đang vận hành với 12 VM và Container, Ceph đóng vai trò là xương sống giúp mọi thứ vận hành trơn tru. Dưới đây là quy trình 5 bước để bạn sở hữu một cụm Ceph ổn định.
Bước 1: Chuẩn bị hạ tầng (Yếu tố sống còn)
Ceph cực kỳ “nhạy cảm” với tốc độ mạng. Chạy Ceph trên mạng 1Gbps là sai lầm chết người khiến latency tăng vọt, làm máy ảo lag liên tục. Lời khuyên: Hãy sử dụng card mạng ít nhất 10Gbps (ví dụ Intel X520 hoặc Mellanox ConnectX-3) và tối thiểu 3 node để đảm bảo tính đồng thuận (Quorum).
- Mỗi node cần ít nhất một ổ cứng trống hoàn toàn để làm OSD (Object Storage Daemon).
- Ưu tiên SSD hoặc NVMe. Với Ceph hiện nay, dùng HDD cho các tác vụ ảo hóa là một cực hình về chỉ số IOPS.
Bước 2: Cài đặt Ceph
Trên giao diện Web GUI, bạn chọn Node -> Ceph. Nhấn Install Ceph và chọn phiên bản mới nhất (như Quincy hoặc Reef). Nếu bạn là fan của dòng lệnh, hãy SSH vào node và thực thi:
pveceph install
Sau đó, hãy khởi tạo mạng riêng cho Ceph. Việc tách biệt traffic lưu trữ khỏi traffic của máy ảo giúp hệ thống ổn định hơn, tránh tình trạng nghẽn cổ chai khi đồng bộ dữ liệu.
pveceph init --network 10.10.10.0/24
Bước 3: Thiết lập Monitor (MON) và Manager (MGR)
Monitor đóng vai trò là “bộ não”, lưu giữ bản đồ trạng thái của toàn bộ Cluster. Để đạt chuẩn HA, bạn bắt buộc phải có ít nhất 3 Monitor nằm trên 3 node vật lý khác nhau. Thao tác rất đơn giản: Vào Ceph -> Monitor -> Create trên từng node.
Manager (MGR) sẽ hỗ trợ theo dõi hiệu năng và cung cấp các thông số chi tiết qua dashboard. Bạn cũng nên cài đặt MGR trên tất cả các node có Monitor.
Bước 4: Tạo OSD (Nạp nguyên liệu cho Pool)
OSD sẽ chiếm quyền điều khiển trực tiếp ổ cứng vật lý để lưu trữ object. Tại mục Ceph -> OSD, chọn Create: OSD và trỏ vào ổ cứng trống (ví dụ /dev/nvme0n1).
Mẹo thực chiến: Nếu bạn sở hữu ổ NVMe tốc độ cao và ổ SATA SSD thường, hãy tách phần DB/WAL sang NVMe. Kỹ thuật này có thể giúp tốc độ ghi của Ceph tăng gấp 2-3 lần so với cấu hình mặc định.
Bước 5: Khởi tạo Pool và tích hợp Proxmox
Cuối cùng, chúng ta gom các OSD lại thành một Pool. Vào Ceph -> Pools -> Create với các thông số:
- Size: 3 (Dữ liệu được nhân bản thành 3 bản sao trên 3 node).
- Min Size: 2 (Cho phép ghi nếu còn ít nhất 2 bản sao hoạt động).
- Add as Storage: Tích chọn để Proxmox tự động nhận diện Pool làm nơi lưu trữ máy ảo.
# Kiểm tra sức khỏe hệ thống
ceph -s
Nếu dòng trạng thái hiển thị HEALTH_OK, hệ thống của bạn đã sẵn sàng thực chiến.
Những lưu ý “xương máu” khi vận hành
Sau nhiều lần “đau thương” vì làm sập Cluster, mình rút ra 4 quy tắc vàng:
- Quy tắc số đông: Tuyệt đối không chạy Ceph với 2 node. Khi một node bảo trì, node còn lại sẽ chuyển sang chế độ Read-only vì mất Quorum, khiến toàn bộ máy ảo bị treo cứng.
- Ngưỡng an toàn 80%: Khi dung lượng OSD vượt quá 85%, Ceph sẽ cảnh báo đỏ. Nếu chạm mốc 95% (Full Ratio), Cluster sẽ ngừng mọi lệnh ghi. Lúc này việc mở rộng cực kỳ khó khăn vì hệ thống đã bị khóa.
- Mạng Back-end riêng biệt: Nếu có thể, hãy dùng 2 card 10Gbps chạy Bond (LACP) chỉ để phục vụ đồng bộ Ceph. Độ trễ (latency) thấp là chìa khóa để máy ảo chạy mượt như ổ cứng cục bộ.
- Xử lý ổ lỗi chủ động: Khi thấy chỉ số S.M.A.R.T của ổ cứng có dấu hiệu xấu, hãy chủ động
outOSD đó. Ceph sẽ tự động di chuyển dữ liệu sang các ổ lành lặn trước khi ổ lỗi chết hẳn.
Tích hợp Ceph vào Proxmox VE là một bước tiến lớn cho hạ tầng của bạn. Mình từng thử rút dây nguồn một node trong cụm Lab; nhờ Ceph và HA, các VM chỉ mất vài giây để tự khởi động lại trên node khác. Cảm giác hệ thống tự chữa lành thực sự rất tuyệt vời.
Hy vọng hướng dẫn này giúp bạn tự tin hơn khi triển khai. Nếu gặp lỗi trong quá trình cấu hình, đừng ngần ngại để lại bình luận, mình sẽ hỗ trợ giải đáp ngay!
