Ceph trên Proxmox: Báo cáo thực tế sau 6 tháng từ một HomeLab High-Availability

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

Phá vỡ lời nguyền Node đơn

Trong nhiều năm, tôi đã chạy một node Proxmox duy nhất. Mọi thứ vẫn ổn cho đến khi sự cố xảy ra. Mỗi khi tôi cần thay một chiếc quạt kêu lạch cạch hoặc thêm một thanh RAM, toàn bộ đời sống số của tôi—Home Assistant, các database phát triển và các VM Ubuntu trên Proxmox—đều bị sập.

Chuyển sang một cluster là bước đi hợp lý tiếp theo, nhưng lưu trữ mới là bài toán thực sự. Sau sáu tháng chạy Ceph trong hệ thống HomeLab cấp độ production của mình, tôi nhận ra đây chính là câu trả lời dứt khoát cho vấn đề High Availability (HA). Nhưng nó không miễn phí. Bạn phải trả giá cho khả năng phục hồi đó bằng phần cứng và băng thông mạng.

Hãy coi việc này giống như chuyển từ một buổi biểu diễn đơn độc sang một dàn nhạc giao hưởng được phối hợp nhịp nhàng. Việc phân phối dữ liệu trên nhiều máy vật lý thay đổi cách bạn xử lý lỗi. Bạn sẽ ngừng lo sợ “tiếng lạch cạch báo tử” từ ổ cứng và bắt đầu tập trung vào việc giám sát HomeLab để duy trì thời gian hoạt động (uptime).

Kiến trúc lưu trữ: Lựa chọn nào dành cho bạn?

Khi xây dựng một cluster Proxmox, bạn thường chọn giữa ba triết lý lưu trữ. Với bất kỳ ai đang theo đuổi High Availability (HA) thực thụ, các lựa chọn sẽ thu hép lại nhanh chóng.

1. Lưu trữ cục bộ (Local Storage – LVM/ZFS)

Đây là mức cơ bản. Nó cực kỳ nhanh vì dữ liệu nằm ngay trên bus cục bộ. Điểm yếu là gì? Nó triệt tiêu khả năng HA. Nếu Node A mất điện, dữ liệu VM của bạn sẽ bị kẹt trên một tấm silicon chết. Để tránh thảm họa này, bạn cần làm chủ Network UPS Tools (NUT) hoặc chấp nhận chờ đợi quá trình khôi phục lâu dài từ Proxmox Backup Server và các hệ thống sao lưu HomeLab 3-2-1.

2. Cái bẫy NAS ngoài (NFS/iSCSI)

Một thiết bị NAS trung tâm (như TrueNAS) cung cấp lưu trữ cho tất cả các node qua mạng. Điều này giúp việc di chuyển VM trở nên dễ dàng, nhưng nó tạo ra một điểm lỗi duy nhất (single point of failure). Nếu NAS của bạn bị treo khi cập nhật firmware, toàn bộ cluster sẽ mất đi “trái tim”. Bạn chưa giải quyết được vấn đề downtime; bạn chỉ chuyển nó sang một chiếc hộp khác.

3. Sức mạnh lưu trữ phân tán (Ceph)

Ceph biến các ổ đĩa riêng lẻ bên trong các node Proxmox của bạn thành một pool lưu trữ khổng lồ và thống nhất. Dữ liệu được nhân bản (replicated) trên khắp cluster. Nếu Node A biến mất, Node B và Node C đã có sẵn các block dữ liệu đó. Chúng có thể khởi động lại các VM bị lỗi trong chưa đầy 30 giây. Đây là tiêu chuẩn vàng cho hạ tầng có khả năng phục hồi cao.

Sống chung với Ceph: Sự thật phũ phàng

Sự hào hứng ban đầu đã phai nhạt, và thực tế kỹ thuật đã lộ diện. Ceph không phải là một nút bấm ma thuật “thiết lập rồi quên luôn”. Nó là một con quái thú mạnh mẽ đòi hỏi cấu hình đúng chuẩn.

Những ưu điểm

  • Di chuyển không gián đoạn (Zero-Downtime Migration): Tôi có thể di chuyển một VM Windows Server dung lượng 120GB giữa các node trong khoảng 15 giây. Không mất gói ping. Không gián đoạn phiên làm việc.
  • Khả năng tự chữa lành: Ba tháng trước, một ổ Crucial MX500 500GB bắt đầu báo lỗi SMART. Ceph ngay lập tức đánh dấu OSD đó là ‘degraded’ (bị xuống cấp) và bắt đầu nhân bản lại dữ liệu đó sang các đĩa khỏe mạnh. Tôi đã thay ổ đĩa một tuần sau đó trong khi cluster vẫn đang chạy bình thường.
  • Mở rộng đơn giản: Hết dung lượng? Chỉ cần lắp thêm một ổ NVMe 1TB mới vào bất kỳ node nào và nhấn ‘Create OSD’. Cluster sẽ tự động cân bằng lại dữ liệu.

Cái giá phải trả

  • Băng thông là vua: Trên mạng 1Gbe tiêu chuẩn, Ceph cho cảm giác chậm chạp. Trong quá trình cân bằng lại (rebalance), độ trễ của tôi đã tăng vọt từ 2ms lên hơn 60ms. Bạn nên xây dựng máy chủ Speed Test nội bộ để kiểm tra băng thông trước khi nâng cấp lên mạng 10Gbe SFP+.
  • Thuế bộ nhớ (RAM): Ceph rất ngốn RAM. Mỗi đĩa (OSD) thường cần 1GB RAM cho metadata, nhưng để có hiệu suất mượt mà, tôi khuyên bạn nên dự phòng 2-4GB cho mỗi OSD.
  • Quorum rất quan trọng: Mặc dù thiết lập hai node là khả thi, nhưng nó rất nguy hiểm. Bạn cần ít nhất ba node để ngăn chặn kịch bản ‘split-brain’ (chia cắt não), nơi các node không thống nhất được dữ liệu nào là mới nhất.
  • Cấu hình chuẩn chuyên nghiệp

    Để tránh những nút thắt cổ chai mà tôi đã gặp phải, hãy sử dụng cấu hình phần cứng cơ bản này cho một hệ thống HomeLab chuyên nghiệp:

    • Máy chủ (Compute): 3 node. Các dòng PC TinyMiniMicro rất tuyệt vời, nhưng hãy đảm bảo chúng có khe cắm NVMe nội bộ.
    • Mạng lưới: Các kết nối 10Gbe riêng biệt cho lưu lượng ‘back-end’ của Ceph. Tôi sử dụng switch MikroTik CRS305, giá khoảng $150 và xử lý tải hoàn hảo.
    • Sự đồng nhất của đĩa: Hãy chọn các ổ đĩa có cùng kích thước. Hiệu suất của Ceph thường bị chi phối bởi ổ đĩa chậm nhất trong nhóm.
    • Độ bền ghi (Write Endurance): Sử dụng SSD doanh nghiệp (Enterprise SSD như Samsung PM883 hoặc Intel dòng DC). Các ổ QLC phổ thông sẽ sớm cạn kiệt chỉ số TBW (Total Bytes Written) chỉ trong vài tháng do hoạt động journaling liên tục của Ceph.

    Triển khai thực tế

    Proxmox tích hợp sẵn trình quản lý Ceph. Bạn không cần phải là một chuyên gia Linux, nhưng bạn phải tuân thủ đúng trình tự.

    1. Cài đặt

    Chạy lệnh này trên mọi node thông qua shell hoặc tab ‘Ceph’ trong giao diện người dùng (UI):

    pveceph install

    Khi được hỏi, hãy chỉ định giao diện 10Gbe của bạn làm Cluster Network.

    2. Monitor và Manager

    Các Monitor (MON) duy trì bản đồ cluster. Bạn cần ba cái để đảm bảo tính dự phòng.

    # Chạy trên mỗi node trong số 3 node của bạn
    pveceph mon create

    3. Cấu hình OSD

    Hãy xóa sạch các đĩa mục tiêu trước. chúng phải ở trạng thái trống hoàn toàn (raw). Trong giao diện UI, vào Node > Ceph > OSD và nhấn Create: OSD. Hoặc sử dụng CLI:

    pveceph osd create /dev/nvme0n1

    4. Tạo Storage Pool

    Tạo một pool với quy tắc ‘Size 3 / Min Size 2’. Điều này đảm bảo luôn có ba bản sao dữ liệu của bạn mọi lúc.

    pveceph pool create vm_storage --add_storage 1

    Lời kết

    Sự ổn định là một thứ gây nghiện. Sau nửa năm, tôi đã thực hiện hàng tá bản cập nhật kernel và thay thế phần cứng mà không gặp bất kỳ phút gián đoạn dịch vụ nào. Mặc dù mạng 1Gbps ban đầu là một nút thắt cổ chai lớn, việc nâng cấp lên 10Gbps SFP+ đã thay đổi hoàn toàn trải nghiệm. Tốc độ ghi tuần tự hiện đạt 450MB/s, chỉ bị giới hạn bởi các ổ SATA SSD. Nếu bạn muốn một HomeLab mô phỏng trung tâm dữ liệu doanh nghiệp, Ceph trên Proxmox là dự án xứng đáng nhất mà bạn có thể thực hiện.

    Share: