1. Yêu cầu phần cứng và tài nguyên hệ thống
Để triển khai CockroachDB trong môi trường phát triển (Development) với mô hình lưu trữ Row-Oriented, bạn cần đảm bảo máy chủ đáp ứng các tiêu chuẩn tối thiểu sau. CockroachDB là database phân tán, tiêu tốn tài nguyên cho việc đồng bộ và tính toán.
CPU: Tối thiểu 4 nhân (cores). Ưu tiên CPU có hiệu năng đơn nhân cao vì các transaction đơn lẻ thường chạy tuần tự.
RAM: Tối thiểu 8GB. CockroachDB sử dụng RAM cho LRU cache (bộ nhớ đệm) và buffer pool. Nếu RAM thấp, hiệu năng sẽ giảm do phải đọc từ đĩa thường xuyên.
Disk: SSD bắt buộc. CockroachDB yêu cầu I/O tốc độ cao. Không dùng HDD cơ học. Dung lượng tối thiểu 20GB cho dữ liệu và log, nhưng khuyến nghị 50GB+ để có không gian phát triển.
Mạng: Bandwidth ít nhất 1Gbps với độ trễ (latency) dưới 5ms nếu chạy cluster đa nút sau này.
Verify kết quả: Kiểm tra thông số máy chủ hiện tại bằng lệnh sau để đảm bảo đạt chuẩn:
lscpu | grep "Core(s)" && free -h && df -h /
Kết quả mong đợi: Số cores >= 4, Total RAM >= 8G, và filesystem là SSD với dung lượng trống >= 20G.
2. Cài đặt và cập nhật hệ điều hành Ubuntu 24.04
Bắt đầu với một instance Ubuntu 24.04 LTS mới hoặc đã cài đặt. Bước quan trọng nhất là nâng cấp toàn bộ gói hệ thống để đảm bảo các thư viện C++ và kernel mới nhất tương thích với CockroachDB v24.x trở lên.
Cập nhật danh sách gói và nâng cấp hệ thống: Lệnh này sẽ tải metadata mới nhất từ kho và cài đặt các bản vá bảo mật.
sudo apt update && sudo apt upgrade -y
Kết quả mong đợi: Quá trình chạy xong mà không báo lỗi (Error), hiển thị thông báo "0 upgraded, 0 newly installed".
Cài đặt gói phụ thuộc cốt lõi: CockroachDB cần các gói để chạy trên Linux, bao gồm thư viện runtime và công cụ mạng.
sudo apt install -y ca-certificates curl gnupg lsb-release wget git
Kết quả mong đợi: Các gói được cài đặt thành công, không có cảnh báo về dependency bị thiếu.
3. Cấu hình Firewall UFW và quyền truy cập
CockroachDB sử dụng nhiều cổng: 26257 (Client SQL), 26258 (Internal RPC), 8080 (Admin UI). Cần cấu hình UFW để chỉ cho phép traffic cần thiết, đảm bảo bảo mật ngay từ đầu.
Kích hoạt UFW và thiết lập chính sách mặc định: Chỉ cho phép kết nối từ bên ngoài vào các cổng dịch vụ, chặn tất cả traffic vào (Inbound) khác và cho phép mọi traffic ra (Outbound).
sudo ufw default deny incoming && sudo ufw default allow outgoing && sudo ufw allow ssh && sudo ufw enable
Kết quả mong đợi: UFW bật (active), hiển thị "Firewall is active and enabled".
Mở cổng CockroachDB: Mở cổng 26257 cho client SQL và 26258 cho giao tiếp giữa các node (tự động mở nếu dùng cluster, nhưng cần mở thủ công để test đơn nút).
sudo ufw allow 26257/tcp && sudo ufw allow 26258/tcp && sudo ufw allow 8080/tcp
Kết quả mong đợi: Các cổng 26257, 26258, 8080 được thêm vào danh sách cho phép của UFW.
Cấu hình quyền Sudo cho user triển khai: Nếu bạn đang dùng user root, hãy tạo một user mới (ví dụ: `cockroach`) và cấp quyền sudo không cần mật khẩu để tiện vận hành.
sudo adduser cockroach && sudo usermod -aG sudo cockroach && echo 'cockroach ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/cockroach
Kết quả mong đợi: User `cockroach` được tạo, thuộc nhóm `sudo`, và file `/etc/sudoers.d/cockroach` được ghi nội dung cấp quyền.
4. Cài đặt công cụ phụ trợ và kiểm tra môi trường
Để quá trình cài đặt CockroachDB diễn ra suôn sẻ, cần đảm bảo các công cụ tải về và xử lý gói phần mềm đã sẵn sàng. Ubuntu 24.04 có thể chưa có sẵn một số công cụ cũ trong kho mặc định.
Đảm bảo curl và wget phiên bản mới: Kiểm tra phiên bản hiện tại để đảm bảo hỗ trợ TLS 1.3 (bắt buộc cho kết nối an toàn với CockroachDB).
curl --version | grep SSL && wget --version | head -n 1
Kết quả mong đợi: Curl hiển thị "SSL: OpenSSL" (phiên bản >= 1.1.1) và Wget hiển thị phiên bản >= 1.21.
Cài đặt Git cho việc quản lý cấu hình (nếu cần): Dù CockroachDB là binary, nhưng bạn sẽ cần Git để clone script deploy hoặc backup config.
sudo apt install -y git && git --version
Kết quả mong đợi: Git được cài đặt và trả về phiên bản (ví dụ: git version 2.43.0).
Verify toàn bộ môi trường: Chạy script kiểm tra nhanh để đảm bảo tất cả yêu cầu phần 1 đã hoàn tất trước khi vào phần cài đặt.
echo "=== System Check ===" && uname -r && echo "=== Firewall Status ===" && sudo ufw status | grep -E "26257|26258|8080" && echo "=== Tools ===" && which curl wget git
Kết quả mong đợi: Kernel version hiển thị (6.8.x+), UFW liệt kê 3 cổng đã mở, và đường dẫn đầy đủ của curl, wget, git được trả về.
Điều hướng series:
Mục lục: Series: Triển khai Database Row-Oriented với CockroachDB trên Ubuntu 24.04
Phần 2: Cài đặt CockroachDB và cấu hình dịch vụ Systemd trên Ubuntu »