1. Tổng quan.
Ceph Cluster là một cụm lưu trữ phân tán, có khả năng mở rộng lớn, cung cấp các dịch vụ lưu trữ như block, file và object storage. Ceph Cluster được thiết kế để tự sửa chữa và quản lý chính nó làm giảm bớt nhu cầu can thiệp của người quản trị hệ thống.
2. Quy trình tạo một Ceph Cluster.
Quy trình tạo một Ceph Cluster gồm các bước sau:
- Cài đặt phần mềm Ceph: Cài đặt phần mềm Ceph trên tất cả các node trong cụm.
- Cấu hình Ceph Monitor: Ceph Monitor giám sát trạng thái của cụm, bao gồm thông tin về tất cả các node và trạng thái của chúng. Bạn cần cấu hình ít nhất một Ceph Monitor để khởi động cụm.
- Cấu hình Ceph Manager: Ceph Manager cung cấp các dịch vụ hỗ trợ cho Ceph Monitor, như cung cấp thông tin về trạng thái cụm cho các giao diện người dùng.
- Cấu hình Ceph OSD: Ceph OSD (Object Storage Daemons) là những nơi thực sự lưu trữ dữ liệu. Mỗi OSD tương ứng với một ổ đĩa trong cụm. Bạn cần cấu hình ít nhất một OSD để cụm có thể hoạt động.
- Tạo và cấu hình Storage Pools: Storage Pools là nhóm các OSD. Bạn cần tạo ít nhất một pool và cấu hình nó để phù hợp với yêu cầu về hiệu suất và độ tin cậy.
- Cấu hình Client: Cuối cùng, bạn cần cấu hình client để có thể truy cập vào cụm và sử dụng dịch vụ lưu trữ của nó.
3. Thực hành triển khai Ceph Cluster.
Ví dụ ở đây mình sẽ cấu hình Cụm Ceph với sơ đồ 3 Node như sau.
|
+----------------------------------+-----------------------------------+
|public: 192.168.13.231 |public: 192.168.13.232 |public: 192.168.13.233
|cluster: 172.16.13.231 |cluster: 1172.16.13.232 |cluster: 172.16.13.233
+--------------+--------------+ +--------------+--------------+ +--------------+--------------+
| [ceph-node1.hoanghd.com] | | [ceph-node2.hoanghd.com] | | [ceph-node3.hoanghd.com] |
| Object Storage +----| Object Storage +-----| Object Storage |
| Monitor Daemon | | | | |
| Manager Daemon | | | | |
+-----------------------------+ +-----------------------------+ +-----------------------------+'
Mỗi Node lưu trữ đều có một block device để sử dụng trên các Node Ceph. (sử dụng [/dev/sdb, /dev/sdc, /dev/sdd
] trong ví dụ này).
Bước 1: Tạo cặp khóa SSH.
Tạo cặp khóa SSH trên Node [Monitor Daemon] (gọi nó là Node quản trị ở đây) và copy nó cho mỗi Node trong cụm. Do mình muốn xóa hết các cặp khóa cũ nên mình sử dụngrm -rf ~/.ssh/*
để xóa tất cả các file trong thư mục ~/.ssh
, điều này sẽ xóa hết các khóa SSH và các file cấu hình.
rm -rf ~/.ssh/*
Tạo một cặp khóa SSH mới không có mật khẩu và lưu chúng vào thư mục /root/.ssh
.
ssh-keygen -t rsa -b 4096 -N "" -f /root/.ssh/id_rsa -q
Nhớ xác nhận các khóa đã tạo thành công.
shell> ls -al /root/.ssh/
total 16
drwxr-xr-x 2 root root 4096 Jan 24 03:36 .
drwx------ 6 root root 4096 Jan 24 03:35 ..
-rw------- 1 root root 3389 Jan 24 03:36 id_rsa
-rw-r--r-- 1 root root 748 Jan 24 03:36 id_rsa.pub
Bước 2 – Thêm thông tin về cách kết nối đến các node trong cụm Ceph.
Tiếp theo, tạo một file cấu hình SSH mới trong ~/.ssh/config
với thông tin về cách kết nối đến các node trong cụm Ceph.
cat > ~/.ssh/config << 'OEF'
Host ceph-node1
Hostname ceph-node1.hoanghd.com
User root
Host ceph-node2
Hostname ceph-node2.hoanghd.com
User root
Host ceph-node3
Hostname ceph-node3.hoanghd.com
User root
OEF
Đặt quyền truy cập cho file cấu hình SSH để chỉ có người dùng hiện tại mới có thể đọc và ghi vào file.
chmod 600 ~/.ssh/config
Bước 3: Trỏ file hosts.
Phần tiếp theo tạo một file /etc/hosts
mới với các địa chỉ IP và tên máy chủ cho cụm Ceph. Lưu ý đối với giao tiếp giữa các Node các bạn nên sử dụng IP Private của mỗi Node, đây là IP có băng thông cao sử dụng cho kết nối các cluster trong cum ví dụ như dưới.
cat >> /etc/hosts << 'OEF'
172.16.13.231 ceph-node1.hoanghd.com ceph-node1
172.16.13.232 ceph-node2.hoanghd.com ceph-node2
172.16.13.233 ceph-node3.hoanghd.com ceph-node3
OEF
Xác nhận kết nối đến các Node bằng domain thành công.
Ví dụ kết quả từ ceph-node1.hoanghd.com
sang ceph-node2.hoanghd.com
.
shell> ping ceph-node2.hoanghd.com
PING ceph-node2.hoanghd.com (172.16.13.232) 56(84) bytes of data.
64 bytes from ceph-node2.hoanghd.com (172.16.13.232): icmp_seq=1 ttl=64 time=0.456 ms
64 bytes from ceph-node2.hoanghd.com (172.16.13.232): icmp_seq=2 ttl=64 time=0.443 ms
64 bytes from ceph-node2.hoanghd.com (172.16.13.232): icmp_seq=3 ttl=64 time=0.342 ms
64 bytes from ceph-node2.hoanghd.com (172.16.13.232): icmp_seq=4 ttl=64 time=0.510 ms
--- ceph-node2.hoanghd.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.342/0.437/0.510/0.060 ms
Hoặc kết quả từ ceph-node1.hoanghd.com
sang ceph-node3.hoanghd.com
.
shell> ping ceph-node3
PING ceph-node3.hoanghd.com (172.16.13.233) 56(84) bytes of data.
64 bytes from ceph-node3.hoanghd.com (172.16.13.233): icmp_seq=1 ttl=64 time=0.404 ms
64 bytes from ceph-node3.hoanghd.com (172.16.13.233): icmp_seq=2 ttl=64 time=0.353 ms
64 bytes from ceph-node3.hoanghd.com (172.16.13.233): icmp_seq=3 ttl=64 time=0.190 ms
64 bytes from ceph-node3.hoanghd.com (172.16.13.233): icmp_seq=4 ttl=64 time=0.178 ms
--- ceph-node3.hoanghd.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3072ms
rtt min/avg/max/mdev = 0.178/0.281/0.404/0.099 ms
Bước 4 – Sao chép khóa công khai SSH đến node còn lại trong cụm.
Sử dụng lệnhssh-copy-id
sao chép khóa công khai SSH đến node trong trong cụm, tính luôn cả ceph-node1
, ví dụ của mình là ceph-node2
và ceph-node3
.
ssh-copy-id -o StrictHostKeychecking=no ceph-node1
ssh-copy-id -o StrictHostKeychecking=no ceph-node2
ssh-copy-id -o StrictHostKeychecking=no ceph-node3
Tùy chọn -o StrictHostKeychecking=no
ngăn chặn việc kiểm tra dấu vân tay của máy chủ, cho phép kết nối tự động.
Dưới đây là ví dụ đầu ra khi chạy lệnh trên ở một node bất kỳ sẽ tương tự như dưới.
shell> ssh-copy-id -o StrictHostKeychecking=no ceph-node2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@ceph-node2.hoanghd.com's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -o 'StrictHostKeychecking=no' 'ceph-node2'"
and check to make sure that only the key(s) you wanted were added.
Nhập mật khẩu của Node Remote để thực hiện việc sao chép.
Bước 4 – Cài đặt Ceph trên các node trong cụm.
Dưới đây là một đoạn shell sử dụng for
để cài đặt Ceph trên mỗi node trong cụm.
for NODE in ceph-node1 ceph-node2 ceph-node3
do
ssh -o StrictHostKeychecking=no $NODE "apt update; apt -y install ceph"
done
Ví dụ về đầu ra của đoạn shell.
shell> for NODE in ceph-node1 ceph-node2 ceph-node3
> do
> ssh $NODE "apt update; apt -y install ceph"
> done
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
Building dependency tree...
Reading state information...
All packages are up to date.
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
binutils binutils-common binutils-x86-64-linux-gnu ceph-base ceph-common
ceph-mds ceph-mgr ceph-mgr-modules-core ceph-mon ceph-osd ibverbs-providers
python3-prettytable python3-pyinotify python3-rados python3-rbd
python3-repoze.lru python3-routes python3-simplegeneric
python3-singledispatch python3-soupsieve python3-tempita python3-waitress
python3-webencodings python3-webob python3-webtest python3-werkzeug
smartmontools
Suggested packages:
binutils-doc btrfs-tools ceph-fuse ceph-mgr-cephadm ceph-mgr-dashboard
ceph-mgr-diskprediction-cloud ceph-mgr-diskprediction-local
ceph-mgr-k8sevents ceph-mgr-rook nvme-cli apache2 | lighttpd | httpd
python3-genshi python3-lxml-dbg python-lxml-doc python3-beaker
python-mako-doc httpd-wsgi libapache2-mod-python libapache2-mod-scgi
libjs-mochikit python-pecan-doc python-pyinotify-doc python-waitress-doc
python-webob-doc python-webtest-doc ipython3 python-werkzeug-doc
python3-termcolor python3-watchdog gsmartcontrol smart-notifier mailx
| mailutils
The following NEW packages will be installed:
binutils binutils-common binutils-x86-64-linux-gnu ceph ceph-base
ceph-common ceph-mds ceph-mgr ceph-mgr-modules-core ceph-mon ceph-osd
ibverbs-providers javascript-common libbabeltrace1 libbinutils
libboost-context1.71.0 libboost-iostreams1.71.0
0 upgraded, 72 newly installed, 0 to remove and 0 not upgraded.
Need to get 60.9 MB of archives.
After this operation, 249 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 libboost-iostreams1.71.0 amd64 1.71.0-6ubuntu6 [237 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 libboost-thread1.71.0 amd64 1.71.0-6ubuntu6 [249 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libnl-3-200 amd64 3.4.0-1ubuntu0.1 [54.4 kB]
< đã lược bỏ bớt để làm gọn đầu ra >
Setting up binutils (2.34-6ubuntu1.8) ...
Setting up python3-routes (2.4.1-2) ...
Setting up ceph-base (15.2.17-0ubuntu0.20.04.5) ...
Created symlink /etc/systemd/system/ceph.target.wants/ceph-crash.service → /lib/systemd/system/ceph-crash.service.
Setting up ceph-mds (15.2.17-0ubuntu0.20.04.5) ...
Created symlink /etc/systemd/system/multi-user.target.wants/ceph-mds.target → /lib/systemd/system/ceph-mds.target.
Created symlink /etc/systemd/system/ceph.target.wants/ceph-mds.target → /lib/systemd/system/ceph-mds.target.
Setting up ceph-mgr (15.2.17-0ubuntu0.20.04.5) ...
Created symlink /etc/systemd/system/multi-user.target.wants/ceph-mgr.target → /lib/systemd/system/ceph-mgr.target.
Created symlink /etc/systemd/system/ceph.target.wants/ceph-mgr.target → /lib/systemd/system/ceph-mgr.target.
Setting up ceph-osd (15.2.17-0ubuntu0.20.04.5) ...
Created symlink /etc/systemd/system/multi-user.target.wants/ceph-osd.target → /lib/systemd/system/ceph-osd.target.
Created symlink /etc/systemd/system/ceph.target.wants/ceph-osd.target → /lib/systemd/system/ceph-osd.target.
Setting up ceph-mon (15.2.17-0ubuntu0.20.04.5) ...
Created symlink /etc/systemd/system/multi-user.target.wants/ceph-mon.target → /lib/systemd/system/ceph-mon.target.
Created symlink /etc/systemd/system/ceph.target.wants/ceph-mon.target → /lib/systemd/system/ceph-mon.target.
ceph-mon.service is a disabled or a static unit, not starting it.
Setting up ceph (15.2.17-0ubuntu0.20.04.5) ...
Processing triggers for systemd (245.4-4ubuntu3.23) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.14) ...
Hành động này sẽ giúp bạn đứng có thể từ Node bất kỳ gửi lệnh cài đặt Ceph cho tất cả các Node trong dòng for.
Bước 5 – Tạo một UUID mới .
Sử dụng uuidgen để tạo một UUID mới, UUID này có thể được sử dụng như một định danh duy nhất cho cụm Ceph.
shell> uuidgen
0aed20ae-5941-4578-aedb-c78fdfd75bdf
Bước 6 – Tạo file cấu hình chính cho Ceph.
Tạo một file cấu hình Ceph mới trong /etc/ceph/ceph.conf
với thông tin về cụm, bao gồm network, địa chỉ IP của các node monitor và các tùy chọn khác. Nhớ truyền thông tin UUID đã lấy được ở bước trên vào fsid
, ví dụ fsid = 0aed20ae-5941-4578-aedb-c78fdfd75bdf
.
cat > /etc/ceph/ceph.conf << OEF
[global]
cluster_network = 172.16.13.0/24
public_network = 192.168.12.0/23
fsid = 0aed20ae-5941-4578-aedb-c78fdfd75bdf
mon_host = 192.168.13.231
mon_initial_members = ceph-node1
osd_pool_default_crush_rule = -1
[mon.ceph-node1]
host = ceph-node1
mon_addr = 192.168.13.231
mon_allow_pool_delete = true
OEF
Dưới đây là giải thích về các tùy chọn trong đoạn cấu hình Ceph ở trên:
cluster_network = 172.16.13.0/24
: Địa chỉ mạng cho giao tiếp nội bộ giữa các OSD (Object Storage Daemons) trong cụm. Đây là mạng nội bộ mà Ceph sẽ sử dụng để trao đổi dữ liệu.public_network = 192.168.12.0/23
: Địa chỉ mạng công khai mà Ceph sẽ sử dụng để giao tiếp với các client và các dịch vụ khác như Ceph Monitor.fsid = 0aed20ae-5941-4578-aedb-c78fdfd75bdf
: Định danh duy nhất cho cụm Ceph. Đây là một UUID được tạo ra ngẫu nhiên.mon host = 192.168.13.231
: Địa chỉ IP của Ceph Monitor, một thành phần quan trọng giám sát trạng thái của cụm.mon initial members = ceph-node1
: Danh sách các node monitor ban đầu. Trong trường hợp này, chỉ có một node monitor làceph-node1
.osd pool default crush rule = -1
: Đây là quy tắc CRUSH mặc định cho các pool. CRUSH là thuật toán mà Ceph sử dụng để xác định cách phân phối dữ liệu trên các OSD.[mon.ceph-node1]
: Đây là một phần cấu hình cho monitorceph-node1
.host = ceph-node1
: Tên host của monitor.mon addr = 192.168.13.231
: Địa chỉ IP của monitor.mon allow pool delete = true
: Tùy chọn này cho phép xóa các pool. Mặc định, Ceph không cho phép xóa pool để tránh việc xóa dữ liệu không cố ý.
Bước 7 – Tạo khóa bí mật cho Ceph Monitor.
Tạo một khóa bí mật cho Ceph Monitor và lưu nó vào file /etc/ceph/ceph.mon.keyring
. Tùy chọn --cap mon 'allow *'
cấp quyền cho Monitor thực hiện tất cả các hành động.
ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
Ví dụ.
shell> ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
creating /etc/ceph/ceph.mon.keyring
Bước 8 – Tạo khóa bí mật cho người quản trị Ceph Cluster.
Tạo một khóa bí mật cho user quản trị Ceph Cluster và lưu nó vào file /etc/ceph/ceph.client.admin.keyring
. Tùy chọn --cap
cấp quyền cho user quản trị thực hiện tất cả các hành động trên tất cả các thành phần của cụm.
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
Ví dụ.
shell> ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
creating /etc/ceph/ceph.client.admin.keyring
Bước 9 – Tạo một khóa bí mật cho quá trình khởi động OSD.
Tạo một khóa bí mật cho quá trình khởi động OSD và lưu nó vào file /var/lib/ceph/bootstrap-osd/ceph.keyring
.
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
Ví dụ.
shell> ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
creating /var/lib/ceph/bootstrap-osd/ceph.keyring
Bước 10 – Nhập khóa bí mật của người quản trị vào khóa bí mật của Monitor.
Lệnh ceph-authtool
được sử dụng để quản lý keyrings trong Ceph, một hệ thống lưu trữ phân tán. Keyrings chứa các keys được sử dụng để xác thực các clients và daemons với nhau trong hệ thống Ceph.
Lệnh này sẽ nhập keyring của client admin vào keyring của monitor. Điều này cho phép client admin được xác thực với monitor.
ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
Ví dụ.
shell> ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
importing contents of /etc/ceph/ceph.client.admin.keyring into /etc/ceph/ceph.mon.keyring
Lệnh này sẽ nhập keyring của bootstrap-osd vào keyring của monitor. Điều này cho phép bootstrap-osd được xác thực với monitor.
ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
Ví dụ.
ceph-aushell> ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
importing contents of /var/lib/ceph/bootstrap-osd/ceph.keyring into /etc/ceph/ceph.mon.keyring
Trong cả hai trường hợp, lệnh ceph-authtool
sẽ cập nhật /etc/ceph/ceph.mon.keyring
để bao gồm các keys từ keyring được chỉ định.
Bước 11 – Tạo một bản đồ monitor mới với thông tin về tên node, địa chỉ IP và FSID.
Lệnh monmaptool
được sử dụng để tạo và chỉnh sửa bản đồ monitor (monmap) trong hệ thống lưu trữ Ceph. Bản đồ monitor chứa thông tin về tất cả các monitor trong cluster Ceph.
Đầu tiên hãy lấy biến môi trường cần thiết trước.
FSID=$(grep "^fsid" /etc/ceph/ceph.conf | awk {'print $NF'})
NODENAME=$(grep "^mon_initial" /etc/ceph/ceph.conf | awk {'print $NF'})
NODEIP=$(grep "^mon_host" /etc/ceph/ceph.conf | awk {'print $NF'})
Chạy lệnh này để tạo một bản đồ monitor mới và thêm một monitor vào bản đồ đó.
monmaptool --create --add $NODENAME $NODEIP --fsid $FSID /etc/ceph/monmap
--create
: Tạo một bản đồ monitor mới.--add $NODENAME $NODEIP
: Thêm một monitor mới vào bản đồ.$NODENAME
là tên của monitor và$NODEIP
là địa chỉ IP của monitor.--fsid $FSID
: Đặt FSID (File System ID) cho cluster. FSID là một định danh duy nhất cho mỗi cluster Ceph./etc/ceph/monmap
: Đường dẫn nơi bản đồ monitor sẽ được lưu.
Vì vậy, lệnh này tạo một bản đồ monitor mới với một monitor và FSID được chỉ định và lưu bản đồ đó tại /etc/ceph/monmap
.
Ví dụ.
shell> FSID=$(grep "^fsid" /etc/ceph/ceph.conf | awk {'print $NF'})
shell> NODENAME=$(grep "^mon_initial" /etc/ceph/ceph.conf | awk {'print $NF'})
shell> NODEIP=$(grep "^mon_host" /etc/ceph/ceph.conf | awk {'print $NF'})
shell> monmaptool --create --add $NODENAME $NODEIP --fsid $FSID /etc/ceph/monmap
monmaptool: monmap file /etc/ceph/monmap
monmaptool: set fsid to 0aed20ae-5941-4578-aedb-c78fdfd75bdf
monmaptool: writing epoch 0 to /etc/ceph/monmap (1 monitors)
Bước 12: Cấu hình Monitor Daemon.
Tạo một thư mục mới cho Monitor Daemon.
mkdir /var/lib/ceph/mon/ceph-$NODENAME
Khởi tạo Monitor Daemon với thông tin từ bản đồ monitor và khóa bí mật.
ceph-mon --cluster ceph --mkfs -i $NODENAME --monmap /etc/ceph/monmap --keyring /etc/ceph/ceph.mon.keyring
Thay đổi quyền sở hữu của tất cả các file trong /etc/ceph
thành người dùng ceph
.
chown ceph. /etc/ceph/ceph.*
chown -R ceph. /var/lib/ceph/mon/ceph-$NODENAME /var/lib/ceph/bootstrap-osd
Kích hoạt và khởi động dịch vụ Ceph Monitor.
shell> systemctl enable --now ceph-mon@$NODENAME
Created symlink /etc/systemd/system/ceph-mon.target.wants/ceph-mon@ceph-node1.service → /lib/systemd/system/ceph-mon@.service.
Kích hoạt giao thức Messenger v2 cho Ceph Monitor.
ceph mon enable-msgr2
Kích hoạt module tự động điều chỉnh số lượng Placement Groups.
shell> ceph mgr module enable pg_autoscaler
module 'pg_autoscaler' is already enabled (always-on)
Tạo một thư mục mới cho Manager Daemon.
mkdir /var/lib/ceph/mgr/ceph-$NODENAME
Tạo hoặc lấy khóa xác thực cho Manager Daemon.
ceph auth get-or-create mgr.$NODENAME mon 'allow profile mgr' osd 'allow *' mds 'allow *'
Ví dụ.
shell> ceph auth get-or-create mgr.$NODENAME mon 'allow profile mgr' osd 'allow *' mds 'allow *'
[mgr.ceph-node1]
key = AQAYjrBluaPBJhAAl4mVHHqZP3cmXCoXyn9Xsg==
Tạo hoặc lấy khóa xác thực cho Manager Daemon và lưu nó vào file /etc/ceph/ceph.mgr.admin.keyring
. Nếu khóa đã tồn tại, lệnh sẽ lấy khóa đó. Nếu không, lệnh sẽ tạo một khóa mới.
ceph auth get-or-create mgr.$NODENAME | tee /etc/ceph/ceph.mgr.admin.keyring
Ví dụ.
shell> ceph auth get-or-create mgr.$NODENAME | tee /etc/ceph/ceph.mgr.admin.keyring
[mgr.ceph-node1]
key = AQAYjrBluaPBJhAAl4mVHHqZP3cmXCoXyn9Xsg==
Sao chép file khóa vừa tạo vào thư mục của Manager Daemon.
cp /etc/ceph/ceph.mgr.admin.keyring /var/lib/ceph/mgr/ceph-$NODENAME/keyring
Lệnh này thay đổi quyền sở hữu của file khóa để người dùng ceph
có thể truy cập.
chown ceph. /etc/ceph/ceph.mgr.admin.keyring
chown -R ceph. /var/lib/ceph/mgr/$NODENAME
: Lệnh này thay đổi quyền sở hữu của thư mục Manager Daemon và tất cả các file bên trong để người dùng ceph
có thể truy cập.
chown -R ceph. /var/lib/ceph/mgr/ceph-$NODENAME
systemctl enable --now ceph-mgr@$NODENAME
: Lệnh này kích hoạt và khởi động dịch vụ Ceph Manager. $NODENAME
là tên của node mà Manager Daemon đang chạy.
systemctl enable --now ceph-mgr@$NODENAME
Ví dụ.
shell> systemctl enable --now ceph-mgr@$NODENAME
Created symlink /etc/systemd/system/ceph-mgr.target.wants/ceph-mgr@ceph-node1.service → /lib/systemd/system/ceph-mgr@.service.
Bước cuối – Xác nhận trạng thái cụm.
Sẽ ổn thôi nếu [Monitor Daemon] và [Manager Daemon] hoạt động được bạn sẽ thấy thông báo như sau:
shell> ceph -s
cluster:
id: 0aed20ae-5941-4578-aedb-c78fdfd75bdf
health: HEALTH_WARN
mon is allowing insecure global_id reclaim
OSD count 0 < osd_pool_default_size 3
services:
mon: 1 daemons, quorum ceph-node1 (age 89s)
mgr: ceph-node1(active, since 22s)
osd: 0 osds: 0 up, 0 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:
Đối với OSD chúng ta sẽ cấu hình chúng ở phần tiếp theo vì vậy sẽ không có vấn đề gì nếu [HEALTH_WARN] tại thời điểm này.