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

Xây Dựng Hệ Thống Lưu Trữ Độ Sẵn Sàng Cao (HA) Với GlusterFS Trên Cụm 3 VPS Hetzner

29 tháng 5, 2026

Giới thiệu về bài toán lưu trữ độ sẵn sàng cao (HA Shared Storage)

Trong kỷ nguyên số hóa, tính sẵn sàng của dữ liệu là yếu tố sống còn đối với sự sống sót của một hệ thống doanh nghiệp. Khi triển khai các ứng dụng chạy trên cụm máy chủ (như Docker Swarm, Kubernetes hoặc cụm Web Server truyền thống), việc chia sẻ dữ liệu đồng bộ giữa các node luôn là một thách thức lớn. Nếu một máy chủ lưu trữ độc lập (Single Point of Failure) gặp sự cố phần cứng hoặc mất kết nối mạng, toàn bộ hệ thống ứng dụng phụ thuộc sẽ lập tức bị tê liệt.

Để giải quyết bài toán này, các kỹ sư hệ thống thường hướng đến giải pháp Hệ thống lưu trữ phân tán chia sẻ (Distributed Shared Storage). Trong đó, GlusterFS nổi lên như một ứng dụng mã nguồn mở mạnh mẽ, có khả năng mở rộng quy mô lớn (scale-out) từ vài Terabyte lên đến hàng Petabyte, cho phép gộp tài liệu lưu trữ từ nhiều máy chủ vật lý hoặc máy chủ ảo (VPS) thành một không gian lưu trữ duy nhất và đồng nhất.

Hetzner Cloud là một trong những nhà cung cấp dịch vụ hạ tầng (IaaS) tối ưu chi phí và hiệu năng tốt nhất hiện nay tại châu Âu và Bắc Mỹ. Bài viết này sẽ hướng dẫn bạn từng bước cách triển khai cụm GlusterFS 3 Node (Replicated Volume) sử dụng VPS Hetzner nhằm đạt mức độ chịu lỗi (fault-tolerance) tốt nhất, đảm bảo dữ liệu vẫn an toàn và có thể truy cập ngay cả khi một node vật lý đột ngột ngừng hoạt động.

Mô hình kiến trúc và Chuẩn bị hạ tầng trên Hetzner

Mô hình lý tưởng và an toàn nhất cho cụm GlusterFS Replicated Volume là sử dụng 3 node độc lập. Cơ chế đồng thuận (Quorum) của GlusterFS yêu cầu tối thiểu quá bán (hơn 50%) số node phải hoạt động để tránh hiện tượng rã não (split-brain) – hiện tượng xảy ra khi cụm bị phân rã thành hai phần độc lập và cả hai đều tự ghi dữ liệu, dẫn đến xung đột dữ liệu nghiêm trọng.

Thông số kỹ thuật đề xuất cho các VPS Hetzner:

  • Hệ điều hành: Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS trên cả 3 node.
  • Cấu hình: Tối thiểu gói CX21 (2 vCPU, 4GB RAM) để đảm bảo hiệu năng đọc/ghi ổn định.
  • Ổ cứng bổ sung: Mỗi node cần mua thêm một Volume Hetzner riêng biệt (ví dụ: 50GB) định dạng Ext4 hoặc XFS để làm không gian lưu trữ chuyên dụng cho GlusterFS (gọi là Brick). Không nên dùng trực tiếp phân vùng root của hệ điều hành.

Bảng phân hoạch IP và Hostname ví dụ:

  • Node 1: Hostname: storage01.local | IP riêng (Hetzner Private Network): 10.0.0.11
  • Node 2: Hostname: storage02.local | IP riêng (Hetzner Private Network): 10.0.0.12
  • Node 3: Hostname: storage03.local | IP riêng (Hetzner Private Network): 10.0.0.13
Khuyến nghị bảo mật quan trọng: Luôn sử dụng tính năng Private Network của Hetzner để kết nối các máy chủ GlusterFS với nhau. Không bao giờ mở public các port của GlusterFS ra ngoài internet để tránh nguy cơ rò rỉ và tấn công dữ liệu.

Các bước triển khai chi tiết cụm GlusterFS

Bước 1: Cấu hình phân giải tên miền nội bộ và Định dạng ổ cứng

Đầu tiên, bạn cần đăng nhập SSH vào cả 3 máy chủ và tiến hành cập nhật hệ thống, cấu hình file hosts để các máy chủ có thể nhận biết nhau qua hostname nội bộ.

sudo apt update && sudo apt upgrade -y
sudo nano /etc/hosts

Thêm các dòng sau vào cuối file /etc/hosts của cả 3 node:

10.0.0.11 storage01.local storage01
10.0.0.12 storage02.local storage02
10.0.0.13 storage03.local storage03

Tiếp theo, tiến hành định dạng ổ cứng bổ sung (giả sử Hetzner nhận diện ổ cứng này là /dev/sdb) và mount vào thư mục brick:

