Bài 24: Tổng quan Storage: NFS, MinIO, Ceph
Bài này chi tiết hóa storage NFS/MinIO/Ceph theo hướng dễ hiểu, có lệnh thực hành, tình huống production, checklist và bài tập.
- Hiểu storage NFS/MinIO/Ceph dùng để giải quyết vấn đề gì trong production.
- Nắm các lệnh/cấu hình quan trọng.
- Biết quy trình thực hành từng bước trong lab.
- Có checklist kiểm tra trước khi áp dụng production.
Chốt ý nhanh
| Chủ đề | Điểm cần nhớ |
|---|---|
| Storage | Là lớp quyết định dữ liệu được lưu, chia sẻ và phục hồi như thế nào. |
| NFS / MinIO / Ceph | Phục vụ các bài toán khác nhau: file share, object storage và storage phân tán. |
| Góc nhìn SysAdmin | Không cần hiểu hết chiều sâu từ đầu, nhưng phải biết khi nào nên chọn mô hình nào. |
1. Bối cảnh thực tế
Storage nfs/minio/ceph không phải kiến thức lý thuyết riêng lẻ. Trong vận hành production, nó giúp giảm downtime, giảm rủi ro bảo mật và giúp hệ thống dễ khôi phục hơn khi có sự cố.
2. Các khái niệm cần nắm
- Trạng thái hiện tại: trước khi sửa phải biết hệ thống đang chạy thế nào.
- Thay đổi nhỏ: thay đổi từng bước để dễ rollback.
- Log/metric: dùng để xác nhận thay đổi đúng hay sai.
- Rollback: luôn có đường quay lại khi cấu hình lỗi.
3. Lab thực hành
df -h lsblk mount showmount -e nfs-server 2>/dev/null || true mc alias list 2>/dev/null || true ceph -s 2>/dev/null || true
Khi thực hành, anh nên ghi lại output trước và sau. Đây là thói quen rất quan trọng của SysAdmin/DevOps.
4. Tình huống thực tế
Ứng dụng có nhiều web node cần dùng chung file upload. Anh phải chọn local disk, NFS, object storage MinIO hoặc Ceph tùy nhu cầu scale, độ bền và vận hành.
5. Quy trình triển khai an toàn
- Xác định mục tiêu thay đổi.
- Backup file cấu hình hoặc tạo snapshot nếu thay đổi rủi ro.
- Kiểm tra trạng thái hiện tại bằng lệnh phù hợp.
- Thay đổi trên lab/staging trước nếu có.
- Áp dụng production trong khung giờ phù hợp.
- Kiểm tra log, service, port, endpoint sau thay đổi.
- Ghi lại thay đổi và phương án rollback.
6. Lỗi thường gặp
- Làm trực tiếp production mà không backup.
- Sửa nhiều thứ cùng lúc nên không biết lỗi do đâu.
- Không đọc log sau khi reload/restart service.
- Không ghi lại command đã chạy.
7. Checklist
- Đã kiểm tra trạng thái hiện tại.
- Đã backup cấu hình/dữ liệu liên quan.
- Đã test syntax/config nếu có.
- Đã xác nhận service hoạt động sau thay đổi.
- Đã ghi lại thay đổi vào tài liệu vận hành.
8. Bài tập
- Dựng lab nhỏ cho chủ đề này.
- Chạy toàn bộ lệnh kiểm tra.
- Tạo một lỗi nhỏ có kiểm soát và sửa lại.
- Viết checklist 5 bước dùng cho production.
Phần thực hành mở rộng: storage theo nhu cầu thật thay vì học thuộc khái niệm
Storage rất dễ trở thành chủ đề mơ hồ nếu chỉ đọc định nghĩa. Bài này nên kéo người học về các tình huống thật: cần mount chung file, cần lưu object, cần scale và chịu lỗi tốt hơn thì chọn gì.
Lab 1: Phân biệt 3 kiểu nhu cầu lưu trữ
- chia sẻ file giữa nhiều máy/app
- lưu object như backup, media, artifact
- lưu dữ liệu phân tán với yêu cầu chịu lỗi cao hơn
Hãy tự gán chúng lần lượt cho NFS, MinIO và Ceph để tạo liên kết tư duy rõ ràng.
Lab 2: Mount NFS cơ bản trên lab
showmount -e 192.168.1.10
sudo mount -t nfs 192.168.1.10:/export/shared /mnt
mount | grep nfs
df -h | grep /mnt
Mục tiêu là hiểu NFS như một file share qua mạng và nhận ra nó phụ thuộc nhiều vào network/server NFS trung tâm.
Lab 3: Làm quen object storage bằng công cụ tương thích S3
mc alias set local http://127.0.0.1:9000 minioadmin minioadmin
mc mb local/backup-lab
mc cp /etc/hosts local/backup-lab/hosts.txt
mc ls local/backup-lab
Ngay cả khi chưa dựng MinIO hoàn chỉnh, việc hiểu object storage theo kiểu bucket/object đã rất có giá trị cho SysAdmin.
Lab 4: So sánh NFS, MinIO, Ceph theo tiêu chí vận hành
- độ đơn giản triển khai
- cách scale
- khả năng chịu lỗi
- kiểu workload phù hợp
- chi phí vận hành và độ khó debug
Đây là bài tập cực tốt để tránh chọn storage theo phong trào.
Lab 5: Viết 3 tình huống chọn storage
Ví dụ:
- WordPress nhiều node cần thư viện media chung
- backup artifact cần lưu dạng object và tải qua API
- hạ tầng lớn cần lớp storage phân tán nhiều node
Với mỗi tình huống, tự đề xuất công nghệ phù hợp và lý do.
Tình huống thực tế
Nhiều đội dùng NFS cho mọi thứ vì quen tay, rồi gặp bottleneck hoặc SPOF. Đội khác nhảy thẳng vào Ceph khi nhu cầu còn rất nhỏ và tự tăng gánh nặng vận hành quá sớm. Storage tốt là storage phù hợp, không phải storage nghe “xịn”.
Lỗi phổ biến
- Chọn storage theo tên tuổi thay vì workload.
- Không tính đến backup và restore của chính lớp storage.
- Không để ý network latency/bandwidth.
- Đánh giá thấp độ phức tạp vận hành Ceph hoặc object storage phân tán.
Kết bài
Sau bài này, anh chưa cần trở thành chuyên gia storage, nhưng đã có khung suy nghĩ đủ thực tế để phân biệt bài toán file share, object storage và storage phân tán. Đây là nền tốt trước khi sang cloud/OpenStack, nơi compute, network và storage sẽ ghép lại thành một bức tranh hạ tầng lớn hơn.
