Saturday, October 5, 2024

Proxmox Ceph CLI

-

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)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ào pveceph.
  • 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ép parted 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%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.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories