Thêm Node OSD mới vào Ceph Cluster

1. Tổng quan

Trong quá trình vận hành hệ thống lưu trữ phân tán Ceph, việc mở rộng dung lượng lưu trữ bằng cách thêm node OSD mới là công việc định kỳ và quan trọng. Tuy nhiên, nếu không thực hiện đúng quy trình, hệ thống có thể gặp tình trạng mất cân bằng dữ liệu, ảnh hưởng đến hiệu năng hoặc thậm chí gây lỗi.

Bài viết này chia sẻ chi tiết từng bước triển khai thêm một node OSD mới vào Ceph cluster sử dụng công cụ cephadm – từ khâu chuẩn bị, kiểm tra hệ thống hiện tại, zap ổ đĩa, đến quá trình theo dõi quá trình khởi tạo các OSD container trên node mới.

2. Sơ đồ.

Sơ đồ trước khi thêm Node CEPH-LAB-OSD-076.

                +-------------------------------+
                |         Ceph Cluster          |
                +-------------------------------+
                            |
        +-------------------+-------------------+
        |                                       |
 +---------------+                     +----------------------+
 |   MON/MGR     |                     |     OSD Nodes        |
 |   Nodes       |                     |   (Lưu trữ dữ liệu)  |
 +---------------+                     +----------------------+
        |                                       |
+------------------------+         +---------------------------+
| CEPH-LAB-MON-071       |         | CEPH-LAB-OSD-074 (osd)    |
| IP: 10.237.7.71        |         | IP: 10.237.7.74           |
| Roles: _admin, mon,    |         +---------------------------+
|         mgr, osd       |         
+------------------------+         +---------------------------+
| CEPH-LAB-MON-072       |         | CEPH-LAB-OSD-075 (osd)    |
| IP: 10.237.7.72        |         | IP: 10.237.7.75           |
| Roles: _admin, mon,    |         +---------------------------+
|         mgr, osd       |
+------------------------+ 
| CEPH-LAB-MON-073       | 
| IP: 10.237.7.73        | 
| Roles: _admin, mon,    | 
|         mgr, osd       |
+------------------------+

Sơ đồ trước khi thêm Node CEPH-LAB-OSD-076.

                +-------------------------------+
                |         Ceph Cluster          |
                +-------------------------------+
                            |
        +-------------------+-------------------+
        |                                       |
 +---------------+                     +----------------------+
 |   MON/MGR     |                     |     OSD Nodes        |
 |   Nodes       |                     |   (Lưu trữ dữ liệu)  |
 +---------------+                     +----------------------+
        |                                       |
+------------------------+         +---------------------------+
| CEPH-LAB-MON-071       |         | CEPH-LAB-OSD-074 (osd)    |
| IP: 10.237.7.71        |         | IP: 10.237.7.74           |
| Roles: _admin, mon,    |         +---------------------------+
|         mgr, osd       |         
+------------------------+         +---------------------------+
| CEPH-LAB-MON-072       |         | CEPH-LAB-OSD-075 (osd)    |
| IP: 10.237.7.72        |         | IP: 10.237.7.75           |
| Roles: _admin, mon,    |         +---------------------------+
|         mgr, osd       |
+------------------------+ 
| CEPH-LAB-MON-073       | 
| IP: 10.237.7.73        | 
| Roles: _admin, mon,    | 
|         mgr, osd       |
+------------------------+
  • Các node MON đồng thời là MGR và cũng có cài OSD.
  • Các node CEPH-LAB-OSD-074 → 075 chỉ có vai trò là node lưu trữ (osd-only).
  • _admin label chỉ rõ node đó có thể thực hiện các thao tác quản trị cluster (qua cephadm).

3. Các bước chuẩn bị trước khi thêm node OSD mới vào cluster.

Thực hiện các bước sau trên Ceph Mon.

3.1. Kiểm tra hiện trạng hệ thống

Danh sách hosts hiện có:

shell> ceph orch host ls
HOST              ADDR         LABELS              STATUS
CEPH-LAB-MON-071  10.237.7.71  _admin,mon,mgr,osd
CEPH-LAB-MON-072  10.237.7.72  _admin,mon,mgr,osd
CEPH-LAB-MON-073  10.237.7.73  _admin,mon,mgr,osd
CEPH-LAB-OSD-074  10.237.7.74  osd
CEPH-LAB-OSD-075  10.237.7.75  osd
5 hosts in cluster

Mục đích để xác minh các node hiện tại trong cluster, đảm bảo nhận diện được node mới sẽ thêm vào.

Trạng thái cluster:

shell> ceph -s
  cluster:
    id:     75ac298c-0653-11f0-a2e7-2b96c52a296a
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum CEPH-LAB-MON-071,CEPH-LAB-MON-073,CEPH-LAB-MON-072 (age 3w)
    mgr: CEPH-LAB-MON-072.agtskh(active, since 2d), standbys: CEPH-LAB-MON-071.lyxipt, CEPH-LAB-MON-073.holphb
    osd: 44 osds: 44 up (since 3d), 44 in (since 3d)

  data:
    pools:   1 pools, 1 pgs
    objects: 2 objects, 449 KiB
    usage:   31 GiB used, 409 GiB / 440 GiB avail
    pgs:     1 active+clean

Mục đích để đảm bảo cluster đang ở trạng thái HEALTH_OK, tránh thêm node trong khi hệ thống đang lỗi hoặc mất đồng bộ.

Danh sách ổ đĩa (device):

shell> ceph orch device ls
HOST              PATH      TYPE  DEVICE ID                                             SIZE  AVAILABLE  REFRESHED  REJECT REASONS
CEPH-LAB-MON-071  /dev/sdb  ssd                                                        30.0G  No         14m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-071  /dev/sdc  ssd                                                        30.0G  No         14m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-071  /dev/sdd  ssd                                                        30.0G  No         14m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-071  /dev/sr0  hdd   VMware_Virtual_SATA_CDRW_Drive_00000000000000000001  1023M  No         14m ago    Failed to determine if device is BlueStore, Insufficient space (<5GB)
CEPH-LAB-MON-072  /dev/sdb  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-072  /dev/sdc  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-072  /dev/sdd  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-072  /dev/sr0  hdd   VMware_Virtual_SATA_CDRW_Drive_00000000000000000001  1023M  No         16m ago    Failed to determine if device is BlueStore, Insufficient space (<5GB)
CEPH-LAB-MON-073  /dev/sdb  ssd                                                        30.0G  No         30m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-073  /dev/sdc  ssd                                                        30.0G  No         30m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-073  /dev/sdd  ssd                                                        30.0G  No         30m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-MON-073  /dev/sr0  hdd   VMware_Virtual_SATA_CDRW_Drive_00000000000000000001  1023M  No         30m ago    Failed to determine if device is BlueStore, Insufficient space (<5GB)
CEPH-LAB-OSD-074  /dev/sdb  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-OSD-074  /dev/sdc  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-OSD-074  /dev/sdd  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-OSD-074  /dev/sr0  hdd   VMware_Virtual_SATA_CDRW_Drive_00000000000000000001  1023M  No         16m ago    Failed to determine if device is BlueStore, Insufficient space (<5GB)
CEPH-LAB-OSD-075  /dev/sdb  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-OSD-075  /dev/sdc  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-OSD-075  /dev/sdd  ssd                                                        30.0G  No         16m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
CEPH-LAB-OSD-075  /dev/sr0  hdd   VMware_Virtual_SATA_CDRW_Drive_00000000000000000001  1023M  No         16m ago    Failed to determine if device is BlueStore, Insufficient space (<5GB)

Mục đích để xác định ổ đĩa nào đang trống hoặc có thể bị Ceph từ chối (do tồn tại filesystem, dung lượng nhỏ…).

Xem tình trạng lưu trữ hiện tại:

shell> ceph df
--- RAW STORAGE ---
CLASS     SIZE    AVAIL    USED  RAW USED  %RAW USED
ssd    440 GiB  408 GiB  31 GiB    31 GiB       7.13
TOTAL  440 GiB  408 GiB  31 GiB    31 GiB       7.13

--- POOLS ---
POOL  ID  PGS   STORED  OBJECTS     USED  %USED  MAX AVAIL
.mgr   1    1  449 KiB        2  904 KiB      0    170 GiB

Mục đích để đánh giá khả năng lưu trữ hiện tại trước khi mở rộng.

Check profile OSD.

Xem cấu hình triển khai (spec) của dịch vụ OSD do cephadm quản lý: cách phân phối OSDs, điều kiện chọn ổ đĩa, số lượng OSDs trên mỗi ổ.

shell> ceph orch ls --export --service-type osd
service_type: osd
service_id: osd_ssd_10gb
service_name: osd.osd_ssd_10gb
placement:
  host_pattern: '*'
  label: osd
spec:
  data_devices:
    rotational: 0
    size: 10G:30G
  filter_logic: AND
  objectstore: bluestore
  osds_per_device: 3

3.2. Đánh giá hiệu năng OSD để tránh làm chậm cluster khi thêm node mới.

Kiểm tra các thông số cấu hình hiệu năng OSD, đặc biệt trong quá trình recovery, backfill và profile mclock (quản lý I/O).

ceph config dump | grep -iE "osd_recovery_max_active_ssd|osd_mclock_profile|osd_mclock_override_recovery_settings|osd_max_backfills"

✅ Thực hiện các bước sau trên Node mới (CEPH-LAB-OSD-076)

3.3. Zap ổ đĩa trên node mới

Có hai cách để zap ổ đĩa:

Cách 1 – Dùng cephadm rm-cluster (nên dùng):

shell> cephadm rm-cluster --force --zap-osds --fsid no_need_id
Using ceph image with id '2bc0b0f4375d' and tag 'v18.2.4' created on 2024-07-23 22:19:35 +0000 UTC
10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc
Zapping /dev/sdb...
Zapping /dev/sdc...
Zapping /dev/sdd...
Zapping /dev/sde...

Mục đích để dọn sạch ổ đĩa (xóa partition, LVM, filesystem) trước khi triển khai OSD. --fsid không quan trọng trong trường hợp này.

Cách 2 – Dùng lệnh thủ công:

sgdisk --zap-all /dev/sdb
dd if=/dev/zero of=/dev/sdb bs=1M count=100
wipefs -a /dev/sdb

Bạn cần chắc chắn rằng ổ đĩa không chứa dữ liệu quan trọng.

Kết quả các disk sau khi zap để sử dụng cho OSD phải sạch hoàn toàn.

shell>lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0   62M  1 loop /snap/core20/1587
loop1                       7:1    0 79.9M  1 loop /snap/lxd/22923
loop2                       7:2    0   47M  1 loop /snap/snapd/16292
sda                         8:0    0   50G  0 disk
├─sda1                      8:1    0    1M  0 part
├─sda2                      8:2    0    2G  0 part /boot
└─sda3                      8:3    0   48G  0 part
  └─ubuntu--vg-ubuntu--lv 253:9    0   48G  0 lvm  /
sdb                         8:16   0   30G  0 disk
sdc                         8:32   0   30G  0 disk
sdd                         8:48   0   30G  0 disk
sde                         8:64   0   30G  0 disk
sr0                        11:0    1 1024M  0 rom

3.4. Kiểm tra danh sách container.

Trên node mới, hãy kiểm tra danh sách container trước khi join cluster, thường sẽ trống nếu bạn không chạy dịch vụ gì ngoài Ceph.

podman ps

3.5. Kiểm tra quyền sudo của user cephadmin

òng này kiểm tra hoặc đảm bảo rằng user cephadmin có quyền sudo mà không cần nhập mật khẩu khi thực hiện các lệnh yêu cầu quyền root. Đây là một yêu cầu bắt buộc hoặc nên có trong các hệ thống triển khai Ceph sử dụng cephadm.

Tại sao cần NOPASSWD cho cephadmin?

  • Cephadm hoạt động qua SSH và sudo:
    • Khi bạn thêm host bằng ceph orch host add, Ceph sẽ SSH vào node mới (thường là user cephadmin) và thực hiện các thao tác bằng sudo.
    • Nếu sudo yêu cầu mật khẩu, quá trình sẽ thất bại hoặc bị treo, vì cephadm không có cơ chế nhập mật khẩu tự động.
  • Tự động hóa hoàn toàn quá trình:
    • cephadm deploy OSD, tạo container, cấu hình hệ thống… tất cả đều cần quyền root.
    • NOPASSWD giúp tự động hóa quá trình mà không cần sự can thiệp thủ công.

Thêm quyền này nếu chưa có.

echo "cephadmin ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadmin

Giả sử cephadmin không có quyền NOPASSWD, khi chạy:

ceph orch host add CEPH-LAB-OSD-076 10.237.7.76 osd

Bạn có thể gặp lỗi như:

sudo: a password is required

Và node sẽ không được thêm hoặc không deploy được OSD.

Bạn có thể xác minh trước bằng cách ở một node bất kỳ, ví dụ Mon Node hãy ssh sang node mới bằng cephadmin sử dụng sshkey.

ssh -i /home/cephadmin/.ssh/id_rsa cephadmin@10.237.7.76

Nếu bạn ssh được sang node mới mà không cần thêm bước authen gì nữa thì bạn đã thành công.

3.6. Kiểm tra mạng, thời gian hệ thống

3.6.1. Check status và speed NIC đảm bảo uplink đủ card nếu là bond, tốc độ,…

shell> ethtool ens160 | grep -E "Link detected|Speed"
        Speed: 10000Mb/s
        Link detected: yes

3.6.2. Kiểm tra network latency.

Việc check latency bằng ping giúp đảm bảo hạ tầng mạng ổn định, là bước cần thiết trước khi đưa node mới vào cluster Ceph để tránh rủi ro về đồng bộ dữ liệu, mất OSD hoặc lỗi quorum.

  • Kiểm tra network latency bằng ping trong Ceph:
    • Đảm bảo độ trễ mạng (latency) giữa các node trong Ceph cluster là thấp và ổn định, đặc biệt giữa các node OSD, MON, MGR.
    • Xác minh kết nối vật lý hoặc ảo hoạt động bình thường trước khi đưa node mới vào cụm.
    • Ngăn ngừa các lỗi về heartbeat mất tín hiệu, OSD bị đánh dấu down do timeout.
  • Vì Ceph rất nhạy cảm với độ trễ mạng, đặc biệt là:
    • Khi recovery hoặc backfill dữ liệu giữa các OSD.
    • Khi replication hoặc scrubbing diễn ra.
    • Khi monitors cần giữ quorum ổn định.
shell> ping -c 6 10.237.7.76
PING 10.237.7.76 (10.237.7.76) 56(84) bytes of data.
64 bytes from 10.237.7.76: icmp_seq=1 ttl=64 time=0.127 ms
64 bytes from 10.237.7.76: icmp_seq=2 ttl=64 time=0.150 ms
64 bytes from 10.237.7.76: icmp_seq=3 ttl=64 time=0.125 ms
64 bytes from 10.237.7.76: icmp_seq=4 ttl=64 time=0.185 ms
64 bytes from 10.237.7.76: icmp_seq=5 ttl=64 time=0.130 ms
64 bytes from 10.237.7.76: icmp_seq=6 ttl=64 time=0.156 ms

--- 10.237.7.76 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5122ms
rtt min/avg/max/mdev = 0.125/0.145/0.185/0.021 ms

Kết quả ping.

Thông sốÝ nghĩa
rtt avg < 1ms✅ Rất tốt cho môi trường production nội bộ (LAN, DataCenter).
0% packet loss✅ Không có lỗi truyền mạng.
Dao động thấp (mdev < 0.1ms)✅ Mạng ổn định, không giật/lag.

Nếu latency cao hoặc mất gói:

  • Các OSD có thể bị đánh down không rõ lý do.
  • Quorum MON có thể mất.
  • Hiệu năng client và recovery có thể bị ảnh hưởng nghiêm trọng.

Về network cần đảm bảo kết nối mạng tốt và tốc độ phù hợp (≥10Gbps)

3.7. Check date và time.

Thời gian đồng bộ chính xác là yêu cầu bắt buộc để Ceph cluster hoạt động ổn định. Hai lệnh trên giúp xác minh rằng node mới (hoặc toàn cluster) đang sử dụng đúng NTP và có thời gian chính xác đến từng micro giây.3.8. Xác minh node hiện tại có đáp ứng yêu cầu kỹ thuật để triển khai Ceph daemon (OSD, MON, MGR…).

Kiểm tra xem node Ceph (OSD, MON, MGR…) đang đồng bộ thời gian với NTP server nào và trạng thái kết nối hiện tại.

shell> chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* proxy.vinadata.local          3   7   377    62  +6451ns[  +23us] +/-   54ms

Kiểm tra mức độ chính xác của đồng bộ thời gian hệ thống so với NTP server (offset, độ lệch, tần suất cập nhật…).

shell> chronyc tracking
Reference ID    : 0AED07FA (proxy.vinadata.local)
Stratum         : 4
Ref time (UTC)  : Sat Jun 28 13:50:57 2025
System time     : 0.000004476 seconds fast of NTP time
Last offset     : +0.000016419 seconds
RMS offset      : 0.000015116 seconds
Frequency       : 1.140 ppm fast
Residual freq   : +0.013 ppm
Skew            : 0.253 ppm
Root delay      : 0.035498336 seconds
Root dispersion : 0.026566893 seconds
Update interval : 130.1 seconds
Leap status     : Normalonds
Leap status     : Normal

Đảm bảo thời gian hệ thống đồng bộ chính xác giữa các node trong cluster.

shell> date
Sat Jun 28 08:52:46 PM +07 2025

3.8 Kiểm tra các công cụ cần thiết (podman, systemctl, lvcreate, chrony…), đảm bảo node đã sẵn sàng để tham gia cluster.

shell> cephadm check-host
podman (/usr/bin/podman) version 3.4.4 is present
systemctl is present
lvcreate is present
Unit chrony.service is enabled and running
Host looks OK

Lưu ý là các package cần thiết như lvcreate, systemctl, podman… đã cài (xem lại các bài trước).

4. Các bước thêm node OSD mới vào cluster.

Thêm node mới vào cluster

shell> ceph orch host add CEPH-LAB-OSD-076 10.237.7.76 osd _no_schedule
Added host 'CEPH-LAB-OSD-076' with addr '10.237.7.76'

Dưới đây là kết quả thêm Thêm node CEPH-LAB-OSD-076 vào cluster thành công có sử dụng _no_schedule để ngăn Ceph tự động khởi tạo OSDs trước khi bạn sẵn sàng.

shell> ceph orch host ls
HOST              ADDR         LABELS              STATUS
CEPH-LAB-MON-071  10.237.7.71  _admin,mon,mgr,osd
CEPH-LAB-MON-072  10.237.7.72  _admin,mon,mgr,osd
CEPH-LAB-MON-073  10.237.7.73  _admin,mon,mgr,osd
CEPH-LAB-OSD-074  10.237.7.74  osd
CEPH-LAB-OSD-075  10.237.7.75  osd
CEPH-LAB-OSD-076  10.237.7.76  osd,_no_schedule
6 hosts in cluster

Kiểm tra ổ đĩa node mới

shell> ceph orch device ls CEPH-LAB-OSD-076
HOST              PATH      TYPE  DEVICE ID                                             SIZE  AVAILABLE  REFRESHED  REJECT REASONS
CEPH-LAB-OSD-076  /dev/sdb  ssd                                                        30.0G  Yes        17s ago
CEPH-LAB-OSD-076  /dev/sdc  ssd                                                        30.0G  Yes        17s ago
CEPH-LAB-OSD-076  /dev/sdd  ssd                                                        30.0G  Yes        17s ago
CEPH-LAB-OSD-076  /dev/sde  ssd                                                        30.0G  Yes        17s ago
CEPH-LAB-OSD-076  /dev/sr0  hdd   VMware_Virtual_SATA_CDRW_Drive_00000000000000000001  1023M  No         17s ago    Failed to determine if device is BlueStore, Insufficient space (<5GB)

Đảm bảo ổ đĩa hiện trạng là Available.

Deploy OSDs

shell> ceph orch host label rm CEPH-LAB-OSD-076 _no_schedule
Removed label _no_schedule from host CEPH-LAB-OSD-076

Gỡ label _no_schedule để Ceph bắt đầu khởi tạo OSD trên các ổ đĩa đủ điều kiện.

Theo dõi tiến trình khởi tạo

Trên Ceph Mon hãy verify osd tree, các OSDs vẫn đang down vì phải mất một ít thời gian để OSDs chuyển sang trạng thái down.

shell> ceph osd tree
-11         15.29997      host CEPH-LAB-OSD-075
 10    ssd   1.70000          osd.10                 up   1.00000  1.00000
 16    ssd   1.70000          osd.16                 up   1.00000  1.00000
 21    ssd   1.70000          osd.21                 up   1.00000  1.00000
 26    ssd   1.70000          osd.26                 up   1.00000  1.00000
 31    ssd   1.70000          osd.31                 up   1.00000  1.00000
 37    ssd   1.70000          osd.37                 up   1.00000  1.00000
 42    ssd   1.70000          osd.42                 up   1.00000  1.00000
 47    ssd   1.70000          osd.47                 up   1.00000  1.00000
 52    ssd   1.70000          osd.52                 up   1.00000  1.00000
  8                0  osd.8                        down   1.00000  1.00000
 11                0  osd.11                       down   1.00000  1.00000
 14                0  osd.14                       down   1.00000  1.00000
 19                0  osd.19                       down   1.00000  1.00000
 24                0  osd.24                       down   1.00000  1.00000
 29                0  osd.29                       down   1.00000  1.00000
 34                0  osd.34                       down   1.00000  1.00000
 39                0  osd.39                       down   1.00000  1.00000
 44                0  osd.44                       down   1.00000  1.00000
 49                0  osd.49                       down   1.00000  1.00000
 54                0  osd.54                       down   1.00000  1.00000
 55                0  osd.55                       down   1.00000  1.00000

Sẽ mất khoảng vài phút để các OSD chuyển từ trạng thái down sang up.

Xem container khởi tạo:

Trên CEPH-LAB-OSD-076 verify container bạn thấy chỉ có 2 container đang chạy. Sau khi các container ở node CEPH-LAB-OSD-076 sẽ được khởi tạo thì OSDs sẽ chuyển sang trạng thái up.

Mỗi OSD sẽ tương ứng với một container chạy riêng biệt.

shell> podman ps
CONTAINER ID  IMAGE                                                                                               COMMAND               CREATED         STATUS             PORTS       NAMES
dac606232957  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n client.crash.C...  21 seconds ago  Up 22 seconds ago              ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-crash-CEPH-LAB-OSD-076
d82852d7529c  10.237.7.74:5000/prometheus/node-exporter:v1.5.0                                                    --no-collector.ti...  18 seconds ago  Up 19 seconds ago              ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-node-exporter-CEPH-LAB-OSD-076

Chờ các OSDs up, bạn hãy quay lại trên Ceph Mon hãy verify osd tree

shell> ceph osd tree
ID   CLASS  WEIGHT    TYPE NAME                  STATUS  REWEIGHT  PRI-AFF
 -6          0.11755  root default
 -5          0.11755      host CEPH-LAB-OSD-076
  8    ssd   0.00980          osd.8                  up   1.00000  1.00000
 11    ssd   0.00980          osd.11                 up   1.00000  1.00000
 14    ssd   0.00980          osd.14                 up   1.00000  1.00000
 19    ssd   0.00980          osd.19                 up   1.00000  1.00000
 24    ssd   0.00980          osd.24                 up   1.00000  1.00000
 29    ssd   0.00980          osd.29                 up   1.00000  1.00000
 34    ssd   0.00980          osd.34                 up   1.00000  1.00000
 39    ssd   0.00980          osd.39                 up   1.00000  1.00000
 44    ssd   0.00980          osd.44                 up   1.00000  1.00000
 49    ssd   0.00980          osd.49                 up   1.00000  1.00000
 54    ssd   0.00980          osd.54                 up   1.00000  1.00000
 55    ssd   0.00980          osd.55                 up   1.00000  1.00000
 -1         74.79987  root ssd-01
 -9         15.29997      host CEPH-LAB-MON-071
 12    ssd   1.70000          osd.12                 up   1.00000  1.00000
 15    ssd   1.70000          osd.15                 up   1.00000  1.00000
 20    ssd   1.70000          osd.20                 up   1.00000  1.00000
 25    ssd   1.70000          osd.25                 up   1.00000  1.00000
 30    ssd   1.70000          osd.30                 up   1.00000  1.00000
 35    ssd   1.70000          osd.35                 up   1.00000  1.00000
 40    ssd   1.70000          osd.40                 up   1.00000  1.00000
 45    ssd   1.70000          osd.45                 up   1.00000  1.00000
 50    ssd   1.70000          osd.50                 up   1.00000  1.00000

<bỏ bớt làm gọn output>

-11         15.29997      host CEPH-LAB-OSD-075
 10    ssd   1.70000          osd.10                 up   1.00000  1.00000
 16    ssd   1.70000          osd.16                 up   1.00000  1.00000
 21    ssd   1.70000          osd.21                 up   1.00000  1.00000
 26    ssd   1.70000          osd.26                 up   1.00000  1.00000
 31    ssd   1.70000          osd.31                 up   1.00000  1.00000
 37    ssd   1.70000          osd.37                 up   1.00000  1.00000
 42    ssd   1.70000          osd.42                 up   1.00000  1.00000
 47    ssd   1.70000          osd.47                 up   1.00000  1.00000
 52    ssd   1.70000          osd.52                 up   1.00000  1.00000

Kiểm tra block device:

Ổ đĩa sẽ được chia nhỏ ra nhiều Logical Volume (LVM) 10GB tương ứng với các OSD.

shell> lsblk
NAME                                                                                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0                                                                                                   7:0    0   62M  1 loop /snap/core20/1587
loop1                                                                                                   7:1    0 79.9M  1 loop /snap/lxd/22923
loop2                                                                                                   7:2    0   47M  1 loop /snap/snapd/16292
sda                                                                                                     8:0    0   50G  0 disk
├─sda1                                                                                                  8:1    0    1M  0 part
├─sda2                                                                                                  8:2    0    2G  0 part /boot
└─sda3                                                                                                  8:3    0   48G  0 part
  └─ubuntu--vg-ubuntu--lv                                                                             253:9    0   48G  0 lvm  /var/lib/containers/storage/overlay
                                                                                                                               /
sdb                                                                                                     8:16   0   30G  0 disk
├─ceph--5c7a266f--823f--43f4--89a6--35b6942bee00-osd--block--00135c7a--b571--4ae0--97f9--f47bd06d37fe 253:0    0   10G  0 lvm
├─ceph--5c7a266f--823f--43f4--89a6--35b6942bee00-osd--block--39e0ac24--545f--4ba3--a966--b7de787e559f 253:1    0   10G  0 lvm
└─ceph--5c7a266f--823f--43f4--89a6--35b6942bee00-osd--block--d4999dab--6ab2--497a--b975--4ee7a31d7534 253:2    0   10G  0 lvm
sdc                                                                                                     8:32   0   30G  0 disk
├─ceph--d4d8a131--9f40--441b--bbb1--7c023ecde921-osd--block--be878e3f--d0ba--4cb6--93da--1898761308e3 253:3    0   10G  0 lvm
├─ceph--d4d8a131--9f40--441b--bbb1--7c023ecde921-osd--block--ce21f4f7--83b5--4a8e--b1a6--6cc0c6d86e27 253:4    0   10G  0 lvm
└─ceph--d4d8a131--9f40--441b--bbb1--7c023ecde921-osd--block--0af72677--d7a5--4eef--b8d9--53c9b74a5d7d 253:5    0   10G  0 lvm
sdd                                                                                                     8:48   0   30G  0 disk
├─ceph--791102db--7222--4743--8d98--991a35b32ef2-osd--block--89f488cb--7afd--4999--907c--c8d158c86958 253:6    0   10G  0 lvm
├─ceph--791102db--7222--4743--8d98--991a35b32ef2-osd--block--5ebd762f--4ed9--416f--9d7b--9c1323300d57 253:7    0   10G  0 lvm
└─ceph--791102db--7222--4743--8d98--991a35b32ef2-osd--block--12c97022--4c16--4190--9c5b--fd138ab261b3 253:8    0   10G  0 lvm
sde                                                                                                     8:64   0   30G  0 disk
├─ceph--76a6e4d9--fa84--4422--b1ca--653f20c9ad29-osd--block--6de3f747--45af--44fc--88d0--b3b4b8d34213 253:10   0   10G  0 lvm
├─ceph--76a6e4d9--fa84--4422--b1ca--653f20c9ad29-osd--block--5ace4739--c84b--429f--ba82--97f3c00cab19 253:11   0   10G  0 lvm
└─ceph--76a6e4d9--fa84--4422--b1ca--653f20c9ad29-osd--block--c862b697--716e--4fc6--b36a--ff7f7c3fdbf0 253:12   0   10G  0 lvm
sr0                                                                                                    11:0    1 1024M  0 rom

Đồng thời bạn cũng sẽ thấy các container đã được tạo hết, mỗi container tương ứng với 1 OSD trên CEPH-LAB-OSD-076.

