CockroachDB là một cơ sở dữ liệu SQL phân tán và có thể mở rộng mã nguồn mở dành cho các ứng dụng đám mây. CockroachDB cung cấp tính nhất quán ở cấp độ tiếp theo, một cơ sở dữ liệu SQL được sao chép và một kho dữ liệu giao dịch.
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, CockroachDB dễ dàng mở rộng và cung cấp khả năng sẵn sàng cao và 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 CockroachDB trên máy chủ Debian 12. Sau đó, chúng tôi sẽ chỉ cho bạn cách khởi tạo cụm CockroachDB với nhiều máy chủ Debian.
Bây giờ bạn sẽ cài đặt CockroachDB trên mỗi máy chủ Debian của mình.
Trước tiên, hãy tạo một người dùng hệ thống mới là cockroach với thư mục home mặc định /opt/cockroachdb.
Tải xuống phiên bản mới nhất của CockroachDB bằng lệnh curl bên dưới. Hãy nhớ truy cập trang tải xuống CockroachDB để lấy liên kết đến phiên bản mới nhất của CockroachDB.
Sau khi tải xuống, hãy giải nén tệp cockroach-v23.1.14.linux-amd64.tgz và sao chép tệp nhị phân CockroachDB vào /usr/bin/ thư mục.
Cuối cùng, hãy xác minh phiên bản CockroachDB bằng lệnh bên dưới.
Bạn có thể thấy bên dưới rằng CockroachDB v23.1.14 đã được cài đặt, đây là phiên bản mới nhất tại thời điểm hiện tại.
Cài đặt gói UFW vào máy chủ Debian của bạn bằng lệnh bên dưới.
Bây giờ, hãy thêm cấu hình OpenSSH và bật UFW bằng cách thực hiện lệnh bên dưới. Nhập y để bắt đầu và bật UFW.
Sau khi UFW được bật, bạn sẽ thấy đầu ra 'Tường lửa đang hoạt động và được bật khi khởi động hệ thống'.
Tiếp theo, thêm cổng TCP 8080 và 26257 vào UFW bằng lệnh sau. Các cổng TCP đó sẽ được cụm CockroachDB sử dụng.
Cuối cùng, hãy xác minh trạng thái UFW và danh sách các quy tắc đã bật bằng lệnh bên dưới. Bạn sẽ thấy UFW có trạng thái Hoạt động và OpenSSH, cổng 8080/tcp và 26257/tcp được bật.
Bây giờ hãy tiếp tục tạo các chứng chỉ này: Chứng chỉ CA, chứng chỉ Node và chứng chỉ Client.
Thực hiện lệnh sau để tạo chứng chỉ CA trên máy chủ comp1.
Sau khi CA được tạo, hãy sao chép cả ca.key và ca.crt vào máy chủ comp2.
Tuy nhiên, trên máy chủ comp1, hãy thực hiện lệnh sau để tạo chứng chỉ máy khách cho người dùng root mặc định.
Sau khi quá trình hoàn tất, chứng chỉ máy khách của bạn sẽ khả dụng tại /opt/cockroachdb/certs/client.root.crt và /opt/cockroachdb/certs/client.root.key.
Thực hiện lệnh bên dưới trên máy chủ comp1 để tạo chứng chỉ Node cho comp1. Hãy nhớ thay đổi địa chỉ IP và fqdn bằng thông tin chi tiết về máy chủ của bạn.
Di chuyển đến máy chủ comp2 và thực hiện lệnh bên dưới để tạo chứng chỉ Node cho comp2. Ngoài ra, hãy thay đổi thông tin chi tiết về địa chỉ IP và fqdn của máy chủ comp2.
Thêm các cấu hình dịch vụ này. Hãy đảm bảo thay đổi tham số --advertise-addr bằng địa chỉ IP comp1.
Lưu và thoát khỏi tệp khi bạn hoàn tất.
Chèn cấu hình bên dưới và đảm bảo thay đổi tham số --advertise-addr bằng địa chỉ IP comp2.
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.
Thực hiện lệnh sau để tải lại trình quản lý systemd và áp dụng dịch vụ mới cho CockroachDB.
Bây giờ hãy khởi động và kích hoạt dịch vụ CockroachDB trên cả máy chủ comp1 và comp2 bằng lệnh bên dưới.
Cuối cùng, hãy xác minh dịch vụ CockroachDB bằng lệnh sau để đảm bảo rằng dịch vụ đang chạy.
Vì vậy, hãy đảm bảo rằng bạn có dịch vụ CockroachDB đang chạy trên cả hai máy chủ Debian của mình.
Trong máy chủ comp1, thực hiện lệnh sau để khởi tạo cụm CockroachDB. Bạn sẽ nhận được đầu ra "Cluster successfully initialized" khi quá trình hoàn tất.
Ngoài ra, bạn cũng có thể xác minh quá trình khởi tạo thông qua tệp nhật ký CockroachDB bằng lệnh bên dưới.
Đầu ra 'CockroachDB node starting...' xác nhận rằng cụm đã được khởi tạo.
Tiếp theo, hãy xác minh cụm CockroachDB của bạn bằng cách thực hiện lệnh sau. Tùy chọn ls được sử dụng để lấy danh sách các máy chủ trong cụm, trong khi lệnh status được sử dụng để kiểm tra trạng thái cụm CockroachDB.
Dưới đây, bạn có thể thấy số lượng máy chủ trong cụm CockroachDB bao gồm trạng thái của từng máy chủ.
Bây giờ cụm đang chạy, hãy thực hiện lệnh sau để đăng nhập vào máy chủ CockroachDB. Hãy chắc chắn chạy lệnh này từ máy chủ comp1 vì chứng chỉ máy khách của bạn có sẵn trên máy comp1.
Sau khi kết nối, bạn sẽ thấy dấu nhắc CockroachDB như sau:
Thực hiện các truy vấn sau để tạo người dùng mới bob với mật khẩu p4ssw0rd. Sau đó, cấp quyền quản trị cho người dùng bob.
Nhấn Ctrl+d để thoát khỏi máy chủ CockroachDB.
Cuối cùng, hãy mở trình duyệt web trên máy cục bộ của bạn và truy cập địa chỉ IP comp1 có cổng 8080 (https://192.168.5.21:8080). Bạn sẽ được nhắc đến trang đăng nhập CockroachDB.
Đăng nhập bằng tên người dùng bob và mật khẩu p4ssw0rd.
Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển quản trị CockroachDB như thế này:
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, CockroachDB dễ dàng mở rộng và cung cấp khả năng sẵn sàng cao và 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 CockroachDB trên máy chủ Debian 12. Sau đó, chúng tôi sẽ chỉ cho bạn cách khởi tạo cụm CockroachDB với nhiều máy chủ Debian.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy đảm bảo bạn có những điều sau:- Hai hoặc nhiều máy chủ Debian 12 kết nối với nhau qua mạng cục bộ.
- Một người dùng không phải root có quyền quản trị viên.
- Một FQDN được cấu hình trên mỗi máy chủ.
Cài đặt CockroachDB
CockroachDB là một hệ thống cơ sở dữ liệu SQL phân tán và có thể mở rộng. Trước khi triển khai cụm CockroachDB, bạn phải cài đặt ứng dụng CockroachDB trên mỗi máy chủ của mình.Bây giờ bạn sẽ cài đặt CockroachDB trên mỗi máy chủ Debian của mình.
Trước tiên, hãy tạo một người dùng hệ thống mới là cockroach với thư mục home mặc định /opt/cockroachdb.
Mã:
sudo adduser --home /opt/cockroachdb --system --group cockroach
sudo chown -R cockroach:cockroach /opt/cockroachdb
Mã:
curl https://binaries.cockroachdb.com/cockroach-v23.1.14.linux-amd64.tgz --output cockroach-v23.1.14.linux-amd64.tgz
Mã:
tar -xzf cockroach-v23.1.14.linux-amd64.tgz
cp -i cockroach-v23.1.14.linux-amd64/cockroach /usr/bin/
Mã:
cockroach --version

Thiết lập UFW
Sau khi cài đặt CockroachDB, bạn phải cài đặt UFW để bảo mật máy chủ của mình. Sau đó, mở các cổng TCP 8080 và 26257 sẽ được cụm CockroachDB sử dụng.Cài đặt gói UFW vào máy chủ Debian của bạn bằng lệnh bên dưới.
Mã:
sudo apt install ufw -y

Bây giờ, hãy thêm cấu hình OpenSSH và bật UFW bằng cách thực hiện lệnh bên dưới. Nhập y để bắt đầu và bật UFW.
Mã:
sudo ufw allow OpenSSH
sudo ufw enable

Tiếp theo, thêm cổng TCP 8080 và 26257 vào UFW bằng lệnh sau. Các cổng TCP đó sẽ được cụm CockroachDB sử dụng.
Mã:
sudo ufw allow 8080/tcp
sudo ufw allow 26257/tcp
Mã:
sudo ufw status

Tạo chứng chỉ
Trước khi tạo chứng chỉ cho cụm CockroachDB, hãy thực hiện lệnh bên dưới để tạo các thư mục mới certs và private trong /opt/cockroachdb để lưu trữ chứng chỉ.
Mã:
mkdir -p /opt/cockroachdb/{certs,private}
Tạo CA
Chứng chỉ CA rất quan trọng để ký cả chứng chỉ client và node. Trong phần này, bạn sẽ tạo chứng chỉ CA trên máy chủ comp1 và chứng chỉ CA cùng khóa cho máy chủ comp2 qua scp. Vì vậy, hãy đảm bảo rằng bạn có quyền truy cập SSH vào máy chủ comp2.Thực hiện lệnh sau để tạo chứng chỉ CA trên máy chủ comp1.
Mã:
cockroach cert create-ca \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

Sau khi CA được tạo, hãy sao chép cả ca.key và ca.crt vào máy chủ comp2.
Mã:
scp /opt/cockroachdb/private/ca.key [emailprotected]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [emailprotected]:/opt/cockroachdb/certs/

Tạo máy khách
Sau khi tạo CA, bước tiếp theo chứng chỉ bạn cần là chứng chỉ máy khách. Chứng chỉ này sẽ được sử dụng để kết nối với cụm CockroachDB theo cách an toàn thông qua TLS.Tuy nhiên, trên máy chủ comp1, hãy thực hiện lệnh sau để tạo chứng chỉ máy khách cho người dùng root mặc định.
Mã:
cockroach cert create-client \
root \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

Tạo Node
Cuối cùng, bạn cần tạo chứng chỉ Node, điều này cũng phụ thuộc vào số lượng máy chủ trong cụm. Trong ví dụ này, tôi sẽ tạo chứng chỉ Niode cho máy chủ comp1 và comp2.Thực hiện lệnh bên dưới trên máy chủ comp1 để tạo chứng chỉ Node cho comp1. Hãy nhớ thay đổi địa chỉ IP và fqdn bằng thông tin chi tiết về máy chủ của bạn.
Mã:
cockroach cert create-node \
comp1.hwdomain.lan \
192.168.5.21 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

Di chuyển đến máy chủ comp2 và thực hiện lệnh bên dưới để tạo chứng chỉ Node cho comp2. Ngoài ra, hãy thay đổi thông tin chi tiết về địa chỉ IP và fqdn của máy chủ comp2.
Mã:
cockroach cert create-node \
comp2.hwdomain.lan \
192.168.5.22 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

Thiết lập quyền cho chứng chỉ
Khi đã tạo tất cả các chứng chỉ, hãy chạy lệnh sau để cho phép người dùng cockroach truy cập vào các tệp chứng chỉ. Hãy đảm bảo chạy lệnh này trên cả máy chủ comp1 và comp2.
Mã:
sudo chown -R cockroach:cockroach /opt/cockroachdb/certs
sudo chown -R cockroach:cockroach /opt/cockroachdb/private
Thiết lập dịch vụ Systemd
Sau khi tạo chứng chỉ cho CockroachDB, bước tiếp theo là tạo tệp dịch vụ CockroachDB cho từng máy chủ. Sau đó, khởi động và kích hoạt dịch vụ CockroachDB.Dịch vụ CockroachDB cho comp1
Trên máy chủ comp1, tạo một dịch vụ systemd mới /etc/systemd/system/cockroachdb.service bằng lệnh nano editor bên dưới.
Mã:
sudo nano /etc/systemd/system/cockroachdb.service
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.21 --join=192.168.5.21,192.168.5.22
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach
[Install]
WantedBy=default.target
Dịch vụ CockroachDB cho comp2
Di chuyển đến máy chủ comp2 và thực hiện lệnh trình chỉnh sửa nano bên dưới để tạo tệp dịch vụ mới /etc/systemd/system/cockroachdb.service.
Mã:
sudo nano /etc/systemd/system/cockroachdb.service
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.22 --join=192.168.5.21,192.168.5.22
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach
[Install]
WantedBy=default.target
Khởi động CockroachDB
Sau khi tạo tệp dịch vụ CockroachDB, giờ đây bạn có thể áp dụng các thay đổi của mình, sau đó khởi động và kích hoạt dịch vụ CocroachDB.Thực hiện lệnh sau để tải lại trình quản lý systemd và áp dụng dịch vụ mới cho CockroachDB.
Mã:
sudo systemctl daemon-reload
Mã:
sudo systemctl start cockroachdb
sudo systemctl enable cockroachdb

Cuối cùng, hãy xác minh dịch vụ CockroachDB bằng lệnh sau để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status cockroachdb


Khởi tạo cụm CockroachDB
Bây giờ dịch vụ CockroachDB đang chạy trên mỗi máy chủ, bạn có thể tiếp tục khởi tạo cụm CockroachDB từ máy chủ comp1. Sau đó, tạo người dùng quản trị cho CockroachDB và truy cập bảng điều khiển quản trị web CockroachDB.Trong máy chủ comp1, thực hiện lệnh sau để khởi tạo cụm CockroachDB. Bạn sẽ nhận được đầu ra "Cluster successfully initialized" khi quá trình hoàn tất.
Mã:
cockroach init --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21:26257
Mã:
grep 'node starting' /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11

Tiếp theo, hãy xác minh cụm CockroachDB của bạn bằng cách thực hiện lệnh sau. Tùy chọn ls được sử dụng để lấy danh sách các máy chủ trong cụm, trong khi lệnh status được sử dụng để kiểm tra trạng thái cụm CockroachDB.
Mã:
cockroach node --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21 ls
cockroach node --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21 status

Bây giờ cụm đang chạy, hãy thực hiện lệnh sau để đăng nhập vào máy chủ CockroachDB. Hãy chắc chắn chạy lệnh này từ máy chủ comp1 vì chứng chỉ máy khách của bạn có sẵn trên máy comp1.
Mã:
cockroach sql --certs-dir=/opt/cockroachdb/certs --host=192.168.5.21:26257

Thực hiện các truy vấn sau để tạo người dùng mới bob với mật khẩu p4ssw0rd. Sau đó, cấp quyền quản trị cho người dùng bob.
Mã:
CREATE USER bob WITH PASSWORD 'p4ssw0rd';
GRANT admin TO bob;

Cuối cùng, hãy mở trình duyệt web trên máy cục bộ của bạn và truy cập địa chỉ IP comp1 có cổng 8080 (https://192.168.5.21:8080). Bạn sẽ được nhắc đến trang đăng nhập CockroachDB.
Đăng nhập bằng tên người dùng bob và mật khẩu p4ssw0rd.

Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển quản trị CockroachDB như thế này:
