手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Ceph クラスターの基本構築 – cephadm bootstrap と OSD を構成する

関連する記事

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 status

Ceph パッケージを導入する

bootstrap を実行する管理ノードに、cephadm と Ceph クライアントパッケージを導入します。bootstrap 後の確認でも ceph コマンドを使います。

sudo apt update
sudo apt install -y cephadm python3-ceph-common ceph-common

Ceph 用の作業ディレクトリを作る

bootstrap 設定や OSD spec を置く作業ディレクトリを作成します。この記事では /srv/ceph/work を例にします。

sudo mkdir -p /srv/ceph/work
sudo chown "$USER:$USER" /srv/ceph/work
chmod 0755 /srv/ceph/work

bootstrap 設定を作成する

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
EOF

dashboard 用の証明書とパスワードを準備する

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.txt

cephadm 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 ls

cephadm の SSH ユーザーを確認する

Ceph orchestrator が他ホストを管理するには、cephadm が使う SSH ユーザーと公開鍵の配置が重要です。単一ノード検証でも、この仕組みを確認しておくと、後からノードを増やす時に詰まりにくくなります。

sudo ceph cephadm get-user
sudo ceph cephadm get-pub-key

cephadm の 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 myadmin

orchestrator 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,osd

Ceph の設定値を確認する

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_size

OSD spec を作成する

OSD は Ceph のデータ配置を担う要素です。対象ディスクを間違えるとデータを失うため、lsblkceph orch device ls で対象を確認してから spec を作成します。

lsblk
sudo ceph orch device ls --hostname ceph01 --refresh
sudo 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}
EOF

OSD spec を適用する

OSD spec を適用すると、指定したディスクが Ceph の OSD として初期化されます。対象デバイスが正しいことを確認してから実行します。

sudo ceph orch apply -i /srv/ceph/work/ceph-osd-spec.yaml

OSD とクラスター状態を確認する

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_sizeosd_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、マウント方式を設計すると、障害時の切り分けもしやすくなります。

関連する記事
Ubuntu 26.04 Ceph クラスターの基本構築 – cephadm bootstrap と OSD を構成する

コメントを残す

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

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

トップへ戻る