Ceph Reef : ファイルシステムとして利用する2025/10/28 |
|
以下のような構成の 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] | 管理ノードからクライアントホストへ必要なファイルを転送しておきます。 |
|
# 公開鍵転送 node01:~ # ssh-copy-id dlp # クライアントホストに必要なパッケージをインストール node01:~ # ssh dlp "zypper -n install ceph-fuse"
# クライアントホストに必要なファイルを転送 node01:~ # scp /etc/ceph/ceph.conf dlp:/etc/ceph/ ceph.conf 100% 195 98.1KB/s 00:00node01:~ # scp /etc/ceph/ceph.client.admin.keyring dlp:/etc/ceph/ ceph.client.admin.keyring 100% 151 71.5KB/s 00:00node01:~ # ssh dlp "chown ceph:ceph /etc/ceph/ceph.*" |
| [2] | 任意のノードで MDS (MetaData Server) を設定しておきます。 当例では [node01] で進めます。 |
|
# ディレクトリ作成 # ディレクトリ名 ⇒ (クラスター名)-(ノード名) node01:~ # mkdir -p /var/lib/ceph/mds/ceph-node01 node01:~ # ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node01/keyring --gen-key -n mds.node01 creating /var/lib/ceph/mds/ceph-node01/keyring node01:~ # chown -R ceph:ceph /var/lib/ceph/mds/ceph-node01 node01:~ # ceph auth add mds.node01 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node01/keyring added key for mds.node01 node01:~ # systemctl enable --now ceph-mds@node01 |
| [3] | 事前に、MDS を設定したノード上で、[データ] 用と [メタデータ] 用に、少なくとも 2 つの RADOS プールを作成しておきます。 なお、プール作成時にコマンドの末尾に指定する数値は公式ドキュメントを参照の上、決定してください。 ⇒ http://docs.ceph.com/docs/master/rados/operations/placement-groups/ |
|
node01:~ # ceph osd pool create cephfs_data 32 pool 'cephfs_data' created node01:~ # ceph osd pool create cephfs_metadata 32 pool 'cephfs_metadata' created node01:~ # ceph osd pool set cephfs_data bulk true set pool 8 bulk to true node01:~ # ceph fs new cephfs cephfs_metadata cephfs_data new fs with metadata pool 9 and data pool 8 node01:~ # ceph fs ls name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ] node01:~ # ceph mds stat cephfs:1 {0=node01=up:active} node01:~ # ceph fs status cephfs
cephfs - 0 clients
======
RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS
0 active node01 Reqs: 0 /s 10 13 12 0
POOL TYPE USED AVAIL
cephfs_metadata metadata 96.0k 151G
cephfs_data data 0 151G
MDS version: ceph version 18.2.7 (6b0e988052ec84cf2d4a54ff9bbbc5e720b621ad) reef (stable)
|
| [4] | クライアントホストでの Ceph ファイルシステムのマウントです。 |
|
dlp:~ # mount -t fuse.ceph -o ceph.name=client.admin,_netdev none /mnt 2025-10-28T10:26:59.973+0900 7fa017474400 -1 init, newargv = 0x5651d4013d10 newargc=15 2025-10-28T10:26:59.973+0900 7fa017474400 -1 init, args.argv = 0x5651d4158540 args.argc=4 ceph-fuse[1279]: starting ceph client ceph-fuse[1279]: starting fusedlp:~ # df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/vda2 btrfs 28G 3.5G 25G 13% / devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 784M 744K 783M 1% /run tmpfs tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service /dev/vda2 btrfs 28G 3.5G 25G 13% /boot/grub2/x86_64-efi /dev/vda2 btrfs 28G 3.5G 25G 13% /boot/grub2/i386-pc /dev/vda2 btrfs 28G 3.5G 25G 13% /.snapshots /dev/vda2 btrfs 28G 3.5G 25G 13% /opt tmpfs tmpfs 2.0G 0 2.0G 0% /tmp /dev/vda2 btrfs 28G 3.5G 25G 13% /root /dev/vda2 btrfs 28G 3.5G 25G 13% /usr/local /dev/vda2 btrfs 28G 3.5G 25G 13% /srv /dev/vda2 btrfs 28G 3.5G 25G 13% /home /dev/vda2 btrfs 28G 3.5G 25G 13% /var tmpfs tmpfs 1.0M 0 1.0M 0% /run/credentials/getty@tty1.service tmpfs tmpfs 1.0M 0 1.0M 0% /run/credentials/serial-getty@ttyS0.service tmpfs tmpfs 392M 4.0K 392M 1% /run/user/0 ceph-fuse fuse.ceph-fuse 152G 0 152G 0% /mnt |
| [5] | 作成した CephFS やプールを削除する場合は、MDS 稼働ノードで以下のように実行します。 プールに保存されているデータは全て破棄されるため、必要に応じて事前にバックアップを取得しておきます。 プールを削除する場合は [Monitor Daemon] の設定で、[mon allow pool delete = true] が設定されている必要があります。 |
|
# CephFS 削除 node01:~ # ceph fs rm cephfs --yes-i-really-mean-it
# プール削除 # ceph osd pool delete [プール名] [プール名] *** node01:~ # ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it node01:~ # ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it |
| Sponsored Link |
|
|