Thank you for reading this post, don't forget to subscribe!
Создание и монтирование файловой системы Ceph
- Создайте MDS (сервер метаданных) на узле, для которого вы хотите установить MDS.
Выполнять необходимо из директории с конфигурацией Ceph.
ceph-deploy mds create swarm_node1_183
ceph-deploy mds create swarm_node2_184
ceph-deploy mds create swarm_node3_185
- Создайте как минимум 2 пула RADOS на узле MDS и активируйте сервер MetaData. Для pg_num, который указан в конце команды создания, обратитесь к официальному документу и выберите соответствующее значение.
# create pools
[root@swarm_node1_183~]$ ceph osd pool create cephfs_data 128
pool 'cephfs_data' created
[root@swarm_node1_183~]$ ceph osd pool create cephfs_metadata 128
pool 'cephfs_metadata' created
# enable pools (включаем пул)
[root@swarm_node1_183~]$ ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1
# show list
[root@swarm_node1_183~]$ ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
[root@swarm_node1_183 ~]$ ceph mds stat
e4: 1/1/1 up {0=node01=up:creating}
- Смонтируйте CephFS на клиенте.
Создадим директорию:
mkdir /ceph-DATA
Cкопируем secret из файла:
cat /etc/ceph/ceph.client.admin.keyring
и выполним следующую команду:
mount -t ceph swarm_node1_183:/ /ceph-DATA -o name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==
на тачках swarm_node2_184 и swarm_node3_185 выполняем тоже самое:
[root@swarm_node2_184 ~]# mount -t ceph swarm_node2_184:/ /ceph-DATA -o name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==[root@ swarm_node3_185 ~]# mount -t ceph swarm_node3_185:/ /ceph-DATA -o name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==[root@swarm_master1_180 ~]# mount -t ceph swarm_node2_184:/ /ceph-DATA -o name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==[root@swarm_master2_181 ~]# mount -t ceph swarm_node2_184:/ /ceph-DATA -o name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==[root@swarm_master3_182 ~]# mount -t ceph swarm_node2_184:/ /ceph-DATA -o name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==
1 2 3 4 5 6 7 8 9 10 11 12 |
<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">Проверяем место у ceph</span> [root@swarm_master1_180 ~]# ceph df GLOBAL: SIZE AVAIL RAW USED %RAW USED 14 GiB 9.7 GiB 4.3 GiB 30.86 POOLS: NAME ID USED %USED MAX AVAIL OBJECTS rbd 1 385 MiB 11.96 2.8 GiB 142 cephfs_data 2 0 B 0 2.8 GiB 0 cephfs_metadata 3 3.8 KiB 0 2.8 GiB 22 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@swarm_master1_180 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 2.0G 52M 1.8G 3% / devtmpfs 908M 0 908M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8.7M 911M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/mapper/centos-usr 4.5G 1.7G 2.6G 40% /usr /dev/sda1 477M 139M 309M 32% /boot /dev/mapper/centos-home 976M 2.8M 906M 1% /home /dev/mapper/centos-var 9.4G 2.5G 6.5G 28% /var tmpfs 184M 0 184M 0% /run/user/0 overlay 9.4G 2.5G 6.5G 28% /var/lib/docker/overlay2/d0e97600a5b95e592ff4a1707c3c23cdd4f31debe838c1499f0b4ab7f1a2e862/merged overlay 9.4G 2.5G 6.5G 28% /var/lib/docker/overlay2/0240d8ca4e6c6eea7f4d071d7a125961a976e7ccbb7bf7d26df900614efce660/merged /dev/rbd0 5.8G 67M 5.5G 2% /var/lib/docker/plugins/11af5d998f7e78a3935dd3e1c5792de2fddf58cc1dfcc8a746bdba45e2e93a0f/propagated-mount/volumes/swarmpit_influx-data <strong>192.168.1.183:/ 2.8G 0 2.8G 0% /ceph-DATA</strong> |
Как видим,доступный объём 2.8 Gb, теперь мы можем добавлять данные в директорию /ceph-DATA и они будут доступны на всех нодах
Чтобы данный раздел монтировался автоматически при перезагрузке(на клиентах), посмотрим secretkey в файле:
[root@swarm_master1_180 ~]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
и добавим в файл: /etc/fstab следующую запись:
1 |
192.168.1.183:6789:/ /ceph-DATA ceph name=admin,secret=<strong>AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==</strong>,_netdev,noatime 0 2 |
На мастерах соответственно:
[root@swarm_node1_183 ~]# cat /etc/fstab | grep ceph-DATA
192.168.1.183:6789:/ /ceph-DATA ceph name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==,_netdev,noatime 0 2
[root@swarm_node2_184 ~]# cat /etc/fstab | grep ceph-DATA
192.168.1.184:6789:/ /ceph-DATA ceph name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==,_netdev,noatime 0 2
[root@swarm_node3_185 ~]# cat /etc/fstab | grep ceph-DATA
192.168.1.185:6789:/ /ceph-DATA ceph name=admin,secret=AQD++lxdDfy/BRAA6QEzEanMTxw92eS2HfNW/g==,_netdev,noatime 0 2
Готово, теперь в директории /ceph-DATA данные будут реплицироваться между нодами.
Расширяем доступный дисковый объём:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
[root@swarm_master1_180 ~]# ceph df GLOBAL: SIZE AVAIL RAW USED %RAW USED 14 GiB 9.7 GiB 4.3 GiB 30.59 POOLS: NAME ID USED %USED MAX AVAIL OBJECTS rbd 1 400 MiB 12.30 2.8 GiB 150 cephfs_data 2 0 B 0 2.8 GiB 0 cephfs_metadata 3 7.9 KiB 0 2.8 GiB 22 [root@swarm_master1_180 ~]# ceph osd df ID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS 0 hdd 0.00389 1.00000 4 GiB 1.4 GiB 2.6 GiB 35.64 1.17 224 1 hdd 0.00490 1.00000 5 GiB 1.4 GiB 3.6 GiB 28.51 0.93 224 2 hdd 0.00490 1.00000 5 GiB 1.4 GiB 3.6 GiB 28.63 0.94 224 TOTAL 14 GiB 4.3 GiB 9.7 GiB 30.59 MIN/MAX VAR: 0.93/1.17 STDDEV: 3.35 [root@swarm_master1_180 ~]# ssh swarm_node1_183 Last login: Sat Sep 28 13:57:45 2019 from swarm_master1_180 [root@swarm_node1_183 ~]# pvscan PV /dev/sdb VG vg-ceph lvm2 [<10.00 GiB / <6.00 GiB free] PV /dev/sda2 VG centos lvm2 [14.32 GiB / 12.00 MiB free] Total: 2 [24.32 GiB] / in use: 2 [24.32 GiB] / in no VG: 0 [0 ] [root@swarm_node1_183 ~]# lvscan ACTIVE '/dev/vg-ceph/ceph' [4.00 GiB] inherit ACTIVE '/dev/centos/root' [2.00 GiB] inherit ACTIVE '/dev/centos/home' [1.00 GiB] inherit ACTIVE '/dev/centos/var' [<4.66 GiB] inherit ACTIVE '/dev/centos/usr' [<4.66 GiB] inherit ACTIVE '/dev/centos/swap' [2.00 GiB] inherit inherit [root@swarm_node1_183 ~]# <strong>lvextend -L +2G /dev/vg-ceph/ceph</strong> Size of logical volume vg-ceph/ceph changed from 4.00 GiB (1024 extents) to 6.00 GiB (1536 extents). Logical volume vg-ceph/ceph successfully resized. [root@swarm_node2_184 ~]# lvextend -L +2G /dev/vg-ceph/ceph Size of logical volume vg-ceph/ceph changed from 5.00 GiB (1280 extents) to 7.00 GiB (1792 extents). Logical volume vg-ceph/ceph successfully resized. [root@swarm_node3_185 ~]# lvextend -L +2G /dev/vg-ceph/ceph Size of logical volume vg-ceph/ceph changed from 5.00 GiB (1280 extents) to 7.00 GiB (1792 extents). Logical volume vg-ceph/ceph successfully resized. далее расширяем раздел, но если это не удаётся со следующей ошибкой: <strong>resize2fs /dev/vg-ceph/ceph</strong> resize2fs 1.42.9 (28-Dec-2013) resize2fs: Bad magic number in super-block while trying to open /dev/vg-ceph/ceph Couldn't find valid filesystem superblock. |
после чего перезапускаем все сервисы на нодах:
systemctl restart ceph\*.service
systemctl restart ceph\*.target
возможно потребуется ребутнуть тачки:
reboot
обязательно после перезагузок ждём когда восстановится ceph кластер и проверяем:
[root@swarm_node2_184 ~]# ceph health
HEALTH_OK
1 2 3 4 5 6 |
<span class="c1"># Set a new quota to 5GB</span> <strong>ceph osd pool set-quota NAME max_bytes <span class="k">$((</span><span class="m">5</span> <span class="o">*</span> <span class="m">1024</span> <span class="o">*</span> <span class="m">1024</span> <span class="o">*</span> <span class="m">1024</span><span class="k">))</span></strong> <span class="c1"># Remove quota</span> <strong>ceph osd pool set-quota NAME max_bytes <span class="m">0 </span></strong> |
[root@swarm_node1_183 ~]# ceph osd pool set-quota cephfs_data max_bytes 0
[root@swarm_node1_183 ~]# ceph osd pool set-quota cephfs_data max_objects 0
[root@swarm_node1_183 ~]# ceph osd pool get-quota cephfs_data
quotas for pool 'cephfs_data':
max objects: N/A
max bytes : N/A
Меняем уровень репликации с 3х на 2:
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@swarm_node1_183 ~]# <strong>ceph osd dump | grep -i pool</strong> pool 1 'rbd' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 1387 flags hashpspool,full,selfmanaged_snaps stripe_width 0 application rbd pool 2 <strong>'cephfs_data' replicated size 3 min_size 1</strong> crush_rule 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1387 flags hashpspool,full stripe_width 0 application cephfs pool 3 'cephfs_metadata' replicated size 3 min_size 1 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 1387 flags hashpspool,full stripe_width 0 application cephfs [root@swarm_node1_183 ~]#<strong> ceph osd pool set cephfs_data size 2</strong> set pool 2 size to 2 [root@swarm_node1_183 ~]# <strong>ceph osd dump | grep -i pool</strong> pool 1 'rbd' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 1392 flags hashpspool,nearfull,selfmanaged_snaps stripe_width 0 application rbd <strong>pool 2 'cephfs_data' replicated size 2 min_size 1</strong> crush_rule 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1392 flags hashpspool,nearfull stripe_width 0 application cephfs pool 3 'cephfs_metadata' replicated size 3 min_size 1 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 1392 flags hashpspool,nearfull stripe_width 0 application cephfs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[root@swarm_node1_183 ~]# <strong>ceph df</strong> GLOBAL: SIZE AVAIL RAW USED %RAW USED 30 GiB 5.2 GiB 25 GiB 82.79 POOLS: NAME ID USED %USED MAX AVAIL OBJECTS rbd 1 404 MiB 28.83 997 MiB 152 <strong>cephfs_data 2 2.3 GiB 60.68 1.5 GiB 578</strong> cephfs_metadata 3 197 KiB 0.02 997 MiB 60 [root@swarm_node1_183 ~]# <strong>ceph osd df</strong> ID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS 0 hdd 0.00389 1.00000 10 GiB 8.7 GiB 1.3 GiB 86.69 1.05 195 1 hdd 0.00490 1.00000 10 GiB 8.0 GiB 2.0 GiB 79.66 0.96 203 2 hdd 0.00490 1.00000 10 GiB 8.2 GiB 1.8 GiB 82.00 0.99 210 TOTAL 30 GiB 25 GiB 5.2 GiB 82.79 MIN/MAX VAR: 0.96/1.05 STDDEV: 2.92 |
необходимо поправить конфиг файл на ноде откуда производилась установка:
/var/ceph-admin/ceph.conf добавив строку:
osd pool default size = 2
после чего выполнить команду:
[ceph@swarm_node1_183 ceph-admin]$ ceph-deploy --overwrite-conf config push swarm_node1_183 swarm_node2_184 swarm_node3_185
и выполним следующие команды:
[root@swarm_node1_183 ceph-admin]# ceph osd pool set ИМЯ_ПУЛА size 2
[root@swarm_node1_183 ceph-admin]# ceph osd pool set ИМЯ_ПУЛА min_size 1
Изменяем правила "дробления" (CRUSH)
В основной конфиг /var/ceph-admin/ceph.conf добавим строку osd pool default size = 2
она говорит о том, что мы будем использовать репликацию с коэффициентом 2, по умолчанию ceph использует реплику 3. Запись osd_crush_update_on_start = false
запрещает ceph управлять CRUSH картой кластера. Ее мы будем править руками и импортировать в кластер.
займемся созданием CRUSH карты. Вытягиваем текущую карту кластера командой:
1
|
[root@ceph1 mycluster]# ceph osd getcrushmap -o map.current
|
Декомпилируем ее в человеческий формат:
1
|
[root@ceph1 mycluster]# crushtool -d map.current -o map.decompile
|
И приводим ее к такому виду:
[codesyntax lang="bash" blockstate="collapsed"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
cat map.decompile # begin crush map tunable choose_local_tries 0 tunable choose_local_fallback_tries 0 tunable choose_total_tries 50 tunable chooseleaf_descend_once 1 tunable chooseleaf_vary_r 1 tunable chooseleaf_stable 1 tunable straw_calc_version 1 # devices device 0 osd.0 class hdd device 1 osd.1 class hdd device 2 osd.2 class hdd # types type 0 osd type 1 host type 2 chassis type 3 rack type 4 row type 5 pdu type 6 pod type 7 room type 8 datacenter type 9 region type 10 root # buckets host <strong>swarm_node1_183 </strong>{ id -3 # do not change unnecessarily id -4 class hdd # do not change unnecessarily # weight 0.004 alg straw hash 0 # rjenkins1 item osd.0 weight 0.004 } host <strong>swarm_node2_184 </strong>{ id -5 # do not change unnecessarily id -6 class hdd # do not change unnecessarily # weight 0.004 alg straw hash 0 # rjenkins1 item osd.1 weight 0.004 } host <strong>swarm_node3_185 </strong>{ id -7 # do not change unnecessarily id -8 class hdd # do not change unnecessarily # weight 0.004 alg straw hash 0 # rjenkins1 item osd.2 weight 0.004 } root default { id -1 # do not change unnecessarily id -2 class hdd # do not change unnecessarily # weight 0.012 alg straw hash 0 # rjenkins1 item <strong>swarm_node1_183 </strong>weight 0.004 item <strong>swarm_node2_184 </strong>weight 0.004 item <strong>swarm_node3_185 </strong>weight 0.004 } # rules rule replicated_rule { ruleset 0 type replicated min_size 1 max_size 10 step take default step chooseleaf firstn 0 type host step emit } # end crush map |
[/codesyntax]
Компилируем ее обратно и скармливаем ceph:
1
2
|
# crushtool -c map.decompile -o map.new
# ceph osd setcrushmap -i map.new
|
Возможные проблемы и их решения:
[root@swarm_master2_181 ~]# ceph -s
cluster:
id: 4e3f0791-34d7-4576-add4-ec632275fb3f
health: HEALTH_WARN
insufficient standby MDS daemons available
services:
mon: 3 daemons, quorum swarm_node1_183,swarm_node2_184,swarm_node3_185
mgr: swarm_node2_184(active), standbys: swarm_node3_185, swarm_node1_183
mds: cephfs-1/1/1 up {0=swarm_node2_184=up:active}
osd: 3 osds: 3 up, 3 in
data:
pools: 3 pools, 224 pgs
objects: 173 objects, 402 MiB
usage: 10 GiB used, 9.7 GiB / 20 GiB avail
pgs: 224 active+clean
io:
client: 24 KiB/s wr, 0 op/s rd, 3 op/s wr
смотрим статус:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@swarm_master2_181 ~]# <strong>ceph fs status</strong> cephfs - 0 clients ====== +------+--------+-----------------+---------------+-------+-------+ | Rank | State | MDS | Activity | dns | inos | +------+--------+-----------------+---------------+-------+-------+ | 0 | active | swarm_node2_184 | Reqs: 0 /s | 11 | 14 | +------+--------+-----------------+---------------+-------+-------+ +-----------------+----------+-------+-------+ | Pool | type | used | avail | +-----------------+----------+-------+-------+ | cephfs_metadata | metadata | 13.7k | 2723M | | cephfs_data | data | 0 | 2723M | +-----------------+----------+-------+-------+ +-------------+ | Standby MDS | +-------------+ +-------------+ MDS version: ceph version 13.2.6 (7b695f835b03642f85998b2ae7b6dd093d9fbce4) mimic (stable) |
указываем количество активных mds
[root@swarm_master2_181 ~]# ceph fs set cephfs max_mds 3
заходим на одну из нод:
[root@swarm_master1_180 ceph]# ssh swarm_node1_183
запускаем сервис:
[root@swarm_node1_183 ~]# systemctl start ceph-mds@swarm_node1_183
проверяем статус:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[root@swarm_node1_183 ~]# <strong>ceph fs status</strong> cephfs - 0 clients ====== +------+----------+-----------------+---------------+-------+-------+ | Rank | State | MDS | Activity | dns | inos | +------+----------+-----------------+---------------+-------+-------+ | 0 | active | swarm_node2_184 | Reqs: 0 /s | 11 | 14 | | 1 |<strong> creating | swarm_node1_183</strong> | | 0 | 0 | +------+----------+-----------------+---------------+-------+-------+ +-----------------+----------+-------+-------+ | Pool | type | used | avail | +-----------------+----------+-------+-------+ | cephfs_metadata | metadata | 13.7k | 2723M | | cephfs_data | data | 0 | 2723M | +-----------------+----------+-------+-------+ +-------------+ | Standby MDS | +-------------+ +-------------+ MDS version: ceph version 13.2.6 (7b695f835b03642f85998b2ae7b6dd093d9fbce4) mimic (stable) |
спустя ещё время, повторно проверям:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[root@swarm_node1_183 ~]# ceph fs status cephfs - 0 clients ====== +------+--------+-----------------+---------------+-------+-------+ | Rank | State | MDS | Activity | dns | inos | +------+--------+-----------------+---------------+-------+-------+ | 0 | <strong>active | swarm_node2_184</strong> | Reqs: 0 /s | 11 | 14 | | 1 | <strong>active | swarm_node1_183</strong> | Reqs: 0 /s | 10 | 13 | +------+--------+-----------------+---------------+-------+-------+ +-----------------+----------+-------+-------+ | Pool | type | used | avail | +-----------------+----------+-------+-------+ | cephfs_metadata | metadata | 15.0k | 2722M | | cephfs_data | data | 0 | 2722M | +-----------------+----------+-------+-------+ +-------------+ | Standby MDS | +-------------+ +-------------+ MDS version: ceph version 13.2.6 (7b695f835b03642f85998b2ae7b6dd093d9fbce4) mimic (stable) |
и на третьей ноде:
[root@swarm_node3_185 ~]# systemctl startceph-mds@swarm_node3_185
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@swarm_node3_185 ~]# ceph fs status cephfs - 0 clients ====== +------+--------+-----------------+---------------+-------+-------+ | Rank | State | MDS | Activity | dns | inos | +------+--------+-----------------+---------------+-------+-------+ | 0 | <strong>active | swarm_node2_184</strong> | Reqs: 0 /s | 11 | 14 | | 1 | <strong>active | swarm_node1_183</strong> | Reqs: 0 /s | 10 | 13 | | 2 | <strong>active | swarm_node3_185</strong> | Reqs: 0 /s | 10 | 13 | +------+--------+-----------------+---------------+-------+-------+ +-----------------+----------+-------+-------+ | Pool | type | used | avail | +-----------------+----------+-------+-------+ | cephfs_metadata | metadata | 16.3k | 2722M | | cephfs_data | data | 0 | 2722M | +-----------------+----------+-------+-------+ +-------------+ | Standby MDS | +-------------+ +-------------+ MDS version: ceph version 13.2.6 (7b695f835b03642f85998b2ae7b6dd093d9fbce4) mimic (stable) |
у нас получилось 3 активные ноды и ни одной Standby, исправим это:
[root@swarm_node1_183 ~]# ceph fs set cephfs max_mds 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@swarm_node1_183 ~]# <strong>ceph fs status</strong> cephfs - 0 clients ====== +------+--------+-----------------+---------------+-------+-------+ | Rank | State | MDS | Activity | dns | inos | +------+--------+-----------------+---------------+-------+-------+ | 0 | active | <strong>swarm_node2_184</strong> | Reqs: 0 /s | 11 | 14 | | 1 | active | <strong>swarm_node1_183</strong> | Reqs: 0 /s | 10 | 13 | +------+--------+-----------------+---------------+-------+-------+ +-----------------+----------+-------+-------+ | Pool | type | used | avail | +-----------------+----------+-------+-------+ | cephfs_metadata | metadata | 16.3k | 2722M | | cephfs_data | data | 0 | 2722M | +-----------------+----------+-------+-------+ +-----------------+ | Standby MDS | +-----------------+ | <strong>swarm_node3_185</strong> | +-----------------+ MDS version: ceph version 13.2.6 (7b695f835b03642f85998b2ae7b6dd093d9fbce4) mimic (stable) |
как видим, 2 активные ноды и 1 нода Standby
Снятие снапшота блочного устройства и откат
В момент когда у нас еще всё смонтировано и еще всё работает можно снять снапшот командой:
rbd snap create rbd/jenkins@snapshot1 --name client.admin
Затем можно поудалять всё из смонтированной директории.
Чтобы восстановиться из снапшота необходимо:
- umount /mnt/cephtest/
- sudo rbd unmap jenkins --name client.admin -m tst-vsrv-ceph1,tst-vsrv-ceph2,tst-vsrv-ceph3
- rbd snap rollback rbd/jenkins@snapshot1 --name client.admin
Rolling back to snapshot: 100% complete…done.
- sudo rbd map jenkins --name client.admin -m node1,node2,node3
- mount /dev/rbd/rbd/jenkins /mnt/cephtest/
Все манипуляции с mount umount, map unmap необходимы для того что бы система была не была заблокирована на запись.
Заходим в директорию и видим, что все удаленные файлы восстановились