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

Giải Pháp Tạo Hệ Thống Lưu Trữ Đồng Bộ (Shared Storage) Giữa Hai VPS Khác Nhà Cung Cấp Bằng GlusterFS

7 tháng 6, 2026

1. Đặt vấn đề: Thách thức lưu trữ trong hạ tầng Multi-Cloud

Trong kỷ nguyên chuyển đổi số, việc đảm bảo tính sẵn sàng cao (High Availability) và khả năng dự phòng thảm họa (Disaster Recovery) là yếu tố sống còn đối với mọi hệ thống CNTT của doanh nghiệp. Một trong những chiến lược phổ biến hiện nay là sử dụng hạ tầng Multi-Cloud hoặc kết hợp nhiều nhà cung cấp VPS khác nhau (như AWS, Google Cloud, DigitalOcean, hay các nhà cung cấp nội địa) để tránh tình trạng phụ thuộc vào một nhà cung cấp duy nhất (Vendor Lock-in).

Tuy nhiên, thách thức lớn nhất khi triển khai mô hình này là làm sao để đồng bộ dữ liệu thời gian thực giữa các cụm máy chủ nằm ở các trung tâm dữ liệu (Data Center) hoàn toàn khác biệt. Các giải pháp lưu trữ truyền thống như NFS (Network File System) thường bộc lộ điểm yếu về hiệu năng khi truyền tải qua môi trường Internet và dễ trở thành điểm lỗi duy nhất (Single Point of Failure). Đó là lý do tại sao GlusterFS nổi lên như một giải pháp cứu cánh hoàn hảo.

2. GlusterFS là gì? Tại sao nên chọn GlusterFS cho hệ thống Shared Storage?

GlusterFS là một hệ thống tập tin phân tán (Distributed File System) mã nguồn mở, có khả năng mở rộng mạnh mẽ lên đến hàng petabyte. Nó kết hợp các tài nguyên lưu trữ từ nhiều máy chủ khác nhau thành một không gian lưu trữ thống nhất duy nhất.

Đối với bài toán kết nối hai VPS khác nhà cung cấp, GlusterFS mang lại những lợi ích vượt trội:

  • Kiến trúc phi tập trung (No Metadata Server): GlusterFS không sử dụng máy chủ quản lý dữ liệu đặc tả (metadata). Thay vào đó, nó sử dụng thuật toán băm (hashing) để xác định vị trí tệp tin. Điều này giúp loại bỏ hoàn toàn hiện tượng nghẽn cổ chai và tăng tính chịu lỗi.
  • Đồng bộ hóa thời gian thực (Replication): Chế độ Replicated Volume cho phép dữ liệu ghi vào VPS A sẽ ngay lập tức được sao chép sang VPS B qua môi trường mạng, đảm bảo tính toàn vẹn dữ liệu.
  • Khả năng tự khắc phục (Self-healing): Nếu một VPS gặp sự cố gián đoạn, VPS còn lại vẫn hoạt động bình thường. Khi VPS bị lỗi kết nối trở lại, GlusterFS sẽ tự động đồng bộ phần dữ liệu bị thiếu hụt mà không cần sự can thiệp thủ công của quản trị viên.

3. Chuẩn bị hạ tầng và các lưu ý quan trọng trước khi cài đặt

Để đảm bảo hiệu năng và tính bảo mật khi kết nối hai VPS khác nhà cung cấp, chúng ta cần chuẩn bị kỹ lưỡng các yếu tố sau:

3.1. Thông tin hạ tầng giả định

  • VPS 1 (Nhà cung cấp A - Master Node 1): Hệ điều hành Ubuntu 22.04 LTS, IP công cộng: 1.2.3.4
  • VPS 2 (Nhà cung cấp B - Master Node 2): Hệ điều hành Ubuntu 22.04 LTS, IP công cộng: 5.6.7.8

3.2. Yêu cầu về mạng và bảo mật

Lưu ý đặc biệt quan trọng: Vì hai VPS nằm ở hai nhà cung cấp khác nhau, dữ liệu sẽ được truyền tải qua môi trường Internet công cộng. Để đảm bảo an toàn, doanh nghiệp bắt buộc phải thiết lập một kênh truyền an toàn như VPN (WireGuard hoặc OpenVPN) giữa hai VPS này, hoặc cấu hình tường lửa (Firewall) cực kỳ nghiêm ngặt, chỉ cho phép các IP cụ thể giao tiếp với nhau qua các cổng của GlusterFS (mặc định là 24007, 24008, và dải cổng từ 49152 trở đi).

4. Hướng dẫn chi tiết các bước cấu hình GlusterFS

Bước 1: Cấu hình File Hosts và cập nhật hệ thống

