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

Cấu hình Valkey Cluster trên 3 VPS giá rẻ: Giải pháp thay thế Redis Cluster phân tán, chịu lỗi cao

3 tháng 6, 2026

Giới thiệu về Valkey và Xu hướng Thay Thế Redis

Trong nhiều năm qua, Redis đã khẳng định vị thế là giải pháp lưu trữ dữ liệu trong bộ nhớ (in-memory data store) phổ biến nhất thế giới. Tuy nhiên, việc Redis chuyển đổi từ giấy phép mã nguồn mở BSD sang các điều khiển thương mại nghiêm ngặt hơn (RSALv2 và SSPLv1) vào đầu năm 2024 đã tạo ra một làn sóng dịch chuyển lớn trong cộng đồng công nghệ. Để duy trì một giải pháp thay thế thực sự mở và do cộng đồng quản lý, Linux Foundation cùng các ông lớn công nghệ như AWS, Google Cloud, và Oracle đã chung tay khởi xướng dự án Valkey.

Valkey là một nhánh rẽ (fork) hoàn toàn mở từ Redis phiên bản 7.2.4. Nó không chỉ kế thừa toàn bộ sức mạnh, hiệu năng và cú pháp của Redis mà còn tiếp tục được tối ưu hóa hiệu suất mạnh mẽ hơn. Đối với các doanh nghiệp nhỏ hoặc các nhà phát triển tối ưu chi phí, việc triển khai Valkey Cluster trên các hạ tầng VPS giá rẻ là một giải pháp kiến trúc lý tưởng. Hệ thống này vừa đảm bảo tính sẵn sàng cao (High Availability), khả năng chịu lỗi (Fault Tolerance), vừa giúp kiểm soát ngân sách hạ tầng một cách tối đa.

Kiến Trúc Valkey Cluster Trên 3 Node VPS

Một cụm Valkey Cluster tối thiểu cần ít nhất 3 node Master để đảm bảo cơ chế bỏ phiếu (quorum) hoạt động chính xác khi có sự cố xảy ra. Trong bài hướng dẫn này, chúng ta sẽ thiết lập một kiến trúc tiết kiệm chi phí nhưng cực kỳ bền vững: sử dụng 3 VPS giá rẻ, mỗi VPS sẽ chạy đồng thời 1 node Master và 1 node Replica (Slave) của một Master khác.

Lưu ý về an toàn dữ liệu: Việc đặt Replica trên cùng một server vật lý với Master của nó là một sai lầm nghiêm trọng. Nếu server đó sập, bạn sẽ mất cả Master lẫn Replica. Do đó, chúng ta sẽ đan xen các node chéo nhau giữa các VPS.

Giả sử chúng ta có 3 VPS với địa chỉ IP công cộng (hoặc IP mạng nội bộ) như sau:

  • VPS 1 (192.168.1.10): Chạy Master 1 (Port 7000) và Replica 3 (Port 7001)
  • VPS 2 (192.168.1.11): Chạy Master 2 (Port 7000) và Replica 1 (Port 7001)
  • VPS 3 (192.168.1.12): Chạy Master 3 (Port 7000) và Replica 2 (Port 7001)

Với mô hình phân bổ chéo này, nếu bất kỳ một VPS nào gặp sự cố hoàn toàn, cụm Cluster vẫn hoạt động bình thường vì các Master còn lại sẽ bầu chọn Replica tương ứng lên thay thế.

Hướng Dẫn Từng Bước Cấu Hình Cụm Valkey Cluster

Bước 1: Chuẩn bị hạ tầng và cài đặt Valkey

Trước tiên, bạn cần thực hiện các thao tác này trên cả 3 VPS. Hãy cập nhật hệ thống và cài đặt các công cụ biên dịch cần thiết:

sudo apt update && sudo apt upgrade -y
sudo apt install build-essential pkg-config libssl-dev tcl git -y

Tiến hành tải mã nguồn mới nhất của Valkey từ kho lưu trữ GitHub chính thức, biên dịch và cài đặt vào hệ thống:

git clone [https://github.com/valkey-io/valkey.git](https://github.com/valkey-io/valkey.git)
cd valkey
make
sudo make install

Bước 2: Cấu hình các Node trên từng VPS

Trên mỗi VPS, chúng ta cần tạo các thư mục riêng biệt cho node Master (Port 7000) và node Replica (Port 7001) để lưu trữ tệp cấu hình và dữ liệu bền vững (AOF/RDB).

Ví dụ thực hiện trên VPS 1:

sudo mkdir -p /etc/valkey/cluster/7000
sudo mkdir -p /etc/valkey/cluster/7001
sudo mkdir -p /var/lib/valkey/7000
sudo mkdir -p /var/lib/valkey/7001

Tiếp theo, tạo tệp cấu hình cho node Master tại /etc/valkey/cluster/7000/valkey.conf với nội dung như sau:

port 7000
bind 0.0.0.0
protected-mode no
daemonize yes
pidfile /var/run/valkey_7000.pid
cluster-enabled yes
cluster-config-file nodes_7000.conf
cluster-node-timeout 5000
appendonly yes
dir /var/lib/valkey/7000

Tương tự, tạo tệp cấu hình cho node Replica tại /etc/valkey/cluster/7001/valkey.conf:

port 7001
bind 0.0.0.0
protected-mode no
daemonize yes
pidfile /var/run/valkey_7001.pid
cluster-enabled yes
cluster-config-file nodes_7001.conf
cluster-node-timeout 5000
appendonly yes
dir /var/lib/valkey/7001

Lưu ý quan trọng: Hãy thực hiện tương tự các bước tạo thư mục và tệp cấu hình này trên VPS 2 và VPS 3.

Bước 3: Khởi chạy các tiến trình Valkey

Sau khi đã hoàn tất cấu hình, khởi chạy toàn bộ 6 node trên cả 3 VPS bằng lệnh sau (thực hiện trên từng server tương ứng):

valkey-server /etc/valkey/cluster/7000/valkey.conf
valkey-server /etc/valkey/cluster/7001/valkey.conf

Bạn có thể kiểm tra xem các tiến trình đã chạy thành công hay chưa bằng lệnh: ps aux | grep valkey hoặc kiểm tra các cổng mạng đang mở bằng ss -tuln. Đảm bảo các cổng 7000, 7001 cùng các cổng giao tiếp cluster (17000, 17001) đều đang ở trạng thái lắng nghe.

Bước 4: Khởi tạo Valkey Cluster

Khi tất cả 6 node độc lập đã hoạt động, chúng ta sẽ tiến hành liên kết chúng lại thành một cụm Cluster thống nhất. Bạn chỉ cần đứng tại một VPS bất kỳ (ví dụ VPS 1) và thực hiện lệnh dưới đây:

valkey-cli --cluster create \
192.168.1.10:7000 192.168.1.11:7000 192.168.1.12:7000 \
192.168.1.11:7001 192.168.1.12:7001 192.168.1.10:7001 \
--cluster-replicas 1

Trong lệnh trên, tham số --cluster-replicas 1 chỉ định rằng hệ thống sẽ tự động gán 1 Replica cho mỗi Master. Thứ tự điền IP và Port được sắp xếp cố ý sao cho Replica của Master thuộc VPS 1 sẽ nằm ở VPS 2, Replica của Master thuộc VPS 2 nằm ở VPS 3, và cứ thế tiếp tục. Trình điều khiển sẽ hiển thị cấu trúc phân bổ dự kiến và yêu cầu bạn xác nhận, hãy gõ yes để đồng ý.

Kiểm Tra Tính Ổn Định và Khả Năng Chịu Lỗi (Failover)

Để đảm bảo hệ thống hoạt động đúng như kỳ vọng trong môi trường production, chúng ta cần tiến hành các bài kiểm tra thực tế.

Kiểm tra trạng thái cụm

Kết nối vào một node bất kỳ bằng công cụ dòng lệnh chuyên dụng để xem cấu trúc phân bổ 16384 hash slots:

valkey-cli -c -p 7000
127.0.0.1:7000> cluster info
127.0.0.1:7000> cluster nodes

Hệ thống sẽ trả về danh sách chi tiết các node, trạng thái kết nối và xác định rõ ràng node nào đang đóng vai trò master hoặc slave.

Thử nghiệm kịch bản sự cố (Failover Test)

Bây giờ, chúng ta sẽ giả lập tình huống một máy chủ VPS đột ngột bị sập. Hãy truy cập vào VPS 1 và tắt đột ngột tiến trình Master đang chạy trên cổng 7000:

valkey-cli -p 7000 shutdown

Ngay lập tức, hãy chuyển sang VPS 2 hoặc VPS 3 và chạy lại lệnh valkey-cli -p 7000 cluster nodes. Bạn sẽ chứng kiến cơ chế tự động chịu lỗi hoạt động một cách mượt mà:

  1. Cụm nhận biết Master trên VPS 1 đã mất kết nối (fail).
  2. Node Replica tương ứng nằm trên VPS 2 (cổng 7001) ngay lập tức được bầu chọn và thăng cấp (promoted) lên làm Master mới.
  3. Toàn bộ ứng dụng của bạn kết nối tới cluster vẫn đọc/ghi dữ liệu bình thường mà không bị gián đoạn dịch vụ.

Khi VPS 1 được khắc phục và bật lại node 7000, node này sẽ tự động gia nhập lại vào cụm nhưng với vai trò mới là một Replica để đồng bộ dữ liệu từ Master mới trên VPS 2.

Lời Kết và Khuyến Nghị Vận Hành

Việc triển khai Valkey Cluster trên 3 VPS giá rẻ mang lại hiệu quả kinh tế vượt trội so với việc sử dụng các dịch vụ Cloud Managed Cache đắt đỏ, trong khi vẫn giữ nguyên các tiêu chuẩn kỹ thuật cốt lõi: phân tán tải, mở rộng dung lượng bộ nhớ và khả năng tự phục hồi sau sự cố. Đây là một sự thay thế hoàn hảo và lâu dài cho Redis Cluster truyền thống.

Tuy nhiên, khi vận hành hệ thống này trong thực tế, doanh nghiệp cần lưu ý một số điểm quan trọng sau để đảm bảo an toàn tối đa:

  • Cấu hình tường lửa nghiêm ngặt: Chỉ cho phép các IP nội bộ trong cụm hoặc IP của các Application Server kết nối tới các cổng 7000, 7001 và các cổng cluster bus. Tuyệt đối không mở công khai ra Internet mà không có mật khẩu bảo vệ.
  • Bật tính năng xác thực: Sử dụng chỉ thị masterauth và requirepass trong tệp cấu hình để mã hóa dữ liệu truyền tải và bắt buộc xác thực khi truy cập.
  • Giám sát tài nguyên liên tục: Vì chạy trên VPS giá rẻ, tài nguyên RAM thường bị giới hạn. Hãy thiết lập chính sách maxmemory-policy phù hợp (ví dụ: allkeys-lru) để tránh tình trạng VPS bị tràn RAM dẫn tới crash hệ thống.
Cấu hình Valkey Cluster trên 3 VPS giá rẻ: Giải pháp thay thế Redis Cluster phân tán, chịu lỗi cao | DPTCloud