shell> podman ps
CONTAINER ID  IMAGE                                                                                               COMMAND               CREATED             STATUS                 PORTS       NAMES
dac606232957  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n client.crash.C...  12 minutes ago      Up 12 minutes ago                  ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-crash-CEPH-LAB-OSD-076
d82852d7529c  10.237.7.74:5000/prometheus/node-exporter:v1.5.0                                                    --no-collector.ti...  12 minutes ago      Up 12 minutes ago                  ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-node-exporter-CEPH-LAB-OSD-076
82cf04093471  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.11 -f --se...  8 minutes ago       Up 8 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-11
7db28e34bdd3  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.14 -f --se...  8 minutes ago       Up 8 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-14
fab7b6b3761c  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.19 -f --se...  8 minutes ago       Up 8 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-19
53b26c97e0bd  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.24 -f --se...  7 minutes ago       Up 7 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-24
baaf90079e13  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.29 -f --se...  7 minutes ago       Up 7 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-29
7a5230c98724  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.34 -f --se...  6 minutes ago       Up 6 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-34
3ae34d039170  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.39 -f --se...  5 minutes ago       Up 5 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-39
9725959c9694  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.44 -f --se...  4 minutes ago       Up 4 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-44
2f51f5ca8068  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.49 -f --se...  4 minutes ago       Up 4 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-49
a2ec7472a260  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.54 -f --se...  3 minutes ago       Up 3 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-54
b4d175f996f4  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.55 -f --se...  2 minutes ago       Up 2 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-55
66eae15a0e50  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  -n osd.8 -f --set...  2 minutes ago       Up 2 minutes ago                   ceph-75ac298c-0653-11f0-a2e7-2b96c52a296a-osd-8
3c9c1cdb6d2a  10.237.7.74:5000/ceph/ceph@sha256:479f0db9298e37defcdedb1edb8b8db25dd0b934afd6b409d610a7ed81648dbc  lvm batch --no-au...  About a minute ago  Up About a minute ago              sad_allen

Di chuyển node mới vào root=ssd-01 (CRUSH map)

Move CEPH-LAB-OSD-076 đang ở root default vào root ssd-01. Vì là SSD nên tốc độ recovery rất nhanh có thể ảnh hưởng chung đến băng thông chung của cluster. Nếu bạn muốn kiểm soát reweight thì hãy reweight các OSDs về 0 trước sau đó mới move sang root mong muốn. Sau đó bạn hãy sử dụng script hay cách gì đó mà bạn muốn để kiểm soát reweight.

Lời khuyên là với SSD, nên kiểm soát reweight thủ công để tránh quá tải lúc recovery.

shell> ceph osd crush move CEPH-LAB-OSD-076 root=ssd-01
moved item id -5 name 'CEPH-LAB-OSD-076' to location {root=ssd-01} in crush map

Xác minh lại kết quả ceph osd tree bạn thấy node CEPH-LAB-OSD-076 bây giờ nằm ở root ssd-01.

shell> ceph osd tree
ID   CLASS  WEIGHT    TYPE NAME                  STATUS  REWEIGHT  PRI-AFF
 -6                0  root default
 -1         74.91742  root ssd-01
 -9         15.29997      host CEPH-LAB-MON-071
 12    ssd   1.70000          osd.12                 up   1.00000  1.00000
 15    ssd   1.70000          osd.15                 up   1.00000  1.00000

<bỏ bớt làm gọn output>

 -5          0.11755      host CEPH-LAB-OSD-076
  8    ssd   0.00980          osd.8                  up   1.00000  1.00000
 11    ssd   0.00980          osd.11                 up   1.00000  1.00000
 14    ssd   0.00980          osd.14                 up   1.00000  1.00000
 19    ssd   0.00980          osd.19                 up   1.00000  1.00000
 24    ssd   0.00980          osd.24                 up   1.00000  1.00000
 29    ssd   0.00980          osd.29                 up   1.00000  1.00000
 34    ssd   0.00980          osd.34                 up   1.00000  1.00000
 39    ssd   0.00980          osd.39                 up   1.00000  1.00000
 44    ssd   0.00980          osd.44                 up   1.00000  1.00000
 49    ssd   0.00980          osd.49                 up   1.00000  1.00000
 54    ssd   0.00980          osd.54                 up   1.00000  1.00000
 55    ssd   0.00980          osd.55                 up   1.00000  1.00000

Kiểm tra daemon

