Ceph は、複数ノードのディスクを束ねて、オブジェクトストレージ、ブロックデバイス、ファイルシステムを提供する分散ストレージです。Ubuntu 26.04 では cephadm を使うと、コンテナベースの Ceph クラスターを比較的少ない手順で bootstrap できます。
この記事では、Ceph クラスターの最初の管理ノードで行う作業として、パッケージ導入、bootstrap 設定、cephadm bootstrap、orchestrator host、OSD spec、状態確認までを扱います。CephFS や RBD の pool 作成は、クラスターが起動した後の個別記事で扱います。
前提条件
- Ubuntu 26.04 の管理ノードを用意していること。
- Ceph monitor に使う固定 IP アドレスを決めていること。
- Ceph 用のデータディスクを OS 領域と分けていること。
- ホスト名、名前解決、時刻同期、管理用 SSH 接続が安定していること。
- 検証用の単一ノード構成と、本番用の冗長構成を混同しないこと。
hostnamectl
ip address
lsblk
timedatectl statusCeph パッケージを導入する
bootstrap を実行する管理ノードに、cephadm と Ceph クライアントパッケージを導入します。bootstrap 後の確認でも ceph コマンドを使います。
sudo apt update
sudo apt install -y cephadm python3-ceph-common ceph-commonCeph 用の作業ディレクトリを作る
bootstrap 設定や OSD spec を置く作業ディレクトリを作成します。この記事では /srv/ceph/work を例にします。
sudo mkdir -p /srv/ceph/work
sudo chown "$USER:$USER" /srv/ceph/work
chmod 0755 /srv/ceph/workbootstrap 設定を作成する
Ceph の初期設定は、クラスターの冗長性、PG 上限、dashboard の挙動などに影響します。以下は検証用の単一ノードに寄せた最小例です。本番では OSD 台数と障害許容方針に合わせて、pool size や warning 設定を見直します。
sudo tee /srv/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
EOFdashboard 用の証明書とパスワードを準備する
cephadm bootstrap では dashboard の初期ユーザー、パスワード、TLS 証明書を指定できます。以下は自己署名証明書を使う検証例です。本番では管理用 FQDN に合わせた証明書を使います。
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 3650 \
-keyout /srv/ceph/work/dashboard.key \
-out /srv/ceph/work/dashboard.crt \
-subj "/CN=ceph-dashboard.example.com"
sudo chmod 0600 /srv/ceph/work/dashboard.key
openssl rand -base64 24 | sudo tee /srv/ceph/work/dashboard-password.txt >/dev/null
sudo chmod 0600 /srv/ceph/work/dashboard-password.txtcephadm bootstrap を実行する
monitor に使う IP アドレス、FSID、bootstrap 設定、dashboard の TLS 証明書と初期認証情報を指定して bootstrap します。--single-host-defaults は検証用の単一ノード構成向けです。複数ノード構成では使い方を慎重に判断します。
FSID=$(uuidgen)
MON_IP=192.0.2.10
DASHBOARD_PASSWORD=$(sudo cat /srv/ceph/work/dashboard-password.txt)
sudo cephadm bootstrap \
--mon-ip "$MON_IP" \
--fsid "$FSID" \
--config /srv/ceph/work/ceph-bootstrap.conf \
--dashboard-crt /srv/ceph/work/dashboard.crt \
--dashboard-key /srv/ceph/work/dashboard.key \
--initial-dashboard-user admin \
--initial-dashboard-password "$DASHBOARD_PASSWORD" \
--allow-fqdn-hostname \
--single-host-defaults \
--dashboard-password-noupdateクラスター状態を確認する
bootstrap 後は、/etc/ceph/ceph.conf と管理 keyring が作られます。まず ceph status と orchestrator の状態を確認します。
sudo ceph status --format json
sudo ceph orch ps
sudo ceph orch host lscephadm の SSH ユーザーを確認する
Ceph orchestrator が他ホストを管理するには、cephadm が使う SSH ユーザーと公開鍵の配置が重要です。単一ノード検証でも、この仕組みを確認しておくと、後からノードを増やす時に詰まりにくくなります。
sudo ceph cephadm get-user
sudo ceph cephadm get-pub-keycephadm の SSH ユーザーを管理用ユーザーに合わせる場合は、対象ユーザーの authorized_keys に cephadm 公開鍵を登録してから設定します。
sudo install -d -m 0700 -o myadmin -g myadmin /home/myadmin/.ssh
sudo ceph cephadm get-pub-key | sudo tee -a /home/myadmin/.ssh/authorized_keys >/dev/null
sudo chown myadmin:myadmin /home/myadmin/.ssh/authorized_keys
sudo chmod 0600 /home/myadmin/.ssh/authorized_keys
sudo ceph cephadm set-user myadminorchestrator host を追加する
Ceph orchestrator に管理対象ホストを登録します。単一ノード検証では bootstrap したホストを登録し、役割を label として付けます。
sudo ceph orch host ls --format json
sudo ceph orch host add ceph01 192.0.2.10 --labels mon,mgr,osdCeph の設定値を確認する
bootstrap 設定ファイルに書いた値や、後から ceph config set で入れる値は、運用に直接影響します。必要な値だけを明示的に変更し、変更後は必ず確認します。
sudo ceph config set global osd_pool_default_size 1
sudo ceph config set global osd_pool_default_min_size 1
sudo ceph config get global osd_pool_default_size
sudo ceph config get global osd_pool_default_min_sizeOSD spec を作成する
OSD は Ceph のデータ配置を担う要素です。対象ディスクを間違えるとデータを失うため、lsblk と ceph orch device ls で対象を確認してから spec を作成します。
lsblk
sudo ceph orch device ls --hostname ceph01 --refreshsudo tee /srv/ceph/work/ceph-osd-spec.yaml >/dev/null <<'EOF'
service_type: osd
service_id: osd_default
placement: {host_pattern: ceph01}
spec: {data_devices: {paths: [/dev/sdb]}, unmanaged: false}
EOFOSD spec を適用する
OSD spec を適用すると、指定したディスクが Ceph の OSD として初期化されます。対象デバイスが正しいことを確認してから実行します。
sudo ceph orch apply -i /srv/ceph/work/ceph-osd-spec.yamlOSD とクラスター状態を確認する
OSD 作成後は、OSD tree、デバイス一覧、クラスター状態を確認します。単一ノード検証では冗長性に関する warning が出ることがありますが、本番環境で同じ状態にしないよう注意します。
sudo ceph osd tree
sudo ceph orch ps --daemon-type osd
sudo ceph orch device ls --hostname ceph01
sudo ceph status本番構成で見直す項目
osd_pool_default_sizeとosd_pool_default_min_sizeを単一ノード検証値のままにしないこと。- monitor、manager、OSD を複数ノードへ分散すること。
- dashboard の証明書とパスワードを管理用 FQDN と運用ルールに合わせること。
- OSD data device と db device の分離が必要か検討すること。
- CephFS や RBD の pool は、用途ごとに後続手順で作成すること。
まとめ
Ceph クラスターの初期構築では、cephadm bootstrap だけでなく、bootstrap 設定、dashboard、orchestrator host、OSD spec、状態確認を一つの流れとして扱うことが重要です。クラスターが安定してから、CephFS や RBD の pool、クライアント keyring、マウント方式を設計すると、障害時の切り分けもしやすくなります。

