※RAMディスクを利用しているため、サーバ強制停止後は基本的にLVMが壊れています。
下記でramdisk作成、opencasで/dev/ceph/lvをキャッシュするように設定している。
modprobe brd rd_size=8192000 casadm -S -i 1 -d /dev/ram1 -c wb casadm -A -i 1 -d /dev/ceph/lv
上記の設定で下記のLVMが見えているはず
[root@ceph001 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert rocksdb cas -wi-ao---- <200.00g waldb cas -wi-ao---- 2.00g home centos -wi-ao---- <779.45g root centos -wi-ao---- 50.00g swap centos -wi-ao---- <7.88g lv ceph -wi-ao---- 202.00g osd ceph -wi-ao---- <10.45t
LVMが見えると、ceph-volume lvm listでリストが見える。
[root@ceph005 ~]# ceph-volume lvm list ====== osd.3 ======= [db] /dev/cas/rocksdb block device /dev/ceph/osd block uuid Hq1Za9-hglA-4O2Z-YIgG-nB9k-xoep-Ah7nu0 cephx lockbox secret cluster fsid 68be67b9-b1a6-411e-8b65-c29c23a7968a cluster name ceph crush device class None db device /dev/cas/rocksdb db uuid V1FXMK-ceJQ-loMb-n2oO-7kPh-kITD-ivaVSy encrypted 0 osd fsid 7b03b099-c6bb-47b7-b010-143799410dda osd id 3 type db vdo 0 wal device /dev/cas/waldb wal uuid f0EUdc-V2c2-O8NM-nnE3-2xQn-2Mht-UXgsIo devices /dev/cas1-1 [wal] /dev/cas/waldb block device /dev/ceph/osd block uuid Hq1Za9-hglA-4O2Z-YIgG-nB9k-xoep-Ah7nu0 cephx lockbox secret cluster fsid 68be67b9-b1a6-411e-8b65-c29c23a7968a cluster name ceph crush device class None encrypted 0 osd fsid 7b03b099-c6bb-47b7-b010-143799410dda osd id 3 type wal vdo 0 wal device /dev/cas/waldb wal uuid f0EUdc-V2c2-O8NM-nnE3-2xQn-2Mht-UXgsIo devices /dev/cas1-1 [block] /dev/ceph/osd block device /dev/ceph/osd block uuid Hq1Za9-hglA-4O2Z-YIgG-nB9k-xoep-Ah7nu0 cephx lockbox secret cluster fsid 68be67b9-b1a6-411e-8b65-c29c23a7968a cluster name ceph crush device class None db device /dev/cas/rocksdb db uuid V1FXMK-ceJQ-loMb-n2oO-7kPh-kITD-ivaVSy encrypted 0 osd fsid 7b03b099-c6bb-47b7-b010-143799410dda osd id 3 type block vdo 0 wal device /dev/cas/waldb wal uuid f0EUdc-V2c2-O8NM-nnE3-2xQn-2Mht-UXgsIo devices /dev/sdb
もしも、rocksdb/waldb/osdなど壊れてなければ、このままOSDをactivateすれば再同期されます。
ceph-volume lvm activate {ID} {FSID}
ceph-volume lvm activate 3 7b03b099-c6bb-47b7-b010-143799410dda
tailf /var/log/ceph/ceph-osd.3.log
データが壊れていて、OSDが同期できない状態の場合は、全てデータを消してネットワーク越しに再同期します。
# lvremote /dev/ceph/osd # lvremote /dev/cas/rocksdb # lvremote /dev/cas/waldb # lvcreate -l 100%free -n osd ceph # lvcreate -L 2G -n waldb cas # lvcreate -l 100%free -n rocksdb cas
ID 3を想定して記載
[root@ceph005 ~]# ceph osd status +----+---------+-------+-------+--------+---------+--------+---------+----------------+ | id | host | used | avail | wr ops | wr data | rd ops | rd data | state | +----+---------+-------+-------+--------+---------+--------+---------+----------------+ | 0 | ceph001 | 3060G | 7835G | 14 | 388k | 0 | 0 | exists,up | | 1 | ceph002 | 3285G | 7610G | 22 | 1382k | 2 | 1638 | exists,up | | 2 | ceph004 | 2882G | 8014G | 16 | 485k | 2 | 0 | exists,up | | 3 | ceph005 | 0 | 0 | 3 | 49.6k | 0 | 0 | autoout,exists | | 4 | ceph006 | 2815G | 8080G | 9 | 450k | 2 | 825 | exists,up | | 5 | ceph003 | 3360G | 7536G | 29 | 593k | 2 | 4096 | exists,up | +----+---------+-------+-------+--------+---------+--------+---------+----------------+
下記のコマンドでOSDの「3」が消えます。
# OSD=3 # ceph osd out osd.$OSD # ceph osd crush remove osd.$OSD # ceph auth del osd.$OSD # ceph osd down osd.$OSD # ceph osd rm $OSD
# ceph-volume lvm prepare --bluestore --data /dev/ceph/osd --block.db cas/rocksdb --block.wal cas/waldb
# systemctl reset-failed ceph-osd@3 # systemctl start ceph-osd@3