CephFS Client

MDS(metadata server)を組み込んでファイルシステム(cephFS)を構築するとファイルシステム共有ができます.
最近のRHEL8/9ならCephのカーネルモジュールを内包していてcephfs向けクライアントツールもdnf/yumで入れられるので簡単に共有できます.
カーネルレベルでできるのである意味 ネイティブ接続 って言えるかも.

それ以外にもFUSEベースだったり、Ceph側でnfsモジュールを入れてのnfs共有も可能です.

cephfsではなくブロックデバイスを提供するRBD(rados block device)を使えばiSCSIのような接続も可能となります.

他windows,mac向けに CephFS クライアントの接続ツールも提供されている.
またnfs同様モジュールを組み込めば、ceph側でsmbサーバにもなれます。

cephとは関係のない中継ノードにcephfsをマウントして、そこからnfs/smbを行うのもできるみたい
(nfsとsmbを同時に扱うのは微妙ですが..)

参照先https://ceph.readthedocs.io/en/latest/cephfs/mount-prerequisites/

リポジトリの登録とパッケージのインストール

RHEL9系のRockylinux9ならOS提供のパッケージからリポジトリが登録できますが、
それ以外は手動でリポジトリを組み込みます

cat << _EOF_  > /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for \$basearch
baseurl=https://download.ceph.com/rpm-squid/el9/\$basearch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
 
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-squid/el9/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
_EOF_

リポジトリからcephパッケージをインストールします

[root@rockylinux9 ~]# dnf install epel-release -y && dnf install ceph-common -y

ceph managerノードから最小限のceph.confを取得して /etc/ceph/ceph.conf に置きます

[root@rockylinux9 ~]# ssh root@ceph01 "ceph config generate-minimal-conf" | tee /etc/ceph/ceph.conf
 
root@ceph01's password:
# minimal ceph.conf for c2d06c20-9197-40b4-a8c4-1a0604936ce8
[global]
        fsid = c2d06c20-9197-40b4-a8c4-1a0604936ce8
        mon_host = [v2:192.168.0.49:3300/0,v1:192.168.0.49:6789/0] [v2:192.168.0.47:3300/0,v1:192.168.0.47:6789/0] [v2:192.168.0.48:3300/0,v1:192.168.0.48:6789/0]
[root@rockylinux9 ~]#

その後、同じくceph managerからキーリングを貰います

[root@rockylinux9 ~]# ssh root@ceph01 "ceph fs authorize emfs client.rockylinux9  / rwp" | tee /etc/ceph/ceph.client.rockylinux9.keyring
 
root@ceph01's password:
[client.rockylinux9]
        key = AQB7uAto1UjiBhAAr/IoQ/HWUJ0mHJ6rjw6zrQ==
        caps mds = "allow rwp fsname=emfs"
        caps mon = "allow r fsname=emfs"
        caps osd = "allow rw tag cephfs data=emfs"
[root@rockylinux9 ~]#

これで準備は完了
cephで作ったemfsファイルシステムをmountします

ceph mount(カーネルベース)

CephFSのマウントポイントを作って、mountコマンドでマウントします
https://docs.ceph.com/en/latest/cephfs/mount-using-kernel-driver/

[root@rockylinux9 ~]# mkdir /emfs
 
[root@rockylinux9 ~]# mount -t ceph rockylinux9@.emfs=/  /emfs
 
[root@rockylinux9 ~]# df -hTt ceph
Filesystem                                              Type  Size  Used Avail Use% Mounted on
rockylinux9@c2d06c20-9197-40b4-a8c4-1a0604936ce8.emfs=/ ceph  177G     0  177G   0% /emfs
[root@rockylinux9 ~]#

/etc/fstabへの記載は下記のように記載します

[root@ceph-client ~]# cat /etc/fstab
 :
rockylinux9@.emfs=/ /emfs ceph rw 0 0
 :
[root@ceph-client ~]#

autofsの場合は

[root@rockylinux9 ~]# cat /etc/auto.master
/- /etc/auto.home --timeout=60
 
[root@ceph-client ~]# cat /etc/auto.home
/emfs -fstype=ceph  rockylinux9@.emfs=/
 
[root@ceph-client ~]#

でいける.

no_root_squash

なんか規定でno_root_squashが適用されているみたい.

fuseでmount

いわゆるユーザランドでのmountになります

既に/etc/ceph/ceph.confと「/etc/ceph/ceph.client.rockylinux9.keyring」があるのなら

[root@rockylinux9 ~]# dnf install ceph-fuse
 
[root@rockylinux9 ~]# ceph-fuse --id rockylinux9 /emfs
 
[root@rockylinux9 ~]# df -lTht fuse.ceph-fuse
Filesystem     Type            Size  Used Avail Use% Mounted on
ceph-fuse      fuse.ceph-fuse  177G     0  177G   0% /emfs
 
[root@rockylinux9 ~]#

となります。/etc/fstabに記載するなら下記のようにします

[root@rockylinux9 ~]# cat /etc/fstab
 :
none /emfs  fuse.ceph ceph.id=rockylinux9,_netdev,defaults  0 0
 
[root@rockylinux9 ~]#
最新の60件
2025-05-24 2025-05-22 2025-05-21 2025-05-20 2025-05-19 2025-05-18 2025-05-17 2025-05-14 2025-05-13 2025-05-12 2025-05-11 2025-05-08 2025-05-07 2025-05-06 2025-05-05 2025-05-04 2025-05-03 2025-04-27 2025-04-26 2025-04-25 2025-04-24 2025-04-17 2025-04-13 2025-04-02 2025-04-01 2025-03-31 2025-03-29 2025-03-28 2025-03-27 2025-03-26 2025-03-23 2025-03-22 2025-03-20

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-04-26 (土) 01:44:30