sudo mkfs.xfs -f /dev/sdb
sudo mkdir -p /data/glusterfs/brick1
echo "/dev/sdb /data/glusterfs/brick1 xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mount -a

Bước 2: Cài đặt GlusterFS Server trên các Node

Để đảm bảo nhận được phiên bản GlusterFS mới nhất ổn định, chúng ta sẽ thêm repository chính thức từ đội ngũ phát triển GlusterFS trên cả 3 máy chủ Ubuntu:

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

Kích hoạt và khởi động dịch vụ GlusterFS Daemon:

sudo systemctl enable glusterd
sudo systemctl start glusterd
sudo systemctl status glusterd

Bước 3: Thiết lập Cụm (Trusted Storage Pool)

Chỉ cần thực hiện bước này tại máy chủ storage01 để kết nối hai máy chủ còn lại vào cụm lưu trữ chung.

sudo gluster peer probe storage02.local
sudo gluster peer probe storage03.local

Để kiểm tra trạng thái kết nối của cụm, thực hiện lệnh sau trên bất kỳ máy chủ nào:

sudo gluster peer status

Nếu màn hình hiển thị trạng thái "Peer in Cluster (Connected)" dành cho các node còn lại, việc thiết lập Pool đã thành công hoàn toàn.

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

Bây giờ chúng ta sẽ tạo một Volume có tên là ha-volume cấu hình nhân bản gấp 3 lần (replica 3), tương ứng với việc mỗi tệp tin ghi vào hệ thống sẽ được sao chép đồng thời lên cả 3 ổ cứng vật lý của 3 máy chủ.

Chạy lệnh sau trên máy chủ storage01:

sudo gluster volume create ha-volume replica 3 \
storage01.local:/data/glusterfs/brick1/gv0 \
storage02.local:/data/glusterfs/brick1/gv0 \
storage03.local:/data/glusterfs/brick1/gv0 force

Sau khi khởi tạo thành công, tiến hành kích hoạt Volume này:

sudo gluster volume start ha-volume

Kiểm tra thông tin chi tiết và trạng thái hoạt động của Volume vừa tạo bằng lệnh:

sudo gluster volume info

Kiểm tra tính sẵn sàng cao (High-Availability Test)

Để kiểm tra khả năng hoạt động thực tế, bạn hãy sử dụng một máy chủ client (hoặc chính các máy chủ hiện tại) tiến hành mount thư mục chia sẻ này thông qua giao thức GlusterFS Native Client.

sudo apt install glusterfs-client -y
sudo mkdir -p /mnt/shared-storage
sudo mount -t glusterfs storage01.local:/ha-volume /mnt/shared-storage

Hãy thử tạo mới một vài file dữ liệu trong thư mục /mnt/shared-storage. Bạn sẽ thấy dữ liệu lập tức xuất hiện đồng thời trong thư mục brick của cả 3 node lưu trữ nội bộ.

Kịch bản thử nghiệm lỗi: Hãy tiến hành tắt nguồn đột ngột (Power Off) máy chủ storage01 thông qua bảng điều khiển Cloud Console của Hetzner. Từ máy chủ client, hãy tiếp tục thực hiện lệnh ghi file mới hoặc đọc file cũ. Bạn sẽ nhận thấy hệ thống hoàn toàn không bị gián đoạn hay mất mát dữ liệu nhờ vào cơ chế định tuyến thông minh của GlusterFS, tự động chuyển hướng truy vấn sang storage02 và storage03.

Lời kết và Các lưu ý tối ưu hóa vận hành

Triển khai GlusterFS trên cụm 3 node VPS Hetzner là một phương án tối ưu, chi phí hợp lý để thiết lập hệ thống lưu trữ có độ tin cậy và sẵn sàng cao cho doanh nghiệp. Tuy nhiên, để vận hành một cách trơn tru trong môi trường sản xuất (Production), doanh nghiệp cần lưu ý thêm các điểm sau:

  • Giám sát tài nguyên liên tục: Sử dụng các công cụ như Prometheus và Grafana để theo dõi dung lượng disk, băng thông mạng (Network I/O) và độ trễ đọc/ghi của các brick.
  • Tối ưu hóa Network: Tốc độ của GlusterFS phụ thuộc rất lớn vào băng thông mạng nội bộ. Hãy đảm bảo các VPS được đặt trong cùng một datacenter (Location) của Hetzner để giảm thiểu tối đa độ trễ ping (latency).
  • Sao lưu định kỳ: Mặc dù hệ thống có khả năng chịu lỗi phần cứng, GlusterFS không thể bảo vệ bạn trước các lỗi do con người xóa nhầm dữ liệu hoặc mã độc tống tiền (Ransomware). Do đó, hãy lên lịch snapshot định kỳ cho các Volume Hetzner.
Xây Dựng Hệ Thống Lưu Trữ Độ Sẵn Sàng Cao (HA) Với GlusterFS Trên Cụm 3 VPS Hetzner | DPTCloud