Quay lại danh sách
Tin tức công nghệ

Triển khai GlusterFS trên 3 VPS giá rẻ: Giải pháp lưu trữ dữ liệu phân tán, độ sẵn sàng cao (HA Shared Storage) tối ưu chi phí

29 tháng 5, 2026

1. Đặt vấn đề: Bài toán lưu trữ dữ liệu độ sẵn sàng cao (HA) với ngân sách hạn chế

Trong kỷ nguyên số, dữ liệu là tài sản vô giá của mọi doanh nghiệp. Đối với các hệ thống Web Cluster, ứng dụng chạy Docker Swarm hoặc Kubernetes, việc sở hữu một phân vùng lưu trữ chung (Shared Storage) có độ sẵn sàng cao (High Availability - HA) là điều kiện tiên quyết. Nếu một máy chủ lưu trữ gặp sự cố, toàn bộ hệ thống phải tiếp tục hoạt động bình thường mà không làm gián đoạn dịch vụ hoặc mất mát dữ liệu.

Tuy nhiên, các giải pháp lưu trữ phần cứng chuyên dụng (SAN/NAS) hoặc dịch vụ Cloud Storage cao cấp thường có chi phí vượt quá khả năng chi trả của các doanh nghiệp vừa và nhỏ (SMEs) hoặc các lập trình viên độc lập. Lúc này, việc tận dụng các VPS giá rẻ kết hợp với giải pháp lưu trữ định nghĩa bằng phần mềm (Software-Defined Storage - SDS) mã nguồn mở là một hướng đi cực kỳ hiệu quả. Trong số các công nghệ hiện nay, GlusterFS nổi lên như một ứng cử viên sáng giá nhất nhờ kiến trúc phi tập trung, dễ triển khai và khả năng mở rộng ấn tượng.

2. Tổng quan về GlusterFS và cơ chế hoạt động

GlusterFS là một hệ thống tệp phân tán mã nguồn mở, có khả năng mở rộng lên đến hàng petabyte dữ liệu. Khác với các hệ thống lưu trữ truyền thống sử dụng máy chủ quản lý siêu dữ liệu (Metadata Server) dễ trở thành điểm nghẽn hoặc điểm lỗi duy nhất (Single Point of Failure), GlusterFS sử dụng thuật toán băm đàn hồi (Elastic Hash Algorithm) để xác định vị trí lưu trữ tệp tin trực tiếp trên các nút (Nodes).

Trong bài viết này, chúng ta sẽ triển khai mô hình Replicated Volume (3-way replication) trên 3 VPS. Với cơ chế này, mỗi tệp tin khi được ghi vào hệ thống lưu trữ chung sẽ được tự động sao chép đồng thời sang cả 3 VPS. Điều này đảm bảo:

  • Độ chịu lỗi cao: Hệ thống vẫn hoạt động bình thường ngay cả khi có tới 2 trong số 3 VPS bị sập hoàn toàn.
  • Tránh hiện tượng Split-Brain: Việc sử dụng số nút lẻ (3 nút) giúp GlusterFS thực hiện cơ chế biểu quyết (Quorum), ngăn chặn tình trạng mâu thuẫn dữ liệu khi xảy ra mất kết nối mạng giữa các node.

3. Chuẩn bị tài nguyên hệ thống

Để đảm bảo hiệu năng và tính ổn định, bạn cần chuẩn bị 3 VPS (có thể thuê từ các nhà cung cấp giá rẻ như Vietnix, LowEndBox, Hetzner, DigitalOcean...) với cấu hình tối thiểu khuyến nghị như sau:

  • Hệ điều hành: Ubuntu Server 22.04 LTS (hoặc Debian 11/12).
  • Cấu hình phần cứng: 2 vCPU, 2GB RAM, 20GB SSD cho hệ điều hành.
  • Ổ đĩa bổ sung: Mỗi VPS cần thêm 1 ổ đĩa trắng (ví dụ: 50GB) chưa định dạng để dùng riêng cho GlusterFS (gọi là /dev/sdb).
  • Mạng nội bộ: Các VPS nên nằm trong cùng một dải mạng nội bộ (Private Network) để tối ưu tốc độ truyền tải dữ liệu và tăng cường bảo mật.

Bảng quy hoạch thông tin cấu hình:

HostnameIP Private / IP PublicỔ đĩa GlusterFSBrick Path
node110.10.10.1/dev/sdb/mnt/glusterfs/brick1
node210.10.10.2/dev/sdb/mnt/glusterfs/brick2
node310.10.10.3/dev/sdb/mnt/glusterfs/brick3

4. Quy trình triển khai chi tiết từng bước

Bước 1: Cấu hình phân giải tên miền nội bộ và tường lửa

Đăng nhập vào cả 3 VPS bằng quyền root. Tiến hành chỉnh sửa tệp /etc/hosts để các máy chủ có thể nhận diện nhau qua hostname:

sudo nano /etc/hosts

# Thêm vào nội dung sau:
10.10.10.1 node1
10.10.10.2 node2
10.10.10.3 node3

Tiếp theo, hãy mở các cổng kết nối cần thiết trên tường lửa (UFW). GlusterFS sử dụng cổng 24007 cho daemon quản lý, cổng 49152 trở đi cho từng brick, và cổng 111 cho RPC:

sudo ufw allow from 10.10.10.0/24 to any port 24007 proto tcp
sudo ufw allow from 10.10.10.0/24 to any port 49152:49160 proto tcp
sudo ufw allow from 10.10.10.0/24 to any port 111 proto tcp

Bước 2: Định dạng và gắn (mount) ổ đĩa dữ liệu

Thực hiện lệnh sau trên cả 3 node để định dạng ổ đĩa bổ sung /dev/sdb sang định dạng XFS (định dạng được GlusterFS tối ưu tốt nhất):

sudo mkfs.xfs -f /dev/sdb
sudo mkdir -p /data/glusterfs-brick

# Cấu hình tự động mount khi khởi động lại
echo '/dev/sdb /data/glusterfs-brick xfs defaults 0 0' | sudo tee -a /etc/fstab
sudo mount -a

Sau khi mount thành công, tạo thư mục cụ thể cho brick lưu trữ dữ liệu:

sudo mkdir -p /data/glusterfs-brick/gv0

Bước 3: Cài đặt GlusterFS Server

Thêm kho lưu trữ PPA chính thức và cài đặt phiên bản GlusterFS mới nhất trên cả 3 node:

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:gluster/glusterfs-10 -y
sudo apt update
sudo apt install glusterfs-server -y

# Khởi động và kích hoạt dịch vụ chạy cùng hệ thống
sudo systemctl start glusterd
sudo systemctl enable glusterd

Bước 4: Thiết lập cụm Cluster tin cậy (Trusted Storage Pool)

Từ node1, thực hiện lệnh kết nối đến node2 và node3 để thiết lập cụm:

sudo gluster peer probe node2
sudo gluster peer probe node3

Kiểm tra trạng thái kết nối bằng lệnh:

sudo gluster peer status

Nếu kết quả hiển thị 'Peer in Cluster (Connected)', chúc mừng bạn đã kết nối thành công các nút lưu trữ lại với nhau.

Bước 5: Khởi tạo GlusterFS Replicated Volume

Từ bất kỳ node nào (ví dụ node1), chạy lệnh sau để khởi tạo Volume có tên volume_ha với cơ chế replica 3:

sudo gluster volume create volume_ha replica 3 node1:/data/glusterfs-brick/gv0 node2:/data/glusterfs-brick/gv0 node3:/data/glusterfs-brick/gv0 force

Tiến hành khởi động Volume vừa tạo:

sudo gluster volume start volume_ha

Kiểm tra thông tin chi tiết để đảm bảo Volume đang hoạt động tốt:

sudo gluster volume info

5. Kiểm thử tính năng High Availability (HA) và Đồng bộ dữ liệu

Để sử dụng vùng lưu trữ này trên các máy chủ client (hoặc ngay trên chính các node này), bạn cần cài đặt gói client:

sudo apt install glusterfs-client -y
sudo mkdir -p /mnt/shared-storage

# Gắn vùng lưu trữ vào thư mục cục bộ
sudo mount -t glusterfs node1:/volume_ha /mnt/shared-storage

Mẹo tối ưu HA: Khi mount, bạn có thể chỉ định IP của node1. Nếu node1 sập, GlusterFS client thông minh sẽ tự động chuyển hướng kết nối sang node2 hoặc node3 mà không làm gián đoạn việc đọc/ghi dữ liệu.

Kịch bản kiểm thử: Bạn hãy thử tạo một tệp tin bất kỳ trong thư mục /mnt/shared-storage, sau đó tắt hoàn toàn một VPS (ví dụ node2). Bạn sẽ thấy dữ liệu vẫn truy cập bình thường trên các node còn lại. Khi node2 bật trở lại, GlusterFS sẽ tự động thực hiện cơ chế Self-Heal (tự chữa lành) để đồng bộ các dữ liệu bị thiếu hụt trong thời gian ngoại tuyến.

6. Những lưu ý quan trọng để vận hành an toàn và tối ưu hiệu năng

Mặc dù GlusterFS trên VPS giá rẻ là giải pháp rất tuyệt vời, doanh nghiệp cần lưu ý một số điểm sau để đảm bảo hệ thống vận hành trơn tru:

  • Băng thông mạng (Network Bandwidth): Cơ chế Replicated đòi hỏi ghi dữ liệu đồng thời lên các node. Do đó, tốc độ mạng giữa các VPS ảnh hưởng trực tiếp đến tốc độ ghi (Write IOPS). Hãy ưu tiên chọn cụm VPS cùng Datacenter và hỗ trợ LAN nội bộ tốc độ cao (tối thiểu 1Gbps).
  • Giám sát dung lượng ổ đĩa: Luôn duy trì dung lượng trống tối thiểu 15-20% trên các ổ đĩa gạch (Bricks). Nếu ổ đĩa bị đầy hoàn toàn, GlusterFS có thể rơi vào trạng thái lỗi nghiêm trọng và khó phục hồi.
  • Cấu hình Quorum: Luôn bật tính năng cluster.quorum-type để ngăn chặn hiện tượng Split-brain: sudo gluster volume set volume_ha cluster.quorum-type auto.

7. Lời kết

Việc triển khai GlusterFS trên 3 VPS giá rẻ mang lại một giải pháp lưu trữ có độ sẵn sàng cao cực kỳ kinh tế, giúp loại bỏ hoàn toàn rủi ro mất mát dữ liệu do lỗi phần cứng máy chủ đơn lẻ. Với hướng dẫn chi tiết trên, hy vọng bạn có thể tự tay xây dựng và tích hợp thành công hệ thống HA Shared Storage vào hạ tầng ứng dụng của doanh nghiệp mình, vừa đảm bảo tính an toàn chuyên nghiệp, vừa tối ưu hóa bài toán chi phí vận hành.

Triển khai GlusterFS trên 3 VPS giá rẻ: Giải pháp lưu trữ dữ liệu phân tán, độ sẵn sàng cao (HA Shared Storage) tối ưu chi phí | DPTCloud