Bài 24: Tổng quan Storage: NFS, MinIO, Ceph

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.

Sau bài này anh sẽ biết:

  • 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

Mục tiêu lab: chạy các lệnh kiểm tra, tạo thay đổi nhỏ và xác nhận kết quả.
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

  1. Xác định mục tiêu thay đổi.
  2. Backup file cấu hình hoặc tạo snapshot nếu thay đổi rủi ro.
  3. Kiểm tra trạng thái hiện tại bằng lệnh phù hợp.
  4. Thay đổi trên lab/staging trước nếu có.
  5. Áp dụng production trong khung giờ phù hợp.
  6. Kiểm tra log, service, port, endpoint sau thay đổi.
  7. 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.
Lưu ý production: Nếu thay đổi có thể làm mất kết nối, dừng service hoặc ảnh hưởng dữ liệu, hãy chuẩn bị rollback trước khi chạy lệnh.

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

  1. Dựng lab nhỏ cho chủ đề này.
  2. Chạy toàn bộ lệnh kiểm tra.
  3. Tạo một lỗi nhỏ có kiểm soát và sửa lại.
  4. 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.

Tác giả: Mạnh Hoàng

Tôi là Hoàng Mạnh, người sáng lập blog SysadminSkills.com. Tôi viết về quản trị hệ thống, bảo mật máy chủ, DevOps và cách ứng dụng AI để tự động hóa công việc IT. Blog này là nơi tôi chia sẻ những gì đã học được từ thực tế – đơn giản, ngắn gọn và áp dụng được ngay.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *