Thiết lập Repository chính thức của Apache Cassandra
Bước đầu tiên là thêm kho lưu trữ (repository) chính thức từ Apache vào hệ thống Ubuntu 24.04 để đảm bảo cài đặt phiên bản mới nhất và ổn định.
Chúng ta cần tải và thêm key GPG của Apache để xác thực gói phần mềm, sau đó định nghĩa source list cho apt.
Thực hiện lệnh tải key GPG:
curl -fsSL https://www.apache.org/dist/cassandra/KEYS | gpg --dearmor | sudo tee /usr/share/keyrings/cassandra-archive-keyring.gpg > /dev/null
Kết quả mong đợi: Lệnh chạy xong mà không có thông báo lỗi, key đã được lưu vào thư mục keyrings.
Tiếp theo, tạo file nguồn repository mới trong thư mục sources list:
echo "deb [signed-by=/usr/share/keyrings/cassandra-archive-keyring.gpg] https://www.apache.org/dist/cassandra/debian 42.x main" | sudo tee /etc/apt/sources.list.d/cassandra.list
Kết quả mong đợi: File `/etc/apt/sources.list.d/cassandra.list` được tạo với nội dung trỏ về repo chính thức của Apache Cassandra phiên bản 4.x.
Cập nhật danh sách gói phần mềm để hệ thống nhận diện repository mới:
sudo apt update
Kết quả mong đợi: Trong output của `apt update`, bạn sẽ thấy dòng "Get: https://www.apache.org/dist/cassandra/debian 42.x/main InRelease" hoặc "Fetched ... B in ...s".
Cài đặt gói Cassandra và khởi động dịch vụ
Sau khi có repository, tiến hành cài đặt gói `cassandra` qua apt. Gói này bao gồm cả phần mềm core và các script khởi động systemd.
Cài đặt gói với chế độ không yêu cầu xác nhận (yes):
sudo apt install -y cassandra
Kết quả mong đợi: Hệ thống tải và cài đặt các file cần thiết. Quá trình có thể mất vài phút tùy thuộc vào tốc độ mạng.
Khởi động dịch vụ Cassandra ngay sau khi cài đặt:
sudo systemctl start cassandra
Kết quả mong đợi: Dịch vụ bắt đầu chạy. Nếu có lỗi, hãy kiểm tra log ngay lập tức.
Thiết lập chế độ tự động khởi động khi máy chủ restart (enable):
sudo systemctl enable cassandra
Kết quả mong đợi: Output hiện ra "Created symlink /etc/systemd/system/multi-user.target.wants/cassandra.service -> /usr/lib/systemd/system/cassandra.service."
Verify trạng thái dịch vụ:
sudo systemctl status cassandra
Kết quả mong đợi: Dòng trạng thái hiển thị "active (running)". Nếu chưa active, Cassandra đang trong quá trình khởi động (bootstrap), cần đợi thêm 1-2 phút.
Hiểu cấu trúc thư mục dữ liệu và log
Để vận hành hiệu quả, bạn cần nắm rõ nơi Cassandra lưu trữ dữ liệu (data) và nhật ký hoạt động (logs) trên hệ thống file của Ubuntu.
Thư mục dữ liệu mặc định lưu trữ các file SSTable và commitlog. Đây là nơi chứa dữ liệu thực tế của cluster.
Đường dẫn dữ liệu mặc định là `/var/lib/cassandra`. Kiểm tra nội dung:
ls -la /var/lib/cassandra
Kết quả mong đợi: Bạn sẽ thấy các thư mục con như `commitlog`, `hints`, `saved_caches`, và các thư mục tên keyspace (ví dụ: `system`).
Thư mục log lưu trữ các nhật ký hoạt động, lỗi và cảnh báo. Đây là nơi đầu tiên cần kiểm tra khi gặp sự cố.
Đường dẫn log mặc định là `/var/log/cassandra`. Kiểm tra nội dung:
ls -la /var/log/cassandra
Kết quả mong đợi: Xuất hiện các file log như `system.log` (chứa thông tin khởi động và lỗi), `debug.log` (nếu bật debug), và file `gc.log` (thông tin thu gom rác Java).
File cấu hình chính của Cassandra nằm ở `/etc/cassandra/cassandra.yaml`. File này quyết định hành vi của node.
Đường dẫn config là `/etc/cassandra/cassandra.yaml`. Xem trước 10 dòng đầu để xác nhận:
head -n 10 /etc/cassandra/cassandra.yaml
Kết quả mong đợi: Hiển thị các comment và cấu hình ban đầu như `cluster_name: 'Test'` hoặc `num_tokens: 256`.
Kiểm tra trạng thái node qua nodetool status
Lệnh `nodetool` là công cụ quản trị mạnh mẽ nhất của Cassandra, được cài đặt sẵn cùng gói phần mềm. Dùng để kiểm tra sức khỏe cluster.
Trước khi chạy lệnh kiểm tra trạng thái, cần đảm bảo dịch vụ đã hoàn tất quá trình khởi động (bootstrap). Chờ khoảng 2-3 phút sau khi chạy `systemctl start`.
Thực hiện lệnh kiểm tra trạng thái node:
nodetool status
Kết quả mong đợi: Output hiển thị bảng trạng thái. Cột "Status" phải là `UN` (Up, Normal). Cột "State" là `Normal`. Cột "Datacenter" thường là `dc1` (hoặc tên bạn đã cấu hình nếu có). Dòng đầu tiên hiển thị địa chỉ IP của node hiện tại.
Chú ý: Nếu thấy trạng thái là `UJ` (Up, Joining), nghĩa là node đang quá trình gia nhập cluster và chưa sẵn sàng nhận dữ liệu hoàn toàn. Nếu thấy `DN` (Down, Normal) là node đang tắt.
Để kiểm tra sâu hơn về cấu hình node, xem thông tin phiên bản và các tham số quan trọng:
nodetool info
Kết quả mong đợi: Hiển thị chi tiết như `ReleaseVersion`, `NativeTransport` (port 9042), `StoragePort` (port 7000), và `GossipPort` (port 7001). Kiểm tra xem các port này có đang lắng nghe (Listening) hay không.
Verify kết quả cuối cùng: Node được coi là "Sẵn sàng" khi `nodetool status` trả về trạng thái `UN` và `nodetool info` hiển thị `State: normal`.
Điều hướng series:
Mục lục: Series: Triển khai Database phân tán với Apache Cassandra và Ubuntu 24.04
« Phần 1: Khởi động: Yêu cầu hệ thống và chuẩn bị môi trường Ubuntu 24.04
Phần 3: Mở rộng cluster: Thiết lập mạng và thêm node thứ hai »