1. Tổng quan.
pveceph
là một bộ công cụ tích hợp trong Proxmox VE (Proxmox Virtual Environment) giúp quản lý và triển khai Ceph – một hệ thống lưu trữ phân tán phổ biến. Proxmox VE cung cấp các công cụ này để dễ dàng quản lý một Ceph Storage Cluster trực tiếp từ giao diện dòng lệnh hoặc giao diện đồ họa (GUI), mà không cần quá nhiều thao tác thủ công.
- Quản lý Ceph trực tiếp trong Proxmox VE:
- Proxmox tích hợp các công cụ quản lý Ceph, cho phép người dùng thiết lập và quản lý Ceph Storage trực tiếp trên các node Proxmox mà không cần cài đặt công cụ quản lý Ceph riêng biệt.
- Tích hợp toàn diện:
- Proxmox hỗ trợ các thành phần cơ bản của Ceph như Monitor (MON), Object Storage Daemons (OSD), MDS (Metadata Servers) và RadosGW (Object Gateway), giúp tạo ra một hệ thống lưu trữ đối tượng phân tán, có khả năng mở rộng lớn.
pveceph
có thể khởi tạo và quản lý từng thành phần này một cách dễ dàng, bao gồm việc thêm OSDs, cấu hình MON, theo dõi trạng thái cluster và quản lý quá trình recovery.
- Công cụ CLI mạnh mẽ:
pveceph
cung cấp các lệnh CLI như:pveceph init
: Khởi tạo cấu hình Ceph.pveceph install
: Cài đặt các gói phần mềm Ceph.pveceph createosd
: Tạo OSD mới trên một ổ đĩa.pveceph status
: Xem trạng thái của cluster Ceph.pveceph purge
: Gỡ bỏ Ceph khỏi một node.
- Tích hợp GUI:
- Proxmox cung cấp giao diện đồ họa cho Ceph, nơi người dùng có thể dễ dàng thêm node, theo dõi trạng thái cluster, quản lý các OSD và giám sát toàn bộ hệ thống lưu trữ.
- Tính năng lưu trữ phân tán:
- Với sự tích hợp của Ceph, người dùng Proxmox có thể triển khai một hệ thống lưu trữ phân tán, mở rộng với khả năng tự phục hồi và cung cấp hiệu suất cao cho các máy ảo (VM) và container.
Ưu điểm khi sử dụng pveceph
:
- Tính đơn giản: Quá trình triển khai Ceph thông qua
pveceph
dễ dàng và ít phức tạp hơn nhờ tích hợp sẵn trong Proxmox. - Hiệu suất cao: Ceph cung cấp lưu trữ phân tán với độ tin cậy cao và khả năng mở rộng tốt, phù hợp với các môi trường sản xuất lớn.
- Tự động hóa: Hỗ trợ CLI và API giúp người dùng dễ dàng tự động hóa quá trình triển khai và quản lý.
2. Vấn đề cần lưu ý.
Bình thường, pveceph
chỉ có thể sử dụng khi các node đã được join vào một cụm Proxmox Cluster, vì Ceph được triển khai trên nhiều node và cần sự hợp tác của chúng trong một cụm để hoạt động.
Nếu bạn không muốn join vào cluster nhưng vẫn muốn sử dụng các lệnh pveceph
, điều này có thể không được hỗ trợ chính thức. Tuy nhiên, bạn có thể thử cài đặt và cấu hình Ceph theo cách thủ công mà không thông qua Proxmox (sử dụng các lệnh Ceph gốc thay vì pveceph
). Nhưng điều này sẽ phức tạp hơn và có thể yêu cầu nhiều thao tác hơn.
Một số cách khả thi:
- Cài đặt Ceph thủ công: Bạn có thể tự cài đặt và cấu hình Ceph bằng cách sử dụng các lệnh gốc từ bộ công cụ Ceph, như
ceph-deploy
, để không phụ thuộc vàopveceph
. - Sử dụng Proxmox nhưng không cần cluster: Điều này có thể đòi hỏi bạn điều chỉnh cấu hình của Proxmox để bỏ qua các bước cần thiết phải join cluster, tuy nhiên, đây không phải là cách chính thức.
3. Quy trình triển khai.
3.1. Cài đặt Ceph.
Để xác nhận tự động khi cài đặt bằng lệnh như pveceph install --repository no-subscription
, bạn có thể sử dụng lệnh yes
trong Linux để tự động trả lời y
cho tất cả các câu hỏi yêu cầu xác nhận. Cú pháp như sau:
yes | pveceph install --repository no-subscription
Lệnh yes
sẽ tự động gửi câu trả lời y
vào các câu hỏi xác nhận.
Nếu bạn muốn trả lời khác hoặc có thêm điều kiện, có thể tùy chỉnh lệnh yes
với nội dung cần thiết:
yes y | pveceph install --repository no-subscriptionceph -s
Nếu bạn muốn tự xác nhận thì có thể bỏ qua lệnh yes
.
shell> pveceph install --repository no-subscription
HINT: The no-subscription repository is not the best choice for production setups.
Proxmox recommends using the enterprise repository with a valid subscription.
This will install Ceph Quincy - continue (y/N)? y
update available package list
W: Failed to fetch https://enterprise.proxmox.com/debian/pve/dists/bookworm/InRelease 500 Internal Server Error [IP: 103.76.41.50 443]
W: Some index files failed to download. They have been ignored, or old ones used instead.
start installation
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
gdisk is already the newest version (1.0.9-2.1).
The following additional packages will be installed:
ceph-base ceph-mgr ceph-mgr-modules-core ceph-mon ceph-osd cryptsetup-bin libcephfs2 libcryptsetup12 libnvme1 libparted2 libpython3.11 libpython3.11-minimal libpython3.11-stdlib librados2 libradosstriper1 librbd1 librgw2 libsqlite3-mod-ceph parted
python3-autocommand python3-bcrypt python3-bs4 python3-ceph-argparse python3-ceph-common python3-cephfs python3-cffi-backend python3-cheroot python3-cherrypy3 python3-cryptography python3-dateutil python3-inflect python3-jaraco.classes python3-jaraco.collections
python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-logutils python3-mako python3-markupsafe python3-more-itertools python3-natsort python3-openssl python3-paste python3-pastedeploy python3-pastedeploy-tpl python3-pecan python3-portend
python3-rados python3-rbd python3-rgw python3-simplegeneric python3-singledispatch python3-soupsieve python3-tempita python3-tempora python3-tz python3-waitress python3-webob python3-webtest python3-werkzeug python3-zc.lockfile python3.11 python3.11-minimal sudo
Suggested packages:
ceph-mgr-dashboard ceph-mgr-diskprediction-local ceph-mgr-k8sevents ceph-mgr-cephadm python3-influxdb libparted-dev libparted-i18n parted-doc python-cryptography-doc python3-cryptography-vectors python-mako-doc python3-beaker python-natsort-doc python-openssl-doc
python3-openssl-dbg libapache2-mod-python python-pecan-doc python-waitress-doc python-webob-doc python-webtest-doc ipython3 python-werkzeug-doc python3-lxml python3-watchdog python3.11-venv python3.11-doc binfmt-support
Recommended packages:
btrfs-tools python3-lxml python3-routes python3-simplejson python3-pastescript python3-pyinotify
The following NEW packages will be installed:
ceph ceph-base ceph-mds ceph-mgr ceph-mgr-modules-core ceph-mon ceph-osd ceph-volume cryptsetup-bin libnvme1 libparted2 libpython3.11 libsqlite3-mod-ceph nvme-cli parted python3-autocommand python3-bcrypt python3-bs4 python3-cffi-backend python3-cheroot
python3-cherrypy3 python3-cryptography python3-dateutil python3-inflect python3-jaraco.classes python3-jaraco.collections python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-logutils python3-mako python3-markupsafe python3-more-itertools
python3-natsort python3-openssl python3-paste python3-pastedeploy python3-pastedeploy-tpl python3-pecan python3-portend python3-simplegeneric python3-singledispatch python3-soupsieve python3-tempita python3-tempora python3-tz python3-waitress python3-webob
python3-webtest python3-werkzeug python3-zc.lockfile sudo
The following packages will be upgraded:
ceph-common ceph-fuse libcephfs2 libcryptsetup12 libpython3.11-minimal libpython3.11-stdlib librados2 libradosstriper1 librbd1 librgw2 python3-ceph-argparse python3-ceph-common python3-cephfs python3-rados python3-rbd python3-rgw python3.11 python3.11-minimal
18 upgraded, 52 newly installed, 0 to remove and 63 not upgraded.
Need to get 89.7 MB of archives.
After this operation, 175 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
3.2. Khởi tạo và thiết lập một cluster.
Sử dụng lệnh pveceph init --network 192.168.100.131/24
trong Proxmox được sử dụng để khởi tạo và cấu hình Ceph trong một cluster Proxmox
shell> pveceph init --network 192.168.100.131/24
creating /etc/pve/priv/ceph.client.admin.keyring
Khởi tạo cấu hình Ceph: Lệnh này sẽ tạo các file cấu hình cần thiết để thiết lập một cluster Ceph trong môi trường Proxmox. Điều này bao gồm việc tạo file cấu hình chính /etc/ceph/ceph.conf
và file keyring cho client admin.
Tạo keyring cho admin: Đây là thông tin bảo mật dùng để quản lý và điều hành cluster Ceph.
Thiết lập mạng cho Ceph: Tham số --network 192.168.100.131/24
chỉ ra rằng mạng này sẽ được dùng cho giao tiếp giữa các OSD và các thành phần khác trong cluster Ceph. Việc này giúp chỉ định địa chỉ IP và subnet cụ thể cho các dịch vụ của Ceph.
Sau khi chạy lệnh trên bạn đã có file ceph.conf và ceph.client.admin.keyring.
shell> ls /etc/pve/priv/ceph.client.admin.keyring
/etc/pve/priv/ceph.client.admin.keyring
shell> ls /etc/ceph/ceph.conf
/etc/ceph/ceph.conf
Nội dung file /etc/ceph/ceph.conf
.
shell> cat /etc/ceph/ceph.conf
[global]
auth_client_required = cephx
auth_cluster_required = cephx
auth_service_required = cephx
cluster_network = 192.168.100.131/24
fsid = 7d996594-d2f6-4e23-a34e-7947fefffa43
mon_allow_pool_delete = true
osd_pool_default_min_size = 2
osd_pool_default_size = 3
public_network = 192.168.100.131/24
[client]
keyring = /etc/pve/priv/$cluster.$name.keyring
Nội dung file ceph.client.admin.keyring
.
shell> cat /etc/pve/priv/ceph.client.admin.keyring
[client.admin]
key = AQCjCPxmlrdgFxAA4cDyhdaM1HzZ9XFZ4AxnQw==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
Nhưng giờ bạn vẫn chưa sử dụng cluster vì còn thiếu nhiều thành phần, ví dụ như ceph-mon.
shell> ceph -s
unable to get monitor info from DNS SRV with service name: ceph-mon
2024-10-01T21:37:21.686+0700 7fd7b3bae6c0 -1 failed for service _ceph-mon._tcp
2024-10-01T21:37:21.686+0700 7fd7b3bae6c0 -1 monclient: get_monmap_and_config cannot identify monitors to contact
[errno 2] RADOS object not found (error connecting to the cluster)
3.3. Khởi tạo Ceph Mon.
Sử dụng lệnh pveceph mon create --mon-address <mon_ipaddrr>
để khởi tạo Mon đầu tiên.
shell> pveceph mon create --mon-address 192.168.100.131
unable to get monitor info from DNS SRV with service name: ceph-mon
rados_connect failed - No such file or directory
creating new monitor keyring
creating /etc/pve/priv/ceph.mon.keyring
importing contents of /etc/pve/priv/ceph.client.admin.keyring into /etc/pve/priv/ceph.mon.keyring
monmaptool: monmap file /tmp/monmap
monmaptool: generated fsid 8a9b1234-7022-4b8a-9856-3346297332a7
setting min_mon_release = octopus
epoch 0
fsid 8a9b1234-7022-4b8a-9856-3346297332a7
last_changed 2024-10-01T21:38:58.000463+0700
created 2024-10-01T21:38:58.000463+0700
min_mon_release 15 (octopus)
election_strategy: 1
0: [v2:192.168.100.131:3300/0,v1:192.168.100.131:6789/0] mon.node1
monmaptool: writing epoch 0 to /tmp/monmap (1 monitors)
created the first monitor, assume it's safe to disable insecure global ID reclaim for new setup
Created symlink /etc/systemd/system/ceph-mon.target.wants/ceph-mon@node1.service -> /lib/systemd/system/ceph-mon@.service.
creating manager directory '/var/lib/ceph/mgr/ceph-node1'
creating keys for 'mgr.node1'
setting owner for directory
enabling service 'ceph-mgr@node1.service'
Created symlink /etc/systemd/system/ceph-mgr.target.wants/ceph-mgr@node1.service -> /lib/systemd/system/ceph-mgr@.service.
starting service 'ceph-mgr@node1.service'
Giờ bạn đã sử dụng lệnh ceph -s để xem được trạng thái của cluster tuy nhiên cluster vẫn đang ở trạng thái HEALTH_WARN.
shell> ceph -s
cluster:
id: 7d996594-d2f6-4e23-a34e-7947fefffa43
health: HEALTH_WARN
OSD count 0 < osd_pool_default_size 3
services:
mon: 1 daemons, quorum node1 (age 30s)
mgr: node1(active, since 24s)
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:
Sử dụng lệnh ceph health detail bạn sẽ nhìn ra được nguyên nhân, đó là thiếu OSD.
shell> ceph health detail
HEALTH_WARN OSD count 0 < osd_pool_default_size 3
[WRN] TOO_FEW_OSDS: OSD count 0 < osd_pool_default_size 3
Giờ hãy chạy lệnh pveceph mon create --mon-address <monitor_ipaddr>
trên các node mon còn lại nhé.
pveceph mon create --mon-address 192.168.100.132
pveceph mon create --mon-address 192.168.100.133
pveceph mon create --mon-address 192.168.100.134
pveceph mon create --mon-address 192.168.100.135
Đây là ví dụ tôi chạy trên node2 – 192.168.100.132.
shell> pveceph mon create --mon-address 192.168.100.132
monmaptool: monmap file /tmp/monmap
epoch 1
fsid 834a0f49-e0ca-4299-b6c1-3d4a608cfe51
last_changed 2024-10-01T01:26:44.273051+0700
created 2024-10-01T01:26:44.273051+0700
min_mon_release 17 (quincy)
election_strategy: 1
0: [v2:192.168.100.131:3300/0,v1:192.168.100.131:6789/0] mon.node1
1: [v2:192.168.100.132:3300/0,v1:192.168.100.132:6789/0] mon.node2
monmaptool: writing epoch 1 to /tmp/monmap (2 monitors)
Created symlink /etc/systemd/system/ceph-mon.target.wants/ceph-mon@node2.service -> /lib/systemd/system/ceph-mon@.service.
Sau khi chạy xong, bạn sẽ thấy ceph -s đã thông báo có 5 node monitor.
shell> ceph -s
cluster:
id: a449592b-18d4-4d26-bb3c-0cedbaea2218
health: HEALTH_WARN
OSD count 0 < osd_pool_default_size 3
services:
mon: 5 daemons, quorum node1,node2,node4,node5,node3 (age 0.241871s)
mgr: node1(active, since 5m)
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:
Tuy nhiên trạng thái vẫn là HEALTH_WARN do chưa đủ số lượng tối thiểu là 3 OSD.
shell> ceph health detail
HEALTH_WARN OSD count 0 < osd_pool_default_size 3
[WRN] TOO_FEW_OSDS: OSD count 0 < osd_pool_default_size 3
Đây là hình ảnh 5 node mon đã được thêm vào bằng CLI trên WebGUI.
3.4. Thêm các OSD.
Xác định các ổ đĩa sẽ tham giá OSD, ở đây mình có 5 ổ sdb, sdc, sdd, sde và sdf.
shell> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
|-sda1 8:1 0 1007K 0 part
|-sda2 8:2 0 512M 0 part
`-sda3 8:3 0 49.5G 0 part
|-pve-swap 252:0 0 6.1G 0 lvm [SWAP]
|-pve-root 252:1 0 21.7G 0 lvm /
|-pve-data_tmeta 252:2 0 1G 0 lvm
| `-pve-data 252:4 0 13.6G 0 lvm
`-pve-data_tdata 252:3 0 13.6G 0 lvm
`-pve-data 252:4 0 13.6G 0 lvm
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
Mình sẽ chia tôi ổ thành 2 phân vùng bằng nhau.
shell> parted /dev/sdb
GNU Parted 3.5
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 0% 50%
(parted) mkpart primary 50% 100%
(parted) quit
Information: You may need to update /etc/fstab.
shell> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
|-sda1 8:1 0 1007K 0 part
|-sda2 8:2 0 512M 0 part
`-sda3 8:3 0 49.5G 0 part
|-pve-swap 252:0 0 6.1G 0 lvm [SWAP]
|-pve-root 252:1 0 21.7G 0 lvm /
|-pve-data_tmeta 252:2 0 1G 0 lvm
| `-pve-data 252:4 0 13.6G 0 lvm
`-pve-data_tdata 252:3 0 13.6G 0 lvm
`-pve-data 252:4 0 13.6G 0 lvm
sdb 8:16 0 20G 0 disk
|-sdb1 8:17 0 10G 0 part
`-sdb2 8:18 0 10G 0 part
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
Bạn có thể tự động hóa các lệnh parted
bằng cách sử dụng chế độ non-interactive
của parted
bằng cách truyền các lệnh trực tiếp trong một dòng lệnh, ví dụ:
parted /dev/sdc --script mklabel gpt mkpart primary 0% 50% mkpart primary 50% 100%
Trong câu lệnh trên:
--script
: cho phépparted
chạy mà không cần sự tương tác của người dùng, tự động bỏ qua các cảnh báo và xác nhận.- Các phần còn lại là các lệnh
mklabel gpt
,mkpart primary 0% 50%
vàmkpart primary 50% 100%
được thực thi trong cùng một dòng.
Điều này sẽ tự động thực hiện tất cả các bước mà không yêu cầu người dùng nhập thủ công và dưới đây là kết quả khi tôi chạy lệnh trên với /dev/sdc.
shell> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
|-sda1 8:1 0 1007K 0 part
|-sda2 8:2 0 512M 0 part
`-sda3 8:3 0 49.5G 0 part
|-pve-swap 252:0 0 6.1G 0 lvm [SWAP]
|-pve-root 252:1 0 21.7G 0 lvm /
|-pve-data_tmeta 252:2 0 1G 0 lvm
| `-pve-data 252:4 0 13.6G 0 lvm
`-pve-data_tdata 252:3 0 13.6G 0 lvm
`-pve-data 252:4 0 13.6G 0 lvm
sdb 8:16 0 20G 0 disk
|-sdb1 8:17 0 10G 0 part
`-sdb2 8:18 0 10G 0 part
sdc 8:32 0 20G 0 disk
|-sdc1 8:33 0 10G 0 part
`-sdc2 8:34 0 10G 0 part
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
Giờ bạn hãy chạy hết nhé.
parted /dev/sdb --script mklabel gpt mkpart primary 0% 50% mkpart primary 50% 100%
parted /dev/sdc --script mklabel gpt mkpart primary 0% 50% mkpart primary 50% 100%
parted /dev/sdd --script mklabel gpt mkpart primary 0% 50% mkpart primary 50% 100%
parted /dev/sde --script mklabel gpt mkpart primary 0% 50% mkpart primary 50% 100%
parted /dev/sdf --script mklabel gpt mkpart primary 0% 50% mkpart primary 50% 100%
Và mình có kết quả.
shell> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
|-sda1 8:1 0 1007K 0 part
|-sda2 8:2 0 512M 0 part
`-sda3 8:3 0 49.5G 0 part
|-pve-swap 252:0 0 6.1G 0 lvm [SWAP]
|-pve-root 252:1 0 21.7G 0 lvm /
|-pve-data_tmeta 252:2 0 1G 0 lvm
| `-pve-data 252:4 0 13.6G 0 lvm
`-pve-data_tdata 252:3 0 13.6G 0 lvm
`-pve-data 252:4 0 13.6G 0 lvm
sdb 8:16 0 20G 0 disk
|-sdb1 8:17 0 10G 0 part
`-sdb2 8:18 0 10G 0 part
sdc 8:32 0 20G 0 disk
|-sdc1 8:33 0 10G 0 part
`-sdc2 8:34 0 10G 0 part
sdd 8:48 0 20G 0 disk
|-sdd1 8:49 0 10G 0 part
`-sdd2 8:50 0 10G 0 part
sde 8:64 0 20G 0 disk
|-sde1 8:65 0 10G 0 part
`-sde2 8:66 0 10G 0 part
sdf 8:80 0 20G 0 disk
|-sdf1 8:81 0 10G 0 part
`-sdf2 8:82 0 10G 0 part
sr0 11:0 1 1024M 0 rom
Chạy lệnh pveceph createosd <partition>
để thêm OSD vào cluster.
pveceph createosd /dev/sdb1
pveceph createosd /dev/sdb2
pveceph createosd /dev/sdc1
pveceph createosd /dev/sdc2
pveceph createosd /dev/sdd1
pveceph createosd /dev/sdd2
pveceph createosd /dev/sde1
pveceph createosd /dev/sde2
pveceph createosd /dev/sdf1
pveceph createosd /dev/sdf2
Ví dụ.
shell> pveceph createosd /dev/sdb1
create OSD on /dev/sdb1 (bluestore)
wiping block device /dev/sdb1
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.254597 s, 824 MB/s
The operation has completed successfully.
The operation has completed successfully.
Running command: /bin/ceph-authtool --gen-print-key
Running command: /bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring -i - osd new 3b3e40f8-0592-4b2f-a395-b28a73cb1325
Running command: vgcreate --force --yes ceph-613a8d0a-b09e-49d2-b354-0ddd7c0c3a85 /dev/sdb1
stdout: Physical volume "/dev/sdb1" successfully created.
stdout: Volume group "ceph-613a8d0a-b09e-49d2-b354-0ddd7c0c3a85" successfully created
Running command: lvcreate --yes -l 2559 -n osd-block-3b3e40f8-0592-4b2f-a395-b28a73cb1325 ceph-613a8d0a-b09e-49d2-b354-0ddd7c0c3a85
stdout: Logical volume "osd-block-3b3e40f8-0592-4b2f-a395-b28a73cb1325" created.
Running command: /bin/ceph-authtool --gen-print-key
Running command: /bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0
--> Executable selinuxenabled not in PATH: /sbin:/bin:/usr/sbin:/usr/bin
Running command: /bin/chown -h ceph:ceph /dev/ceph-613a8d0a-b09e-49d2-b354-0ddd7c0c3a85/osd-block-3b3e40f8-0592-4b2f-a395-b28a73cb1325
Running command: /bin/chown -R ceph:ceph /dev/dm-5
Running command: /bin/ln -s /dev/ceph-613a8d0a-b09e-49d2-b354-0ddd7c0c3a85/osd-block-3b3e40f8-0592-4b2f-a395-b28a73cb1325 /var/lib/ceph/osd/ceph-0/block
Running command: /bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring mon getmap -o /var/lib/ceph/osd/ceph-0/activate.monmap
stderr: 2024-10-01T02:12:37.812+0700 7f68a44ff6c0 -1 auth: unable to find a keyring on /etc/pve/priv/ceph.client.bootstrap-osd.keyring: (2) No such file or directory
2024-10-01T02:12:37.812+0700 7f68a44ff6c0 -1 AuthRegistry(0x7f689c060bb0) no keyring found at /etc/pve/priv/ceph.client.bootstrap-osd.keyring, disabling cephx
stderr: got monmap epoch 5
--> Creating keyring file for osd.0
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0/keyring
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0/
Running command: /bin/ceph-osd --cluster ceph --osd-objectstore bluestore --mkfs -i 0 --monmap /var/lib/ceph/osd/ceph-0/activate.monmap --keyfile - --osd-data /var/lib/ceph/osd/ceph-0/ --osd-uuid 3b3e40f8-0592-4b2f-a395-b28a73cb1325 --setuser ceph --setgroup ceph
stderr: 2024-10-01T02:12:38.092+0700 7f95866243c0 -1 bluestore(/var/lib/ceph/osd/ceph-0/) _read_fsid unparsable uuid
--> ceph-volume lvm prepare successful for: /dev/sdb1
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0
Running command: /bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-613a8d0a-b09e-49d2-b354-0ddd7c0c3a85/osd-block-3b3e40f8-0592-4b2f-a395-b28a73cb1325 --path /var/lib/ceph/osd/ceph-0 --no-mon-config
Running command: /bin/ln -snf /dev/ceph-613a8d0a-b09e-49d2-b354-0ddd7c0c3a85/osd-block-3b3e40f8-0592-4b2f-a395-b28a73cb1325 /var/lib/ceph/osd/ceph-0/block
Running command: /bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block
Running command: /bin/chown -R ceph:ceph /dev/dm-5
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0
Running command: /bin/systemctl enable ceph-volume@lvm-0-3b3e40f8-0592-4b2f-a395-b28a73cb1325
stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-3b3e40f8-0592-4b2f-a395-b28a73cb1325.service -> /lib/systemd/system/ceph-volume@.service.
Running command: /bin/systemctl enable --runtime ceph-osd@0
stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph-osd@0.service -> /lib/systemd/system/ceph-osd@.service.
Running command: /bin/systemctl start ceph-osd@0
--> ceph-volume lvm activate successful for osd ID: 0
--> ceph-volume lvm create successful for: /dev/sdb
Sau khi tôi chạy xong mới partition thì tôi có kết quả cluster đã có 10 osds như dưới.
shell> ceph -s
cluster:
id: a449592b-18d4-4d26-bb3c-0cedbaea2218
health: HEALTH_OK
services:
mon: 5 daemons, quorum node1,node2,node4,node5,node3 (age 5m)
mgr: node1(active, since 11m)
osd: 10 osds: 10 up (since 2s), 10 in (since 26s); 1 remapped pgs
data:
pools: 1 pools, 1 pgs
objects: 2 objects, 577 KiB
usage: 2.6 GiB used, 87 GiB / 90 GiB avail
pgs: 4/6 objects misplaced (66.667%)
1 active+clean+remapped
io:
client: 1.5 KiB/s rd, 89 KiB/s wr, 1 op/s rd, 3 op/s wr
Xem lại danh sách OSD.
shell> ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.09796 root default
-3 0.09796 host node1
0 hdd 0.00980 osd.0 up 1.00000 1.00000
1 hdd 0.00980 osd.1 up 1.00000 1.00000
2 hdd 0.00980 osd.2 up 1.00000 1.00000
3 hdd 0.00980 osd.3 up 1.00000 1.00000
4 hdd 0.00980 osd.4 up 1.00000 1.00000
5 hdd 0.00980 osd.5 up 1.00000 1.00000
6 hdd 0.00980 osd.6 up 1.00000 1.00000
7 hdd 0.00980 osd.7 up 1.00000 1.00000
8 hdd 0.00980 osd.8 up 1.00000 1.00000
9 hdd 0.00980 osd.9 up 1.00000 1.00000
Và sau khi tôi chạy trên 5 node xong, tôi có kết quả có 50 OSDs với trạng thái HEALTH_OK như dưới.
shell> ceph -s
cluster:
id: a449592b-18d4-4d26-bb3c-0cedbaea2218
health: HEALTH_OK
services:
mon: 5 daemons, quorum node1,node2,node4,node5,node3 (age 10m)
mgr: node1(active, since 16m)
osd: 50 osds: 50 up (since 13s), 50 in (since 35s)
data:
pools: 1 pools, 1 pgs
objects: 2 objects, 577 KiB
usage: 15 GiB used, 485 GiB / 500 GiB avail
pgs: 1 active+clean
Cùng xem lại danh sách OSD.
shell> ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.48981 root default
-3 0.09796 host node1
0 hdd 0.00980 osd.0 up 1.00000 1.00000
1 hdd 0.00980 osd.1 up 1.00000 1.00000
2 hdd 0.00980 osd.2 up 1.00000 1.00000
3 hdd 0.00980 osd.3 up 1.00000 1.00000
4 hdd 0.00980 osd.4 up 1.00000 1.00000
5 hdd 0.00980 osd.5 up 1.00000 1.00000
6 hdd 0.00980 osd.6 up 1.00000 1.00000
7 hdd 0.00980 osd.7 up 1.00000 1.00000
8 hdd 0.00980 osd.8 up 1.00000 1.00000
9 hdd 0.00980 osd.9 up 1.00000 1.00000
-5 0.09796 host node2
10 hdd 0.00980 osd.10 up 1.00000 1.00000
12 hdd 0.00980 osd.12 up 1.00000 1.00000
16 hdd 0.00980 osd.16 up 1.00000 1.00000
20 hdd 0.00980 osd.20 up 1.00000 1.00000
25 hdd 0.00980 osd.25 up 1.00000 1.00000
28 hdd 0.00980 osd.28 up 1.00000 1.00000
33 hdd 0.00980 osd.33 up 1.00000 1.00000
36 hdd 0.00980 osd.36 up 1.00000 1.00000
41 hdd 0.00980 osd.41 up 1.00000 1.00000
44 hdd 0.00980 osd.44 up 1.00000 1.00000
-7 0.09796 host node3
11 hdd 0.00980 osd.11 up 1.00000 1.00000
14 hdd 0.00980 osd.14 up 1.00000 1.00000
19 hdd 0.00980 osd.19 up 1.00000 1.00000
22 hdd 0.00980 osd.22 up 1.00000 1.00000
26 hdd 0.00980 osd.26 up 1.00000 1.00000
30 hdd 0.00980 osd.30 up 1.00000 1.00000
34 hdd 0.00980 osd.34 up 1.00000 1.00000
38 hdd 0.00980 osd.38 up 1.00000 1.00000
42 hdd 0.00980 osd.42 up 1.00000 1.00000
46 hdd 0.00980 osd.46 up 1.00000 1.00000
-9 0.09796 host node4
13 hdd 0.00980 osd.13 up 1.00000 1.00000
17 hdd 0.00980 osd.17 up 1.00000 1.00000
21 hdd 0.00980 osd.21 up 1.00000 1.00000
24 hdd 0.00980 osd.24 up 1.00000 1.00000
29 hdd 0.00980 osd.29 up 1.00000 1.00000
32 hdd 0.00980 osd.32 up 1.00000 1.00000
37 hdd 0.00980 osd.37 up 1.00000 1.00000
40 hdd 0.00980 osd.40 up 1.00000 1.00000
45 hdd 0.00980 osd.45 up 1.00000 1.00000
48 hdd 0.00980 osd.48 up 1.00000 1.00000
-11 0.09796 host node5
15 hdd 0.00980 osd.15 up 1.00000 1.00000
18 hdd 0.00980 osd.18 up 1.00000 1.00000
23 hdd 0.00980 osd.23 up 1.00000 1.00000
27 hdd 0.00980 osd.27 up 1.00000 1.00000
31 hdd 0.00980 osd.31 up 1.00000 1.00000
35 hdd 0.00980 osd.35 up 1.00000 1.00000
39 hdd 0.00980 osd.39 up 1.00000 1.00000
43 hdd 0.00980 osd.43 up 1.00000 1.00000
47 hdd 0.00980 osd.47 up 1.00000 1.00000
49 hdd 0.00980 osd.49 up 1.00000 1.00000
Và đây là kết quả khi bạn xem trên WebGUI.
Chúc các bạn thành công.