CentOS Stream 8
Sponsored Link

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

[root@dlp ~]#
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

[root@dlp ~]#
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
関連コンテンツ