shell> ceph orch ps CEPH-LAB-OSD-076
NAME                            HOST              PORTS   STATUS         REFRESHED  AGE  MEM USE  MEM LIM  VERSION  IMAGE ID      CONTAINER ID
crash.CEPH-LAB-OSD-076          CEPH-LAB-OSD-076          running (19m)    18s ago  19m    7554k        -  18.2.4   2bc0b0f4375d  dac606232957
node-exporter.CEPH-LAB-OSD-076  CEPH-LAB-OSD-076  *:9112  running (19m)    18s ago  19m    8711k        -  1.5.0    0da6a335fe13  d82852d7529c
osd.8                           CEPH-LAB-OSD-076          running (9m)     18s ago   9m    43.8M    4096M  18.2.4   2bc0b0f4375d  66eae15a0e50
osd.11                          CEPH-LAB-OSD-076          running (16m)    18s ago  16m    55.9M    4096M  18.2.4   2bc0b0f4375d  82cf04093471
osd.14                          CEPH-LAB-OSD-076          running (15m)    18s ago  15m    50.4M    4096M  18.2.4   2bc0b0f4375d  7db28e34bdd3
osd.19                          CEPH-LAB-OSD-076          running (15m)    18s ago  15m    49.3M    4096M  18.2.4   2bc0b0f4375d  fab7b6b3761c
osd.24                          CEPH-LAB-OSD-076          running (14m)    18s ago  14m    50.0M    4096M  18.2.4   2bc0b0f4375d  53b26c97e0bd
osd.29                          CEPH-LAB-OSD-076          running (14m)    18s ago  14m    48.5M    4096M  18.2.4   2bc0b0f4375d  baaf90079e13
osd.34                          CEPH-LAB-OSD-076          running (14m)    18s ago  14m    49.3M    4096M  18.2.4   2bc0b0f4375d  7a5230c98724
osd.39                          CEPH-LAB-OSD-076          running (12m)    18s ago  12m    45.5M    4096M  18.2.4   2bc0b0f4375d  3ae34d039170
osd.44                          CEPH-LAB-OSD-076          running (11m)    18s ago  11m    45.9M    4096M  18.2.4   2bc0b0f4375d  9725959c9694
osd.49                          CEPH-LAB-OSD-076          running (11m)    18s ago  11m    45.7M    4096M  18.2.4   2bc0b0f4375d  2f51f5ca8068
osd.54                          CEPH-LAB-OSD-076          running (11m)    18s ago  11m    45.1M    4096M  18.2.4   2bc0b0f4375d  a2ec7472a260
osd.55                          CEPH-LAB-OSD-076          running (10m)    18s ago  10m    44.2M    4096M  18.2.4   2bc0b0f4375d  b4d175f996f4

Trạng thái chung cluster để xác nhận các container OSD, crash và node-exporter đang running.

shell> ceph -s
  cluster:
    id:     75ac298c-0653-11f0-a2e7-2b96c52a296a
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum CEPH-LAB-MON-071,CEPH-LAB-MON-073,CEPH-LAB-MON-072 (age 3w)
    mgr: CEPH-LAB-MON-072.agtskh(active, since 2d), standbys: CEPH-LAB-MON-071.lyxipt, CEPH-LAB-MON-073.holphb
    osd: 56 osds: 56 up (since 5m), 56 in (since 5m)

  data:
    pools:   1 pools, 1 pgs
    objects: 2 objects, 449 KiB
    usage:   32 GiB used, 528 GiB / 560 GiB avail
    pgs:     1 active+clean

5. Ưu và nhược điểm của cách triển khai này.

Ưu điểm

  • Tự động hóa cao: cephadm giúp quản lý OSD container nhanh chóng và dễ theo dõi.
  • Dễ mở rộng: Thêm node mới mà không cần thay đổi nhiều cấu hình.
  • Khả năng kiểm soát: Có thể kiểm soát việc lên lịch OSD thông qua labels (_no_schedule).

Nhược điểm

  • Tốn thời gian khởi tạo container nếu tài nguyên node yếu.
  • Việc reweight tự động có thể ảnh hưởng hiệu năng nếu không kiểm soát.
  • Phụ thuộc nhiều vào hệ thống mạng và thời gian đồng bộ.

Lời khuyên

  • Luôn kiểm tra kỹ ceph -s trước và sau mỗi hành động.
  • Zap ổ đĩa sạch sẽ trước khi đưa vào cluster.
  • Luôn theo dõi podman psceph osd tree để biết tiến trình hoạt động.
  • Với node SSD, kiểm soát reweight thủ công nếu cluster đang chạy workloads lớn.
  • Sử dụng công cụ giám sát Prometheus/Grafana để quan sát hiệu năng sau khi thêm OSDs.

Sơ đồ minh họa

+--------------------+         +------------------+
| CEPH-MON-NODE(s)   | <-----> | CEPH-MGR         |
| (Monitors quorum) |         +------------------+
+--------------------+                  |
                                        |
                                        v
                           +------------------------+
                           | CEPH-OSD-NODE(s)       |
                           |  (containerized OSDs)  |
                           +------------------------+

OSD Node 076:
  /dev/sdb -> 3x 10G LVM -> osd.8, osd.11, osd.14
  /dev/sdc -> 3x 10G LVM -> osd.19, osd.24, osd.29
  ...

6. Kết luận

Việc thêm node OSD mới vào Ceph cluster sử dụng cephadm là một quy trình rõ ràng, dễ kiểm soát và có thể tự động hóa. Tuy nhiên, cần tuân thủ nghiêm ngặt các bước chuẩn bị như zap ổ đĩa, kiểm tra thời gian, xác minh cấu hình mạng và đảm bảo các container khởi tạo đúng đắn. Khi thực hiện đúng, bạn có thể mở rộng dung lượng Ceph một cách mượt mà và không ảnh hưởng đến hoạt động hiện tại.

Bạn có thể sử dụng nội dung này như một cheatsheet khi triển khai node mới hoặc viết thành script tự động hóa tùy theo môi trường production.

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email