Ceph Nautilus : ブロックデバイスを利用する2021/03/31 |
以下のような構成の Ceph クラスターストレージを、[dlp] クライアントから利用できるように設定します。
| +--------------------+ | | [dlp.srv.world] |10.0.0.30 | | Ceph Client +-----------+ | | | +--------------------+ | +----------------------------+----------------------------+ | | | |10.0.0.51 |10.0.0.52 |10.0.0.53 +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [node01.srv.world] | | [node02.srv.world] | | [node03.srv.world] | | Object Storage +----+ Object Storage +----+ Object Storage | | Monitor Daemon | | | | | | Manager Daemon | | | | | +-----------------------+ +-----------------------+ +-----------------------+ |
例として、クライアント上でブロックデバイスを作成して利用します。
|
|
[1] | 管理ノードからクライアントホストへ SSH 公開鍵を転送し、設定します。 |
# 公開鍵転送 [root@node01 ~]# ssh-copy-id dlp # クライアントホストに必要なパッケージをインストール [root@node01 ~]# ssh dlp "dnf -y install centos-release-ceph-nautilus" [root@node01 ~]# ssh dlp "dnf -y install ceph-common"
# クライアントホストに必要なファイルを転送 [root@node01 ~]# scp /etc/ceph/ceph.conf dlp:/etc/ceph/ ceph.conf 100% 195 98.1KB/s 00:00[root@node01 ~]# scp /etc/ceph/ceph.client.admin.keyring dlp:/etc/ceph/ ceph.client.admin.keyring 100% 151 71.5KB/s 00:00[root@node01 ~]# ssh dlp "chown ceph. /etc/ceph/ceph.*" |
[2] | クライアント上でのブロックデバイスの作成とマウントです。 |
# デフォルト RBD プール [rbd] 作成 [root@dlp ~]# ceph osd pool create rbd 128 pool 'rbd' created # Placement Groups オートスケール 有効化 [root@dlp ~]# ceph osd pool set rbd pg_autoscale_mode on set pool 1 pg_autoscale_mode to on # プール 初期化 [root@dlp ~]# rbd pool init rbd ceph osd pool autoscale-status POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO EFFECTIVE RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE rbd 11 3.0 239.9G 0.0000 1.0 32 on # 10G のブロックデバイスを作成 [root@dlp ~]# rbd create --size 10G --pool rbd rbd01
# 確認 [root@dlp ~]# rbd ls -l NAME SIZE PARENT FMT PROT LOCK rbd01 10 GiB 2 # 作成したブロックデバイスをマッピング [root@dlp ~]# rbd map rbd01 /dev/rbd0 # 確認 [root@dlp ~]# rbd showmapped id pool namespace image snap device 0 rbd rbd01 - /dev/rbd0 # XFS でフォーマット [root@dlp ~]# mkfs.xfs /dev/rbd0 meta-data=/dev/rbd0 isize=512 agcount=16, agsize=163840 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=2621440, imaxpct=25 = sunit=16 swidth=16 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=16 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # マウント [root@dlp ~]# mount /dev/rbd0 /mnt df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs tmpfs 3.8G 8.6M 3.8G 1% /run tmpfs tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup /dev/mapper/cs-root xfs 26G 2.4G 24G 10% / /dev/vda1 xfs 1014M 322M 693M 32% /boot tmpfs tmpfs 777M 0 777M 0% /run/user/0 /dev/rbd0 xfs 10G 105M 9.9G 2% /mnt |
[3] | 作成したブロックデバイスやプールを削除する場合は以下のように実行します。 プールに保存されているデータは全て破棄されるため、必要に応じて事前にバックアップを取得しておきます。 プールを削除する場合は [Monitor Daemon] の設定で、[mon allow pool delete = true] が設定されている必要があります。 |
# アンマップ [root@dlp ~]# rbd unmap /dev/rbd/rbd/rbd01
# ブロックデバイス削除 [root@dlp ~]# rbd rm rbd01 -p rbd Removing image: 100% complete...done. # プール削除 # ceph osd pool delete [プール名] [プール名] *** [root@dlp ~]# ceph osd pool delete rbd rbd --yes-i-really-really-mean-it pool 'rbd' removed |
Sponsored Link |