Cephクラスター構築ガイド
Ceph クラスタ構築や分散ストレージを自分の環境で確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
CephFS は、Ceph クラスター上に POSIX 形式の共有ファイルシステムを作るための機能です。Ubuntu 26.04 で CephFS を使う場合は、metadata pool、data pool、MDS、クライアント認証、必要に応じた subvolume を分けて考えると、後からマウント方式を変える場合も扱いやすくなります。
この記事では、既存の Ceph クラスターに CephFS を追加する前提で、pool 作成、MDS 配置、クライアント keyring、subvolume 作成、確認コマンドを順に扱います。Ceph クラスター自体の構築や ceph-common の配置は、関連記事側で扱います。
前提条件
- Ceph の monitor / manager / OSD が稼働していること。
- Ceph 管理コマンドを実行できる管理ノードで作業すること。
ceph -sがHEALTH_OKまたは意図した警告だけの状態であること。- CephFS 用の metadata pool、data pool、ファイルシステム名、クライアント名を事前に決めておくこと。
ceph -s
ceph osd tree
ceph orch psこの記事で使う名前
以下の例では、CephFS のファイルシステム名を fs01、metadata pool を cephfs_metadata、data pool を cephfs_data、クライアント名を client.cephfs01 とします。実環境では、用途やテナントに合わせて名前を分けます。
FS_NAME=fs01
METADATA_POOL=cephfs_metadata
DATA_POOL=cephfs_data
CLIENT_NAME=client.cephfs01
KEYRING_DIR=/srv/ceph/work/keyringsCephFS 用の pool を作成する
CephFS では、ファイルシステムのメタデータを持つ pool と、ファイル実体を持つ data pool を分けます。既存 pool と名前が重複していないことを確認してから作成します。
ceph osd pool ls --format jsonceph osd pool create cephfs_metadata 32 32
ceph osd pool create cephfs_data 32 32レプリカ数はクラスターの台数と障害許容方針に合わせます。小規模環境で size を下げる場合でも、本番運用ではデータ保護の前提を先に決めてから設定します。
ceph osd pool set cephfs_metadata size 3
ceph osd pool set cephfs_data size 3pool application を有効化する
作成した pool が CephFS 用であることを Ceph に明示します。metadata pool と data pool の両方で cephfs application を有効にします。
ceph osd pool application enable cephfs_metadata cephfs --yes-i-really-mean-it
ceph osd pool application enable cephfs_data cephfs --yes-i-really-mean-it
ceph osd pool set cephfs_data bulk trueCephFS ファイルシステムを作成する
metadata pool と data pool を指定して CephFS を作成します。既存ファイルシステムの一覧を確認してから、ファイルシステム名を重複させないようにします。
ceph fs ls --format jsonceph fs new fs01 cephfs_metadata cephfs_data
ceph fs set fs01 max_mds 1MDS サービスを配置する
CephFS には MDS が必要です。cephadm 管理下のクラスターでは、ceph orch apply mds で対象ホストを指定して MDS を配置できます。
ceph orch apply mds fs01 --placement "1 ceph01"MDS を複数台にする場合は、max_mds と配置数を合わせて設計します。active / standby の考え方も含め、CephFS を載せる用途の更新頻度と可用性要求に合わせます。
ceph fs status fs01
ceph orch ps --daemon-type mdsCephFS クライアント keyring を作成する
CephFS をマウントするクライアントには、MDS と OSD に対する権限を持つ keyring が必要です。以下は fs01 に限定したクライアント keyring の例です。キー値は実環境で発行した値に置き換えます。
sudo mkdir -p /srv/ceph/work/keyrings
sudo tee /srv/ceph/work/keyrings/ceph.client.cephfs01.keyring >/dev/null <<'EOF'
[client.cephfs01]
key = AQBexampleGeneratedKey==
caps mon = "allow r"
caps mds = "allow rw fsname=fs01"
caps mgr = "allow r"
caps osd = "allow rw tag cephfs data=fs01"
EOF
sudo chmod 0600 /srv/ceph/work/keyrings/ceph.client.cephfs01.keyringceph auth import -i /srv/ceph/work/keyrings/ceph.client.cephfs01.keyring
ceph auth get client.cephfs01subvolume group と subvolume を作成する
用途別に領域を分けたい場合は、CephFS の subvolume group と subvolume を使います。後から NFS、autofs、fstab などのマウント方式と組み合わせる場合も、subvolume 単位で境界を持たせると管理しやすくなります。
ceph fs subvolumegroup create fs01 app
ceph fs subvolume create fs01 data01 --group_name app --size 107374182400作成結果を確認する
CephFS の状態、MDS、pool、クライアント認証、subvolume の一覧を確認します。ここで pool 名やクライアント権限のずれがあると、後続のマウント設定で失敗しやすくなります。
ceph fs ls
ceph fs status fs01
ceph osd pool ls detail
ceph auth get client.cephfs01
ceph fs subvolumegroup ls fs01
ceph fs subvolume ls fs01 --group_name appマウント側へ渡す情報
CephFS を実際に Ubuntu 26.04 クライアントへマウントする場合は、クラスター名、monitor、ファイルシステム名、subvolume path、クライアント名、keyring をそろえます。fstab で固定マウントするか、autofs で必要な時だけマウントするかは、利用頻度と起動時依存関係で決めます。
ceph fs subvolume getpath fs01 data01 app運用時に確認する項目
- metadata pool と data pool の用途が混ざっていないこと。
- MDS が起動しており、CephFS が active になっていること。
- クライアント keyring の権限が必要なファイルシステムと pool に限定されていること。
- subvolume の容量と用途が、マウント先の運用単位と合っていること。
- 固定マウントにする場合は、Ceph 側の起動順序やネットワーク到達性を考慮すること。
まとめ
CephFS は、pool、MDS、client auth、subvolume の境界をそろえることで扱いやすくなります。Ubuntu 26.04 側では、まず CephFS をクラスター上で正しく作成し、その後に fstab や autofs でマウント方式を選ぶ流れにすると、トラブル時の切り分けもしやすくなります。

