Ceph Orchestrator를 사용한 osd disk 추가/삭제

beomjin·2024년 12월 14일

Ceph orchestrator를 사용하면 손 쉬운 osd 추가/삭제를 진행할 수 있다.
Ref :: https://docs.ceph.com/en/reef/rados/operations/add-or-rm-osds/
다만 docs에서 설명하는 문서를 보면 osd 추가/삭제는 번거로운것으로 보인다.

osd service만 수정하면 손쉽게 진행할 수 있을 것 같다.

osd 추가

$ vi osd.yml
service_type: osd
service_name: osd
placement:
  hosts:
  - test-ceph-01
spec:
  data_devices:
    paths:
      - /dev/vda
      - /dev/vdb
      - /dev/vdc
      - /dev/vdd
      - /dev/vde
      - /dev/vdf
      - /dev/vdg
+     - /dev/vdh
  filter_logic: AND
  objectstore: bluestore
 
$ sudo  ceph orch apply -i osd.yml

일정 시간뒤에 자동으로 osd disk로 vdh가 합류하게된다.

$ lsblk
NAME                                                                                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                                                     8:0    0  100G  0 disk
└─sda1                                                                                                  8:1    0  100G  0 part /
sr0                                                                                                    11:0    1 1024M  0 rom
vda                                                                                                   253:0    0   50G  0 disk
└─ceph--b8f83a99--c7d3--41b1--89c3--2a1e2f8faa22-osd--block--3a2dc126--720f--4845--a93e--537b138596ea 252:0    0   50G  0 lvm
vdb                                                                                                   253:16   0   50G  0 disk
└─ceph--800f9575--c4b9--416f--878e--32cc9d8e9f39-osd--block--f744fcae--fe1a--4995--ac13--7d5e1328fc76 252:1    0   50G  0 lvm
vdc                                                                                                   253:32   0   50G  0 disk
└─ceph--a25ae093--5d0b--44bf--992c--71e90e37d1f9-osd--block--43604a92--ed3d--4cda--895e--9a4fc2752d2e 252:2    0   50G  0 lvm
vdd                                                                                                   253:48   0   50G  0 disk
└─ceph--b7583346--3bfb--4c5d--b3a4--5526e4d9efc1-osd--block--1f831518--931f--4710--9a50--436230255eec 252:3    0   50G  0 lvm
vde                                                                                                   253:64   0   50G  0 disk
└─ceph--9141e5a3--2cd1--412f--ba25--0aa5ccf584ab-osd--block--35aed74c--20b7--42c2--bbd4--79764c4de288 252:4    0   50G  0 lvm
vdf                                                                                                   253:80   0   50G  0 disk
└─ceph--617d5492--9ea6--46fd--9749--5b324c4693aa-osd--block--d76453ab--1b21--402c--855d--fcfc9d0496e1 252:5    0   50G  0 lvm
vdg                                                                                                   253:96   0   50G  0 disk
└─ceph--ce784432--e8d1--403b--9c40--57059edc0094-osd--block--b9aa26b6--174f--432b--8a09--94af8babd94d 252:6    0   50G  0 lvm
vdh                                                                                                   253:112  0   50G  0 disk
└─ceph--cf054f6d--b31b--4113--9c07--0cbc9e01727a-osd--block--e867d7ec--8acd--466e--96a3--e641761ead0f 252:7    0   50G  0 lvm

osd 수동 삭제

osd 수동삭제는 조금 확인이 필요한 부분이있다.
ceph 용량이라던가, osd id라던가 하는 등 추가보다는 확인을 잘 해야한다.

 sudo ceph orch device ls
HOST            PATH      TYPE  DEVICE ID   SIZE  AVAILABLE  REFRESHED  REJECT REASONS
test-ceph-01  /dev/vda  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdb  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdc  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
r4test-ceph-01  /dev/vdd  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vde  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdf  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdg  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vd1h  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected

ceph 상태

$ sudo ceph -s
  cluster:
    id:     96e527dc-b6b9-11ef-baef-525400baaf43
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum test-ceph-01 (age 46h)
    mgr: test-ceph-01.fsdjzy(active, since 46h)
    osd: 8 osds: 8 up (since 46h), 8 in (since 46h)
    rgw: 1 daemon active (1 hosts, 1 zones)
 
  data:
    pools:   10 pools, 289 pgs
    objects: 4.91k objects, 16 GiB
    usage:   38 GiB used, 361 GiB / 400 GiB avail
    pgs:     289 active+clean
 
  io:
    client:   36 KiB/s wr, 0 op/s rd, 6 op/s wr
 
[clex@test-ceph-01 ~]$ sudo ceph osd status
ID  HOST             USED  AVAIL  WR OPS  WR DATA  RD OPS  RD DATA  STATE
 0  test-ceph-01  6719M  43.4G      0     3276       0        0   exists,up
 1  test-ceph-01  7404M  42.7G      0     3276       0        0   exists,up
 2  test-ceph-01  5101M  45.0G      0        0       0        0   exists,up
 3  test-ceph-01  5598M  44.5G      0     4096       0        0   exists,up
 4  test-ceph-01  5294M  44.8G     16      122k      0        0   exists,up
 5  test-ceph-01  3493M  46.5G      0        0       0        0   exists,up
 6  test-ceph-01  4786M  45.3G      1     4096       0        0   exists,up
 7  test-ceph-01  2785M  45.3G      1        0       0        0   exists,up

우선, osd disk의 id를 알아보자.

$ sudo ceph osd metadata -f plain

해당 명령어를 확인해보면, osd metadata를 볼 수 있으며, 각 osd별로 disk의 by-path와 osd id를 확인할 수 있다.
예시로 보면,

$ sudo ceph osd metadata -f plain
[
   {
       "id": 0,
       "arch": "x86_64",
       "back_addr": "[v2:10.3.3.175:6804/2637066776,v1:10.3.3.175:6805/2637066776]",
       "back_iface": "",
       "bluefs": "1",
       "bluefs_dedicated_db": "0",
       "bluefs_dedicated_wal": "0",
       "bluefs_single_shared_device": "1",
       "bluestore_bdev_access_mode": "blk",
       "bluestore_bdev_block_size": "4096",
       "bluestore_bdev_dev_node": "/dev/dm-0",
       "bluestore_bdev_devices": "vda",
       "bluestore_bdev_driver": "KernelDevice",
       "bluestore_bdev_optimal_io_size": "0",
       "bluestore_bdev_partition_path": "/dev/dm-0",
       "bluestore_bdev_rotational": "1",
       "bluestore_bdev_size": "53682896896",
       "bluestore_bdev_support_discard": "0",
       "bluestore_bdev_type": "hdd",
       "bluestore_min_alloc_size": "4096",
       "ceph_release": "reef",
       "ceph_version": "ceph version 18.2.1 (7fe91d5d5842e04be3b4f514d6dd990c54b29c76) reef (stable)",
       "ceph_version_short": "18.2.1",
       "ceph_version_when_created": "ceph version 18.2.1 (7fe91d5d5842e04be3b4f514d6dd990c54b29c76) reef (stable)",
       "container_hostname": "r4test-ceph-01",
       "container_image": "10.3.2.170:5000/ceph/ceph@sha256:edd0962107069962a0b73efb38afc9f2577518eb2bf4bfa1981aefac034d357b",
       "cpu": "Intel Core Processor (Skylake, IBRS)",
       "created_at": "2024-12-10T05:44:42.322990Z",
       "default_device_class": "hdd",
       "device_ids": "",
       "device_paths": "vda=/dev/disk/by-path/pci-0000:00:0a.0",
       "devices": "vda",
       "distro": "centos",
       "distro_description": "CentOS Stream 8",
       "distro_version": "8",
       "front_addr": "[v2:10.3.3.175:6802/2637066776,v1:10.3.3.175:6803/2637066776]",
       "front_iface": "",
       "hb_back_addr": "[v2:10.3.3.175:6808/2637066776,v1:10.3.3.175:6809/2637066776]",
       "hb_front_addr": "[v2:10.3.3.175:6806/2637066776,v1:10.3.3.175:6807/2637066776]",
       "hostname": "r4test-ceph-01",
       "journal_rotational": "1",
       "kernel_description": "#1 SMP Thu Aug 8 17:47:08 UTC 2024",
       "kernel_version": "4.18.0-553.16.1.el8_10.x86_64",
       "mem_swap_kb": "0",
       "mem_total_kb": "15751292",
       "network_numa_unknown_ifaces": "back_iface,front_iface",
       "objectstore_numa_unknown_devices": "vda",
       "os": "Linux",
       "osd_data": "/var/lib/ceph/osd/ceph-0",
       "osd_objectstore": "bluestore",
       "osdspec_affinity": "None",
       "rotational": "1"
   },
   {
       "id": 1,
       "arch": "x86_64",
...

이런식으로 나온다.

나는 vdh를 지우기위해 이렇게 진행하였다.

## 제거하려는 osd cluster out
$ sudo ceph osd out {osd id}
###예시
$ sudo ceph osd out 7
marked out osd.7.
 
## 제거하려는 osd crush map 제거
$ sudo ceph osd crush remove osd.{osd id}
###예시
$ sudo ceph osd crush remove osd.7
removed item id 7 name 'osd.7' from crush map
 
## 제거하려는 osd stop
$ sudo ceph osd stop {osd id}
##예시
$ sudo ceph osd stop 7
stop osd.7.
 
## osd 제거
$ sudo ceph osd purge {osd id} --yes-i-really-mean-it
###예시
$ sudo ceph osd purge 7 --yes-i-really-mean-it
purged osd.7

이제 ceph 상태를 확인해보면 이렇게 나온다.

$ sudo ceph -s
  cluster:
    id:     2a6a8300-b8f7-11ef-b34a-525400baaf43
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum test-ceph-01 (age 2h)
    mgr: test-ceph-01.edktgu(active, since 2h)
    osd: 15 osds: 15 up (since 19s), 15 in (since 44s)
    rgw: 1 daemon active (1 hosts, 1 zones)
 
  data:
    pools:   9 pools, 257 pgs
    objects: 227 objects, 582 KiB
    usage:   1.1 GiB used, 749 GiB / 750 GiB avail
    pgs:     257 active+clean
 
$ sudo ceph orch device ls
HOST            PATH      TYPE  DEVICE ID   SIZE  AVAILABLE  REFRESHED  REJECT REASONS
test-ceph-01  /dev/vda  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdb  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
r4test-ceph-01  /dev/vdc  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdd  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vde  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdf  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
test-ceph-01  /dev/vdg  hdd              50.0G  No         12m ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected

0개의 댓글