Cấu hình Repository và Cài đặt ScyllaDB trên Ubuntu 24.04
Bước đầu tiên là thêm kho lưu trữ (repository) chính thức của ScyllaDB vào hệ thống Ubuntu 24.04 để đảm bảo bạn nhận được phiên bản mới nhất và các bản vá bảo mật.
Chúng ta cần thêm GPG key để xác thực tính toàn vẹn của các gói phần mềm và chỉ định source.list mới.
Thực hiện lệnh sau để tải và thêm GPG key của ScyllaDB:
curl -s https://www.scylladb.com/repo/gpgkey | gpg --dearmor -o /usr/share/keyrings/scylladb-archive-keyring.gpg
Kết quả mong đợi: Không có thông báo lỗi, file key được tạo tại /usr/share/keyrings/.
Tiếp theo, thêm file repository vào danh sách nguồn của apt. Lưu ý sử dụng biến môi trường để tự động nhận phiên bản Ubuntu (jammy/noble).
echo "deb [signed-by=/usr/share/keyrings/scylladb-archive-keyring.gpg] https://download.scylladb.com/deb/ubuntu/$(lsb_release -cs) main" | tee /etc/apt/sources.list.d/scylla.list
Kết quả mong đợi: Nội dung dòng lệnh được ghi vào file /etc/apt/sources.list.d/scylla.list.
Cập nhật danh sách gói phần mềm để apt nhận diện repository vừa thêm.
apt update
Kết quả mong đợi: Dòng "Hit" hoặc "Get" xuất hiện cho nguồn "scylla.list", không có lỗi 404.
Cài đặt gói Scylla Server và Tools
Cài đặt gói scylla-server (core engine) và scylla-tools-common (các công cụ quản lý như cqlsh, nodetool).
apt install -y scylla-server scylla-tools-common
Kết quả mong đợi: Quá trình cài đặt hoàn tất, xuất hiện dòng "Setting up scylla-server..." và không có lỗi.
Verify việc cài đặt bằng cách kiểm tra phiên bản ScyllaDB.
scylla --version
Kết quả mong đợi: Hiển thị phiên bản, ví dụ: "Scylla 5.x.x (commit hash)".
Cấu hình file scylla.yaml
File cấu hình chính của ScyllaDB nằm tại /etc/scylla/scylla.yaml. Chúng ta sẽ cấu hình các thông số mạng và định danh cluster cơ bản.
Sử dụng trình soạn thảo nano để mở file cấu hình. Trong thực tế, bạn nên sao lưu file gốc trước khi chỉnh sửa.
cp /etc/scylla/scylla.yaml /etc/scylla/scylla.yaml.bak && nano /etc/scylla/scylla.yaml
Kết quả mong đợi: File backup được tạo và trình soạn thảo nano mở ra với nội dung file cấu hình.
Xác định địa chỉ IP và tên Cluster
Tham số listen_address dùng để các node trong cluster giao tiếp với nhau (Internal traffic). Giá trị này phải là địa chỉ IP cụ thể của node hiện tại, không được để là 0.0.0.0.
Tham số rpc_address dùng để Client (CQL) kết nối vào node. Nếu không cấu hình, Scylla sẽ mặc định lắng nghe trên 0.0.0.0.
Tham số cluster_name xác định tên của cluster. Tất cả các node trong cùng một cluster phải có tên giống hệt nhau.
Tìm dòng listen_address: (thường bị comment bằng dấu #) và sửa như sau (Giả sử IP node là 192.168.1.10):
# Tìm và sửa dòng listen_address
# listen_address: 0.0.0.0
# thành
listen_address: 192.168.1.10
Kết quả mong đợi: Dòng listen_address không còn dấu # và chứa IP của máy chủ.
Tìm dòng rpc_address: và cấu hình tương tự hoặc để trống nếu muốn lắng nghe trên tất cả interface (khuyên dùng IP cụ thể cho bảo mật):
# Tìm và sửa dòng rpc_address
# rpc_address: 0.0.0.0
# thành
rpc_address: 192.168.1.10
Kết quả mong đợi: Dòng rpc_address được cấu hình đúng IP.
Tìm dòng cluster_name: và đặt tên cho cluster của bạn (ví dụ: "ScyllaCluster"):
# Tìm dòng cluster_name
cluster_name: 'ScyllaCluster'
Kết quả mong đợi: Tên cluster được gán rõ ràng.
Cấu hình Seed Node và Initial Token
Tham số seeded_nodes là danh sách các node đã tồn tại trong cluster để node mới có thể gia nhập. Đối với node đầu tiên (bootstrap), giá trị này thường là IP của chính nó.
Tìm dòng seeded_nodes: và chỉ định IP của node đầu tiên:
# Tìm dòng seeded_nodes
seeded_nodes: 192.168.1.10
Kết quả mong đợi: Node này biết nó là seed node để khởi tạo cluster.
Tham số initial_token xác định vị trí phân vùng dữ liệu của node trên vòng phân tán (Token Ring). Đối với node đầu tiên, giá trị mặc định 0 là hoàn toàn hợp lệ.
Bạn có thể để mặc định hoặc chỉ định rõ ràng:
# Tìm dòng initial_token
# initial_token: 0
# thành
initial_token: 0
Kết quả mong đợi: Token khởi tạo được xác định.
Lưu lại file cấu hình bằng cách nhấn Ctrl+O (Enter để lưu) và thoát bằng Ctrl+X.
Verify cấu hình
Kiểm tra xem file cấu hình có cú pháp đúng chưa bằng công cụ validate tích hợp sẵn của Scylla.
scylla --show-config --config-file /etc/scylla/scylla.yaml 2>&1 | grep -E "listen_address|rpc_address|cluster_name|seeded_nodes"
Kết quả mong đợi: Các tham số hiển thị đúng giá trị IP và tên cluster bạn vừa cấu hình, không có dòng lỗi "Error: Invalid configuration".
Khởi động dịch vụ ScyllaDB
ScyllaDB được quản lý bởi systemd trên Ubuntu. Chúng ta sẽ bật dịch vụ và cấu hình để nó tự động khởi động khi máy chủ reboot.
Khởi động dịch vụ scylla-server ngay lập tức.
systemctl start scylla
Kết quả mong đợi: Lệnh chạy xong, không có lỗi. Có thể thấy thông báo "Started Scylla Server".
Thiết lập dịch vụ để tự động chạy khi hệ thống khởi động lại (enable).
systemctl enable scylla
Kết quả mong đợi: Xuất hiện dòng "Created symlink /etc/systemd/system/multi-user.target.wants/scylla.service -> /lib/systemd/system/scylla.service".
Verify trạng thái hoạt động
Trạng thái của service cần là active (running).
systemctl status scylla
Kết quả mong đợi: Dòng đầu tiên hiển thị "● scylla.service - Scylla Server" và dòng trạng thái màu xanh lá "Active: active (running)".
Kiểm tra log khởi động để đảm bảo không có lỗi về cấu hình mạng hoặc disk.
journalctl -u scylla -n 50 --no-pager | grep -E "Starting|Started|ERROR|Exception"
Kết quả mong đợi: Xuất hiện dòng "Started Scylla Server" và không có dòng chứa "ERROR" hoặc "Exception" liên quan đến khởi động.
Chạy lệnh nodetool để kiểm tra trạng thái node trong cluster (lần đầu có thể mất vài giây để service sẵn sàng).
nodetool status
Kết quả mong đợi: Hiển thị bảng trạng thái với node hiện tại có trạng thái "UN" (Up/Normal) và IP địa chỉ bạn đã cấu hình.
Điều hướng series:
Mục lục: Series: Triển khai Database phân tán với ScyllaDB trên Ubuntu 24.04
« Phần 1: Chuẩn bị môi trường và yêu cầu hệ thống cho ScyllaDB trên Ubuntu 24.04
Phần 3: Triển khai Cluster 3-node và kiểm tra trạng thái hoạt động »