Cách cài đặt CockroachDB Cluster trên Ubuntu 24.04

theanh

Administrator
Nhân viên
CockroachDB là một cơ sở dữ liệu SQL phân tán có khả năng phục hồi và mở rộng cao được thiết kế để dễ dàng xử lý khối lượng công việc dữ liệu quy mô lớn. Khi được cài đặt trên Ubuntu, nó cung cấp một giải pháp cơ sở dữ liệu nguồn mở, gốc đám mây mang lại tính nhất quán mạnh mẽ, tính khả dụng cao và khả năng mở rộng theo chiều ngang. Kiến trúc của CockroachDB cho phép nó tự động sao chép và phân phối dữ liệu trên nhiều nút, đảm bảo tính toàn vẹn của dữ liệu và giảm thiểu thời gian chết bất chấp lỗi phần cứng. Khả năng tương thích với PostgreSQL khiến nó trở thành lựa chọn linh hoạt cho các nhà phát triển đang tìm kiếm một hệ thống cơ sở dữ liệu mạnh mẽ có khả năng xử lý các ứng dụng đòi hỏi khắt khe. Cài đặt CockroachDB trên Ubuntu cho phép người dùng tận dụng các tính năng nâng cao này trong khi vẫn được hưởng lợi từ tính bảo mật và tính ổn định của hệ điều hành Ubuntu.

CockroachDB lưu trữ dữ liệu của bạn ở nhiều vị trí, giúp việc phân phối dữ liệu nhanh hơn. Ngoài ra, nó dễ dàng mở rộng quy mô và cung cấp tính khả dụng cao cùng khả năng chịu lỗi cho các ứng dụng của bạn.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt cụm CockroachDB trên máy chủ Ubuntu 24.04.

Điều kiện tiên quyết​

Trước khi tiếp tục, hãy đảm bảo rằng bạn có những điều sau:
  • Hai hoặc ba Ubuntu 24.04 máy chủ.
  • Người dùng không phải root có quyền quản trị viên.

Thiết lập người dùng​

Trước khi cài đặt CockroachDB, bạn sẽ tạo một người dùng và nhóm hệ thống mới cockroach. Lệnh này sẽ được sử dụng để chạy dịch vụ CockroachDB.

Trước tiên, hãy chạy lệnh bên dưới để thêm người dùng hệ thống mới cockroach với thư mục gốc /opt/cockroachdb.

sudo adduser --home /opt/cockroachdb --system --group cockroach

Bây giờ hãy thay đổi quyền sở hữu của thư mục /opt/cockroachdb thành người dùng và nhóm cockroach bằng lệnh sau:

sudo chown -R cockroach:cockroach /opt/cockroachdb


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E

Tải xuống tệp nhị phân CockroachDB​

Để cài đặt CockroachDB, bạn có thể dễ dàng tải xuống từ trang GitHub và di chuyển tệp nhị phân CockroachDB vào Thư mục bin trên hệ thống Ubuntu của bạn.

Truy cập trang GitHub CockroachDB và lấy liên kết cho phiên bản mới nhất. Tải xuống bằng lệnh wget như sau:

wget https://binaries.cockroachdb.com/cockroach-v24.1.1.linux-amd64.tgz

Sau khi tải xuống hoàn tất, hãy giải nén CockroachDB và di chuyển cockroach tệp nhị phân vào thư mục /usr/bin.

tar -xf cockroach-v24.1.1.linux-amd64.tgz
cp -i cockroach-*/cockroach /usr/bin/

Bây giờ hãy kiểm tra phiên bản CockroachDB bằng lệnh sau:

cockroach --version

Trong kết quả đầu ra bên dưới, bạn có thể thấy CockroachDB v24 đã được cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22366%22%3E%3C/svg%3E

Đang tạo chứng chỉ TLS​

Để tạo cụm CockroachDB, bạn phải tạo chứng chỉ SSL/TLS để bảo mật cụm. Bạn cần tạo và phân phối chứng chỉ CA trên nhiều máy chủ, sau đó tạo chứng chỉ cho người dùng và máy chủ.

Trước khi thực hiện tiếp, hãy chạy lệnh bên dưới trên cả server1server2. Với lệnh này, bạn sẽ tạo các thư mục certsprivate cho các chứng chỉ TLS chuỗi.

mkdir -p /opt/cockroachdb/{certs,private}

Tạo chứng chỉ CA​

Trong phần này, bạn sẽ tạo chứng chỉ CA từ server1 và tải lên server2 thông qua scp hoặc sao chép an toàn.

Trên server1, chạy lệnh bên dưới để tạo chứng chỉ CA (Cơ quan cấp chứng chỉ). Chứng chỉ CA ca.crtca.key sẽ được tạo.

cockroach cert create-ca
–certs-dir=/opt/cockroachdb/certs
–ca-key=/opt/cockroachdb/private/ca.key


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22498%22%20height=%22117%22%3E%3C/svg%3E


Bây giờ hãy tải lên ca.crtca.key vào server2 bằng scp hoặc bản sao an toàn. Hãy đảm bảo rằng bạn có thể đăng nhập vào server2 mà không có vấn đề gì.

scp /opt/cockroachdb/private/ca.key [emailprotected]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [emailprotected]:/opt/cockroachdb/certs/


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E

Tạo chứng chỉ máy khách​

Sau khi tạo chứng chỉ CA, bạn sẽ tạo chứng chỉ máy khách để quản lý cụm CockroachDB. Chỉ những người dùng có chứng chỉ này mới có thể kết nối và quản lý cụm CockroachDB.

Để tạo và ký chứng chỉ máy khách cho người dùng rootChạy lệnh cockroach sau.

cockroach cert create-client \
root \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22518%22%20height=%22142%22%3E%3C/svg%3E

