CephFS OSDs
https://ceph.readthedocs.io/en/latest/start/intro/
によれば
「A Ceph OSD (object storage daemon, ceph-osd) stores data, handles data replication, recovery, rebalancing,
and provides some monitoring information to Ceph Monitors and Managers by checking other Ceph OSD Daemons for a heartbeat.」
とあり他のOSDノードと連携してデータの保存、レプリケーション、リカバリ、リバランスを行う.
こちらも「At least 3 Ceph OSDs are normally required for redundancy and high availability.」とあり運用時は3台以上必要.
望ましい構成 †
RedHat/SUSEのドキュメントを読むと
- 1OSDは1HDD
- OSDはプライマリーストレージデバイス、WAL(write-ahead-log)デバイス、DB(RocksDB)デバイスで構成可能
- OSDの1TB毎に10GBのDBデバイス
- OSDのサイズに関係なく500MB〜2GBのWALデバイス
- DBデバイスとWALデバイスは同じデバイスで共有可能(AHCI/NVMe SSD)
- RAIDカードはRAID機能を使わずに個別デバイスとして認識させライトバックキャッシングを活用なら可

12slotなマシンでRAIDカードですべてを繋ぎOSの2つはRAID1構成であとは個別デバイスとして認識させる
SSDはsas3 ssdとかで2つ. 一つは左側4つのHDD、もう一つは右側4つのHDDを担当.
OSDは1TB:10GBのDBデバイスとなるので、18TBなら1HDDで180GBのSSD容量が必要. 4HDDなので4*180=720GB.
SSDは容量いっぱい使わない方がいいので 1TBか1.2TBがあれば十分かと.
- 少なくともOSDノードは4つ揃えて、1ノードに8個のOSD(SUSE)
https://docs.ceph.com/en/latest/start/hardware-recommendations/#data-storage
https://documentation.suse.com/ja-jp/ses/5.5/html/ses-all/storage-bp-hwreq.html#rec-waldb-size
https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/4/html/hardware_guide/avoid-using-raid-solutions_hw
ここでは検証目的なのでOSD3ノードで、1ノードに1OSDです.
Bluestore, Filestore †
以前はxfsでフォーマットされたファイルシステムにOSDを展開していましたが、
今はHDD/ssdをそのままrawデバイスとして扱う方法Bluesotreが既定になりました.
Bluesotreだからではないけど、OSDにデータを収めるHDDとメタデータ、キャッシュとして使用するSSD/NVMeを指定することができる.
この時のSSD/NVMeはパーティションを切るか、LVMで切り出してもいいみたい
構築 †
まずmonitor の /etc/ceph/ceph.conf と /etc/ceph/ceph.client.admin.keyring を osd へ運びます
[root@mgr ~]# scp /etc/ceph/ceph.conf root@osd1:/etc/ceph/ceph.conf
[root@mgr ~]# scp /etc/ceph/ceph.client.admin.keyring root@osd1:/etc/ceph/ceph.client.admin.keyring
そして
[root@mgr ~]# ssh -l root osd1
[root@osd1 ~]# ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
[root@osd1 ~]# chown -R ceph:ceph /etc/ceph
[root@osd1 ~]# chown -R ceph:ceph /var/lib/ceph
と準備を整えて、
まずはOSDとして供出するデバイスの確認します. ここでは /dev/sdb を供出します.
[root@osd1 ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 1048576 sda1
8 2 7339008 sda2
8 16 104857600 sdb
8 32 104857600 sdc
11 0 4601856 sr0
253 0 6496256 dm-0
253 1 839680 dm-1
[root@osd1 ~]#
なので
[root@osd1 ~]# ceph-volume lvm create --bluestor --data /dev/sdb
:
(略
:
Running command: /usr/bin/systemctl start ceph-osd@0
--> ceph-volume lvm activate successful for osd ID: 0
--> ceph-volume lvm create successful for: /dev/sdb
[root@osd1 ~]#
(確認)
[root@osd1 ~]# ceph-volume lvm list
====== osd.0 =======
[block] /dev/ceph-13b7fc64-3f24-4a72-a15c-3e21c9c6dfec/osd-block-5ed10301-9d33-4ab8-8e5b-0a8f9bd16bea
block device /dev/ceph-13b7fc64-3f24-4a72-a15c-3e21c9c6dfec/osd-block-5ed10301-9d33-4ab8-8e5b-0a8f9bd16bea
block uuid dcHqpu-yP9U-0Q2o-YUVF-q27i-elQ4-d5Cfu7
cephx lockbox secret
cluster fsid 95f5eb4a-2ea2-4539-b0a3-bda3b6358ba5
cluster name ceph
crush device class None
encrypted 0
osd fsid 5ed10301-9d33-4ab8-8e5b-0a8f9bd16bea
osd id 0
osdspec affinity
type block
vdo 0
devices /dev/sdb
[root@osd1 ~]#
同様の操作を osd2, osd3 にも行う.
monitor側では †
osd1、osd2、osd3をOSDとして組み込んで「ceph -s」で確認すると下記のようになる.
[root@mgr ~]# ceph -s
cluster:
id: 95f5eb4a-2ea2-4539-b0a3-bda3b6358ba5
health: HEALTH_WARN
Module 'restful' has failed dependency: No module named 'pecan'
services:
mon: 3 daemons, quorum mgr,mon1,mon2 (age 41h)
mgr: mgr(active, since 40h)
osd: 3 osds: 3 up (since 23h), 3 in (since 23h)
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 48 TiB / 48 TiB avail
pgs: 1 active+clean
[root@mgr ~]#
[root@mgr ~]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 48.00000 root default
-3 16.00000 host osd1
0 hdd 16.00000 osd.0 up 1.00000 1.00000
-5 16.00000 host osd2
1 hdd 16.00000 osd.1 up 1.00000 1.00000
-7 16.00000 host osd3
2 hdd 16.00000 osd.2 up 1.00000 1.00000
[root@mgr ~]#
OSDの追加/削除 †
https://docs.ceph.com/docs/mimic/rados/operations/add-or-rm-osds/
HDDが不良の際 †
https://docs.ceph.com/en/latest/rados/operations/add-or-rm-osds/#replacing-an-osd
とか
https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/4/html/operations_guide/replacing-an-osd-drive-while-retaining-the-osd-id_ops