Lưu trữ dữ liệu: Khi RAID không còn là ‘cứu cánh’ duy nhất
Lưu trữ luôn là bài toán khiến anh em quản trị hệ thống mất ngủ. Trước đây, mình thường tin tưởng tuyệt đối vào RAID để bảo vệ dữ liệu trên từng server riêng lẻ. Nhưng thực tế thường nghiệt ngã hơn nhiều. Nếu chẳng may server cháy nguồn, hỏng mainboard hoặc mất kết nối mạng, toàn bộ dữ liệu (dù có chạy RAID 10) cũng sẽ nằm im một chỗ. Bạn sẽ phải đợi thay thế phần cứng mới có thể truy cập lại. Đó là lúc mình nhận ra cần phải chuyển sang Distributed Storage (Lưu trữ phân tán).
Trong giới Sysadmin, Ceph là cái tên bảo chứng cho khả năng tự chữa lành (self-healing) và mở rộng gần như không giới hạn. Tuy nhiên, cài đặt Ceph theo cách truyền thống thường là một trải nghiệm khá “đau khổ” với hàng tá cấu hình phức tạp. Rất may, Canonical đã ra mắt MicroCeph. Đây là phiên bản rút gọn nhưng giữ nguyên sức mạnh của Ceph, giúp mình dựng xong cluster lưu trữ chỉ trong vài phút thay vì mất cả ngày như trước.
Lên Lab nhanh trong 5 phút
Nếu bạn đang có một máy Ubuntu Server 22.04 sạch sẽ và một ổ cứng trống (ví dụ /dev/sdb), hãy thử ngay bộ lệnh bên dưới để thấy hiệu quả:
# Cài đặt MicroCeph qua Snap
sudo snap install microceph
# Khởi tạo cluster (Bootstrap)
sudo microceph cluster bootstrap
# Thêm ổ cứng vào hệ thống lưu trữ
sudo microceph disk add /dev/sdb
# Kiểm tra trạng thái
sudo microceph status
Chỉ vậy thôi, bạn đã có một node Ceph cơ bản. Tuy nhiên, để hệ thống thực sự có khả năng chịu lỗi, chúng ta cần tối thiểu 3 node. Hãy cùng mình đi sâu vào cách triển khai thực tế nhé.
Tại sao nên chọn MicroCeph thay vì Ceph truyền thống?
Rào cản từ sự phức tạp
Cài Ceph thuần yêu cầu bạn phải am hiểu tường tận về các thành phần như MON, OSD, Manager hay MDS. Chỉ cần một sai sót nhỏ trong file cấu hình hoặc trễ mạng, toàn bộ cluster có thể bị treo ngay lập tức. Với các dự án quy mô vừa hoặc anh em mới làm quen, Ceph giống như việc dùng động cơ phản lực gắn vào xe đạp – quá dư thừa và khó điều khiển.
MicroCeph: Đơn giản nhưng hiệu quả
MicroCeph đóng gói mọi thứ vào một package Snap duy nhất. Nó tự động hóa từ khâu cấu hình mạng đến quản lý ổ cứng và đồng bộ dữ liệu. Mình từng thử chạy MicroCeph trên 5 node VPS cấu hình thấp để làm backend cho cụm Proxmox. Kết quả thu được rất ấn tượng: hệ thống chạy ổn định suốt 6 tháng mà không cần can thiệp bảo trì nhiều.
Xây dựng Cluster 3 Node chịu lỗi cao
Để đạt độ sẵn sàng cao (High Availability), mình khuyến nghị anh em chuẩn bị ít nhất 3 server Ubuntu chạy trong mạng nội bộ 1Gbps hoặc 10Gbps.
Bước 1: Cài đặt đồng loạt
Trên cả 3 node (Node1, Node2, Node3), bạn thực hiện cài đặt MicroCeph:
sudo snap install microceph
Bước 2: Kết nối các node thành một khối
Tại Node1, hãy tạo mã Token để cấp quyền cho các máy khác gia nhập:
sudo microceph cluster add node2
sudo microceph cluster add node3
Màn hình sẽ hiển thị các chuỗi Token dài. Bạn copy từng mã và chạy lệnh join trên các node tương ứng:
# Chạy trên Node2
sudo microceph cluster join [TOKEN_NODE2]
# Chạy trên Node3
sudo microceph cluster join [TOKEN_NODE3]
Bước 3: Cấu hình ổ cứng (OSD)
Lưu ý quan trọng: Ceph sẽ chiếm quyền điều khiển toàn bộ ổ cứng vật lý. Ổ này phải hoàn toàn trống và không chứa phân vùng (partition) nào.
# Thực hiện trên từng node
sudo microceph disk add /dev/sdb --wipe
Kinh nghiệm xương máu: Đừng tiết tiền đầu tư SSD hoặc NVMe. Ceph cực kỳ nhạy cảm với độ trễ (latency). Nếu dùng HDD cũ, tốc độ đọc ghi sẽ giảm thảm hại khi có nhiều máy truy cập cùng lúc.
Giám sát sức khỏe hệ thống
Sau khi thiết lập xong cụm 3 node, bạn cần thường xuyên kiểm tra xem mọi thứ có đang “khỏe mạnh” hay không. Lệnh quan trọng nhất là:
sudo microceph.ceph status
Nếu dòng trạng thái báo health: HEALTH_OK, bạn có thể yên tâm. Nếu thấy HEALTH_WARN, hãy kiểm tra ngay kết nối mạng giữa các node hoặc tình trạng ổ cứng.
Muốn xem dung lượng thực tế còn lại, hãy dùng lệnh:
sudo microceph.ceph df
Kinh nghiệm thực chiến giúp bạn tránh ‘ăn hành’
Dưới đây là vài lưu ý quan trọng mình đúc kết được sau nhiều lần triển khai thực tế:
- Mạng nội bộ (Backend Network): Hãy dùng mạng 10Gbps nếu có điều kiện. Tuyệt đối không chạy cluster qua Internet công cộng nếu không có kênh truyền riêng (Direct Connect hoặc VPN), vì độ trễ cao sẽ khiến dữ liệu bị mất đồng bộ.
- Quy tắc số lẻ: Luôn giữ số lượng node là số lẻ (3, 5, 7) để tránh lỗi Split-brain (chia đôi bộ não) khi bầu chọn node trưởng (Quorum).
- Tài nguyên RAM: Mỗi OSD (ổ cứng lưu trữ) nên được cấp ít nhất 2GB RAM. Nếu cluster của bạn có 10TB dữ liệu, hãy đảm bảo hệ thống có dư khoảng 20GB RAM cho các tiến trình nền.
- Ứng dụng thực tế: Bạn có thể tạo các Block Device (RBD) để mount vào cụm Web Server. Khi một Web Server gặp sự cố, server còn lại vẫn có thể mount đúng ổ cứng đó từ Ceph và tiếp tục phục vụ người dùng.
MicroCeph thực sự đã bình dân hóa công nghệ lưu trữ cao cấp. Bạn không cần phải là chuyên gia mới có thể xây dựng được hệ thống lưu trữ chịu lỗi. Hãy tận dụng những con máy cũ trong Lab để dựng ngay một cụm MicroCeph. Cảm giác rút phích cắm điện một server mà dữ liệu trên trang web vẫn hoạt động mượt mà thực sự rất thú vị!