Tạo chứng chỉ máy chủ​

Trong phần này, bạn sẽ tạo chứng chỉ máy chủ trên cả server1server2.

Trên server1, chạy lệnh bên dưới để tạo chứng chỉ máy chủ. Hãy đảm bảo thay đổi địa chỉ IP và tên máy chủ bằng thông tin của bạn.

cockroach cert create-node \
server1 \
192.168.5.15 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22198%22%3E%3C/svg%3E


Bây giờ, hãy di chuyển đến server2 và tạo chứng chỉ nút với nội dung sau. Thay đổi địa chỉ IP và tên máy chủ bằng thông tin server2.

cockroach cert create-node \
server2 \
192.168.5.16 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E


Cuối cùng, chạy lệnh bên dưới trên cả server1server2 để thay đổi quyền sở hữu của certsprivate thư mục tới người dùng cockroach.

sudo chown -R cockroach:cockroach /opt/cockroachdb/{certs,private}

Chạy CockroachDB dưới dạng dịch vụ​

Sau khi tạo chứng chỉ SSL/TLS, bạn sẽ tạo tệp dịch vụ systemd cho từng máy chủ CockroachDB. Điều này cho phép bạn chạy CockroachDB ở chế độ nền và bạn có thể dễ dàng quản lý nó bằng systemctl.

Tạo tệp dịch vụ systemd mới /etc/systemd/system/cockroachdb.service bằng nano trình soạn thảo.

sudo nano /etc/systemd/system/cockroachdb.service

Đối với server1, hãy chèn cấu hình bên dưới. Trên tùy chọn --advertise-addr, nhập địa chỉ IP server1. Trong tùy chọn --join, nhập cả server1server2 Địa chỉ IP.
Mã:
[Unit]
Description=Cockroach Database cluster node
Requires=network.target
[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.15 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach
[Install]
WantedBy=default.target
Đối với server2, chèn cấu hình bên dưới. Trên tùy chọn --advertise-addr, nhập địa chỉ IP server2. Trong tùy chọn --join, nhập cả server1server2 Địa chỉ IP.
Mã:
[Unit]
Description=Cockroach Database cluster node
Requires=network.target
[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.16 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach
[Install]
WantedBy=default.target
Lưu và thoát khỏi tệp khi bạn hoàn tất.

Bây giờ hãy chạy systemctl lệnh bên dưới để tải lại trình quản lý systemd và áp dụng các thay đổi của bạn.

sudo systemctl daemon-reload

Sau đó, hãy khởi động và bật dịch vụ cockroachdb trên server1server2.

sudo systemctl enable --now cockroachdb


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22170%22%3E%3C/svg%3E


Cuối cùng, hãy kiểm tra trạng thái dịch vụ cockroachdb bằng lệnh sau:

sudo systemctl status cockroachdb

Bạn sẽ thấy dịch vụ cockroachdb đang chạy trên server1server2.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22208%22%3E%3C/svg%3E

Tạo cụm CockroachDB​

Vì vậy, CockroachDB đang chạy trên cả server1server2. Bây giờ bạn có thể khởi tạo cụm CockroachDB từ một trong những máy chủ này.

Trên server1, hãy chạy lệnh cockroach init bên dưới để khởi tạo cụm CockroachDB. Nếu thành công, bạn sẽ thấy đầu ra Cluster successfully initialized.

cockroach init --certs-dir=/opt/cockroachdb/certs --host=192.168.5.15:26257

Bây giờ hãy chạy lệnh bên dưới để kiểm tra nhật ký khởi tạo cụm. Nếu cụm CockroachDB đang chạy, bạn sẽ nhận được đầu ra CockroachDB node starting.

grep ‘node starting’ /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22119%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh cockroach bên dưới để xác minh danh sách máy chủ và trạng thái cụm CockroachDB.

sudo cockroach node --certs-dir=/opt/cockroachdb/certs --host=server1 ls
sudo cockroach node --certs-dir=/opt/cockroachdb/certs --host=server1 status

Bạn có thể thấy bên dưới rằng server1server2 có sẵn trên cụm CockroachDB với trạng thái active.





Bây giờ hãy chạy lệnh cockroach sql bên dưới để truy cập shell CockroachDB. Bạn có thể quản lý cơ sở dữ liệu và người dùng trong cụm CockroachDB từ đây.

sudo cockroach sql --certs-dir=/opt/cockroachdb/certs --host=server1:26257

Chạy các truy vấn sau để tạo người dùng quản trị mới alice với mật khẩu p4ssw0rd.

TẠO NGƯỜI DÙNG alice VỚI MẬT KHẨU 'p4ssw0rd';
CẤP quyền quản trị CHO alice;

Nhập quit để thoát khỏi Máy chủ CockroachDB.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E

Truy cập quản trị web CockroachDB​

Theo mặc định, quản trị web CockroachDB đang chạy trên cổng 8080. Điều này cho phép bạn quản lý CockroachDB thông qua trình duyệt web.

Để truy cập bảng điều khiển quản trị web CockroachDB, hãy truy cập http://server1:8080 bằng trình duyệt web của bạn. Nhập tên người dùng và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22333%22%3E%3C/svg%3E


Nếu bạn có tên người dùng và mật khẩu chính xác, bạn sẽ thấy bảng điều khiển quản trị CockroachDB như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22414%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt cụm CockroachDB trên máy chủ Ubuntu 24.04. Bạn cũng đã học cách kiểm tra trạng thái của cụm CockroachDB thông qua dòng lệnh và bảng điều khiển quản trị web. Cuối cùng, bạn đã tạo một người dùng quản trị thông qua CockroachDB SQL shell.
 
Back
Bên trên