Đăng nhập vào cả hai VPS bằng quyền root và tiến hành cập nhật danh sách gói phần mềm:

sudo apt update && sudo apt upgrade -y

Tiếp theo, chỉnh sửa file /etc/hosts trên cả hai máy chủ để chúng có thể nhận diện nhau bằng tên (Hostname) thay vì chỉ dùng IP. Chạy lệnh sudo nano /etc/hosts và thêm vào nội dung sau:

# Trên cả hai VPS
1.2.3.4 vps-node1
5.6.7.8 vps-node2

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

Thêm kho lưu trữ chính thức của GlusterFS để cài đặt phiên bản ổn định nhất mới nhất trên cả hai VPS:

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

Sau khi cài đặt xong, khởi động dịch vụ và thiết lập cho phép GlusterFS tự động chạy cùng hệ thống:

sudo systemctl start glusterd
sudo systemctl enable glusterd

Bước 3: Kết nối hai Node thành một Cluster (Trusted Storage Pool)

Từ VPS 1 (vps-node1), thực hiện lệnh thiết lập liên kết với VPS 2 (vps-node2):

sudo gluster peer probe vps-node2

Nếu thành công, hệ thống sẽ hiển thị thông báo peer probe: success. Bạn có thể kiểm tra trạng thái kết nối bằng lệnh:

sudo gluster peer status

Bước 4: Tạo phân vùng lưu trữ (GlusterFS Volume)

Trước khi tạo Volume, hãy chắc chắn rằng bạn đã chuẩn bị một thư mục trống trên cả hai VPS để chứa dữ liệu đồng bộ (thường gọi là Brick). Ví dụ: /gluster/brick1.

# Chạy trên cả hai VPS
sudo mkdir -p /gluster/brick1

Bây giờ, từ bất kỳ máy chủ nào, hãy chạy lệnh tạo Replicated Volume với tham số số lượng bản sao là 2 (replica 2):

sudo gluster volume create shared-volume replica 2 vps-node1:/gluster/brick1 vps-node2:/gluster/brick1 force

Khởi động Volume vừa tạo để đưa vào sử dụng:

sudo gluster volume start shared-volume

Kiểm tra lại thông tin chi tiết của Volume:

sudo gluster volume info

5. Cấu hình Client để Mount và sử dụng Shared Storage

Để sử dụng không gian lưu trữ chung này trên các ứng dụng (như Web Server Nginx, Source Code, thư mục Upload hình ảnh), chúng ta cần mount volume GlusterFS vào một thư mục cục bộ (ví dụ: /mnt/shared-data).

Cài đặt gói GlusterFS Client trên máy chủ cần sử dụng dữ liệu (có thể chính là VPS 1 và VPS 2):

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

Tiến hành mount volume:

sudo mount -t glusterfs vps-node1:/shared-volume /mnt/shared-data

Để thư mục này tự động mount mỗi khi khởi động lại VPS, hãy thêm dòng sau vào cuối file /etc/fstab:

vps-node1:/shared-volume /mnt/shared-data glusterfs defaults,_netdev 0 0

6. Đánh giá hiệu năng và chiến lược tối ưu hóa doanh nghiệp

Mặc dù GlusterFS giải quyết triệt để bài toán đồng bộ dữ liệu giữa hai nhà cung cấp khác nhau, các kỹ sư hệ thống cần lưu ý đến yếu tố Độ trễ mạng (Network Latency). Vì dữ liệu được ghi đồng thời lên cả hai nơi (Synchronous Replication), tốc độ ghi của hệ thống sẽ phụ thuộc vào băng thông và độ trễ giữa Data Center của nhà cung cấp A và nhà cung cấp B.

Để tối ưu hóa, doanh nghiệp nên chọn các trung tâm dữ liệu có khoảng cách địa lý gần nhau (ví dụ: cùng thuộc khu vực Singapore hoặc cùng tại Việt Nam) để giảm thiểu tối đa độ trễ Ping dưới 10ms. Ngoài ra, việc ứng dụng các ổ cứng SSD NVMe tốc độ cao cho các thư mục Brick cũng giúp cải thiện đáng kể hiệu năng I/O tổng thể của toàn hệ thống.

7. Lời kết

Tạo dựng một hệ thống lưu trữ đồng bộ Shared Storage xuyên nhà cung cấp bằng GlusterFS không chỉ giúp doanh nghiệp tối ưu hóa chi phí hạ tầng, tránh rủi ro sập cục bộ một nhà mạng, mà còn là bước đi chiến lược trong việc xây dựng kiến trúc Multi-Cloud vững chắc. Hy vọng bài viết này đã cung cấp cho bạn cái nhìn toàn diện và hướng dẫn thực hành chi tiết nhất để áp dụng thành công vào dự án của mình.