[3] Użycie urządzenia blokowego
7 lipca 2020Skonfigurujemy 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