[3] Użycie urządzenia blokowego

7 lipca 2020 Wyłączono przez Adam [zicherka] Nogły

Skonfigurujemy teraz klienta/hosta [lclt01] do użycia zasobów Ceph.

Sieć przedstawia się następująco.

W tym przykładzie stworzymy urządzenie blokowe i zamontujemy go na kliencie/hoście.

[1] Przetransferuj za pomocą SSH klucz publiczny do klienta i skonfiguruj do z [Admin Node].

# transfer klucza
[root@node1 ~]# ssh-copy-id lclt01
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'lclt01 (192.168.1.4)' can't be established.
ECDSA key fingerprint is SHA256:t4KMpxJTwPeEikCQ/ronIzH6TuXILoT6W98pB/Be18Q.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@lclt01's password: # wpisz hasło root'a z lclt01

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'lclt01'"
and check to make sure that only the key(s) you wanted were added.

# instalacja pakietów
[root@node1 ~]# ssh lclt01 "dnf -y install centos-release-ceph-nautilus"
[root@node1 ~]# ssh lclt01 "dnf -y install ceph-common"

# transfer potrzebnych plików konfiguracyjnych na klienta
[root@node1 ~]# scp /etc/ceph/ceph.conf lclt01:/etc/ceph/
ceph.conf 100% 280 480.6KB/s 00:00
[root@node1 ~]# scp /etc/ceph/ceph.client.admin.keyring lclt01:/etc/ceph/
ceph.client.admin.keyring 100% 151 300.4KB/s 00:00
[root@node1 ~]# ssh lclt01 "chown ceph. /etc/ceph/ceph.*"

[2] Stwórz urządzenie blokowe i zamontuj je na kliencie.

# tworzenie domyslnej puli RBD [rbd]
[root@lclt01 ~]# ceph osd pool create rbd 128
pool 'rbd' created
# włączenie trybu autoskalowania
[root@lclt01 ~]# ceph osd pool set rbd pg_autoscale_mode on
set pool 1 pg_autoscale_mode to on
# inicjacja puli
[root@lclt01 ~]# rbd pool init rbd

[root@lclt01 ~]# ceph osd pool autoscale-status
POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE
rbd 19 3.0 49140M 0.0000 1.0 32 on

# tworzenie urządzenia blokowego o rozmiarze 3GB
[root@lclt01 ~]# rbd create --size 3G --pool rbd rbd01

[root@lclt01 ~]# rbd ls -l
NAME SIZE PARENT FMT PROT LOCK
rbd01 3 GiB 2

# mapowanie/zamontowanie urządzenia blokowego
[root@lclt01 ~]# rbd map rbd01
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable rbd01 object-map fast-diff deep-flatten".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (6) No such device or address
# komunikat o złych opcjach RBD, wpisz poniższą komendę, by to naprawić
[root@lclt01 ~]# rbd feature disable rbd01 object-map fast-diff deep-flatten

[root@lclt01 ~]# rbd map rbd01
/dev/rbd0

# potwierdzenie montowania
[root@lclt01 ~]# rbd showmapped
id pool namespace image snap device
0 rbd rbd01 - /dev/rbd0

# formatowanie urządzenia jako XFS
[root@lclt01 ~]# mkfs.xfs /dev/rbd0
jednostka pasa logu (4194304 bajtów) jest zbyt duża (maksimum to 256KiB)
jednostkę pasa logu zmieniono na 32KiB
meta-data=/dev/rbd0 isize=512 agcount=8, agsize=98304 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=786432, imaxpct=25
= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =log wewnętrzny bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =brak extsz=4096 blocks=0, rtextents=0

[root@lclt01 ~]# mount /dev/rbd0 /mnt

[root@lclt01 ~]# df -hT
System plików Typ rozm. użyte dost. %uż. zamont. na
devtmpfs devtmpfs 977M 0 977M 0% /dev
tmpfs tmpfs 995M 0 995M 0% /dev/shm
tmpfs tmpfs 995M 22M 973M 3% /run
tmpfs tmpfs 995M 0 995M 0% /sys/fs/cgroup
/dev/mapper/cl_lclt01vm-root xfs 17G 5,8G 11G 35% /
/dev/sda2 ext4 976M 202M 708M 23% /boot
/dev/sda1 vfat 599M 6,8M 593M 2% /boot/efi
tmpfs tmpfs 199M 4,0K 199M 1% /run/user/0
/dev/rbd0 xfs 3,0G 54M 3,0G 2% /mnt

[3] Aby skasować urządzenie blokowe lub pulę, ktore stworzyłeś/zamontowałeś – uruchom poniższą komendę. Aby móc skasować pulę, musisz ustawić [mon allow pool delete = true] na [Monitor Daemon] w czasie jego konfiguracji.

# odmontuj
# gdyby wyskakiwał błąd (16) dodaj "-o force"
[root@lclt01 ~]# rbd unmap /dev/rbd/rbd/rbd01

# skasuj urządzenie blokowe
[root@lclt01 ~]# rbd rm rbd01 -p rbd
Removing image: 100% complete...done.

# skasuj pulę
# ceph osd pool delete [Pool Name] [Pool Name] ...
[root@lclt01 ~]# ceph osd pool delete rbd rbd --yes-i-really-really-mean-it
pool 'rbd' removed