Ubuntu 26.04 で Ceph を扱う場合、最初に整理すべきなのは CephFS や RBD の使い方ではなく、Ceph クラスタ本体をどう作るかです。CephFS はファイルシステムとしての利用形態、RBD はブロックデバイスとしての利用形態であり、その前提には MON、MGR、OSD、cephadm、orchestrator によるクラスタ管理があります。
この記事では、Ubuntu 26.04 上で cephadm を使って Ceph クラスタを構成する時の基本設計を整理します。実環境では構成管理で cephadm bootstrap、Ceph dashboard、orchestrator host、OSD service spec を管理していますが、ここでは手動で理解するための流れに落とし込みます。
- Ceph クラスタ本体と CephFS / RBD の関係を整理する
- MON、MGR、OSD、cephadm、orchestrator の役割を確認する
- cephadm bootstrap の前提を整理する
- 単一ホスト / size 1 構成の意味と危険性を明確にする
- OSD service spec を使って OSD を作る流れを確認する
| 対象 OS | Ubuntu 26.04 |
|---|---|
| 構築方式 | cephadm |
| 主要パッケージ | cephadm, ceph-common, python3-ceph-common |
| 主要コンポーネント | MON, MGR, OSD, cephadm, orchestrator |
| 後続記事 | CephFS, Ceph RBD, Ceph クライアント共通設定 |
| この記事の位置づけ | Ceph クラスタ本体の基本設計と初期構築 |
-
1
構成方針を決める冗長構成か、検証用の単一ホスト構成かを先に決めます。
-
2
cephadm を準備するCeph の初期構築と管理に必要なパッケージを導入します。
-
3
bootstrap するMON / MGR / dashboard を含む初期クラスタを作成します。
-
4
orchestrator host を登録するcephadm が SSH で管理できるホストを登録します。
-
5
OSD service spec を適用するデータ用デバイスを OSD として Ceph に参加させます。
書籍
Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Ceph クラスタが先に必要になる理由
CephFS や RBD は、Ceph の利用形態です。CephFS はファイルシステム、RBD はブロックデバイスとして見えますが、どちらも内部的には Ceph クラスタの OSD、MON、MGR、認証、pool、placement の上に成り立ちます。
そのため、Ubuntu 26.04 で Ceph を扱う記事は、CephFS や RBD から始めるのではなく、まず Ceph クラスタ本体の設計を置く方が自然です。
Ceph の主要コンポーネント
| MON | クラスタマップを管理する monitor。クラスタの合意と状態管理の中心になる |
|---|---|
| MGR | 管理機能、dashboard、orchestrator などを扱う manager |
| OSD | 実際にデータを保持する Object Storage Daemon |
| MDS | CephFS を使う場合に必要になる Metadata Server |
| cephadm | コンテナベースで Ceph daemon を展開・管理する仕組み |
| orchestrator | ホスト、daemon、OSD service spec を管理する層 |
単一ホスト Ceph は一般的な高可用構成ではない
小規模環境や検証環境では、単一ホストで Ceph を構成することがあります。ただし、これは一般的な高可用 Ceph クラスタとは別物です。Ceph は本来、複数ノード、複数 OSD、複数障害ドメインを前提に強みが出る分散ストレージです。
osd_pool_default_size = 1、mon_allow_pool_size_one = true のような設定は、冗長性を捨てる構成です。検証や限定用途では意味がありますが、ディスク障害やホスト障害に耐える構成ではありません。cephadm をインストールする
Ceph クラスタ本体は cephadm で bootstrap します。クライアントコマンドも使うため、ceph-common も入れておきます。
sudo apt update
sudo apt install -y cephadm ceph-common python3-ceph-common
cephadm versionCeph 用の作業ディレクトリを作る
bootstrap 用の設定ファイルや OSD service spec を置く作業ディレクトリを作ります。ここでは例として /root/ceph-work を使います。
sudo install -d -o root -g root -m 0700 /root/ceph-workbootstrap 用設定を作成する
単一ホスト Ceph の場合、pool size 1 を許可する設定を入れることがあります。これは冗長性を下げるため、検証用または割り切った小規模用途であることを明確にして使います。
sudo tee /root/ceph-work/ceph-bootstrap.conf >/dev/null <<'EOF'
[global]
osd_crush_chooseleaf_type = 0
osd_pool_default_size = 1
osd_pool_default_min_size = 1
mon_max_pg_per_osd = 500
[mon]
mon_allow_pool_size_one = true
mon_warn_on_pool_no_redundancy = false
[mgr]
mgr_standby_modules = false
mgr/dashboard/redirect_resolve_ip_addr = true
EOF
sudo chmod 0600 /root/ceph-work/ceph-bootstrap.confcephadm bootstrap を実行する
bootstrap では、MON の IP アドレス、クラスタ FSID、dashboard の初期設定、TLS 証明書などを指定します。次の例は構造を示すためのものです。実際の FSID、IP アドレス、証明書、パスワードは自分の環境で管理します。
sudo cephadm bootstrap \
--mon-ip 10.0.10.50 \
--fsid 00000000-0000-0000-0000-000000000000 \
--config /root/ceph-work/ceph-bootstrap.conf \
--dashboard-crt /etc/ssl/certs/ceph-dashboard.crt \
--dashboard-key /etc/ssl/private/ceph-dashboard.key \
--initial-dashboard-user admin \
--initial-dashboard-password CHANGE_ME_STRONG_PASSWORD \
--allow-fqdn-hostname \
--skip-monitoring-stack \
--single-host-defaults \
--dashboard-password-noupdateクラスタ状態を確認する
bootstrap 後は、まず ceph status でクラスタが応答するか確認します。
sudo ceph status
sudo ceph orch host ls
sudo ceph orch pscephadm の SSH 管理ユーザーを設定する
cephadm の orchestrator は、SSH でホストへ接続して daemon を管理します。cephadm の公開鍵を管理ユーザーの authorized_keys に入れ、必要に応じて cephadm の SSH user を設定します。
sudo ceph cephadm get-pub-key
sudo ceph cephadm get-user
sudo ceph cephadm set-user myadminorchestrator host を登録する
cephadm が管理するホストを orchestrator に登録します。単一ホスト構成では bootstrap したホスト自身を登録します。複数ノード構成では、ここで MON / MGR / OSD を配置するホスト群を追加します。
sudo ceph orch host add ceph-node-01.example.com 10.0.10.50 --labels _admin
sudo ceph orch host lsOSD service spec を作成する
OSD は Ceph が実際にデータを保持する部分です。cephadm では OSD service spec を作り、どのホストのどのデバイスを OSD として使うかを定義します。
sudo tee /root/ceph-work/ceph-osd-spec.yaml >/dev/null <<'EOF'
service_type: osd
service_id: default
placement:
host_pattern: ceph-node-01.example.com
spec:
data_devices:
paths:
- /dev/vdb
db_devices:
paths:
- /dev/vdc
unmanaged: false
EOF
sudo chmod 0600 /root/ceph-work/ceph-osd-spec.yamlOSD service spec を適用する
OSD service spec を適用する前に、orchestrator から見えるデバイスを確認します。確認後、spec を apply します。
sudo ceph orch device ls --hostname ceph-node-01.example.com --refresh
sudo ceph orch apply -i /root/ceph-work/ceph-osd-spec.yaml
sudo ceph orch ps
sudo ceph osd tree
sudo ceph statusCephFS と RBD はこの後に作る
Ceph クラスタ本体ができたら、次に pool、CephFS、RBD、クライアント認証を作ります。CephFS はファイルシステムとして利用し、RBD はブロックデバイスとして利用します。どちらもクラスタ本体が正常に動いていることが前提です。
- CephFS: 複数クライアントからファイルシステムとして利用する
- RBD: VM disk やアプリケーション用 block device として利用する
- Ceph クライアント共通設定:
ceph-common、ceph.conf、keyring を配置する
まとめ
Ubuntu 26.04 で Ceph を扱う場合、まず Ceph クラスタ本体を設計する必要があります。CephFS や RBD はその上に乗る利用形態であり、最初に考えるべきなのは MON、MGR、OSD、cephadm、orchestrator、OSD device の設計です。
単一ホスト Ceph は、自宅環境や検証環境では意味がありますが、一般的な高可用 Ceph とは違います。冗長性を捨てた設定を使う場合は、その意図と限界を理解した上で、CephFS や RBD の記事へ進むのが自然です。



