手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 CephFS の基本設定 – pool / MDS / subvolume を構成する

関連する記事

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 -sHEALTH_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/keyrings

CephFS 用の pool を作成する

CephFS では、ファイルシステムのメタデータを持つ pool と、ファイル実体を持つ data pool を分けます。既存 pool と名前が重複していないことを確認してから作成します。

ceph osd pool ls --format json
ceph 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 3

pool 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 true

CephFS ファイルシステムを作成する

metadata pool と data pool を指定して CephFS を作成します。既存ファイルシステムの一覧を確認してから、ファイルシステム名を重複させないようにします。

ceph fs ls --format json
ceph fs new fs01 cephfs_metadata cephfs_data
ceph fs set fs01 max_mds 1

MDS サービスを配置する

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 mds

CephFS クライアント 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.keyring
ceph auth import -i /srv/ceph/work/keyrings/ceph.client.cephfs01.keyring
ceph auth get client.cephfs01

subvolume 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 をクラスター上で正しく作成し、その後に fstabautofs でマウント方式を選ぶ流れにすると、トラブル時の切り分けもしやすくなります。

関連する記事
Ubuntu 26.04 CephFS の基本設定 – pool / MDS / subvolume を構成する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る