手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Ceph クラスタの基本設計と構築

Ubuntu 26.04 Ceph 関連の記事

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 を作る流れを確認する
対象 OSUbuntu 26.04
構築方式cephadm
主要パッケージcephadm, ceph-common, python3-ceph-common
主要コンポーネントMON, MGR, OSD, cephadm, orchestrator
後続記事CephFS, Ceph RBD, Ceph クライアント共通設定
この記事の位置づけCeph クラスタ本体の基本設計と初期構築
  1. 1
    構成方針を決める
    冗長構成か、検証用の単一ホスト構成かを先に決めます。
  2. 2
    cephadm を準備する
    Ceph の初期構築と管理に必要なパッケージを導入します。
  3. 3
    bootstrap する
    MON / MGR / dashboard を含む初期クラスタを作成します。
  4. 4
    orchestrator host を登録する
    cephadm が SSH で管理できるホストを登録します。
  5. 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
MDSCephFS を使う場合に必要になる Metadata Server
cephadmコンテナベースで Ceph daemon を展開・管理する仕組み
orchestratorホスト、daemon、OSD service spec を管理する層

単一ホスト Ceph は一般的な高可用構成ではない

小規模環境や検証環境では、単一ホストで Ceph を構成することがあります。ただし、これは一般的な高可用 Ceph クラスタとは別物です。Ceph は本来、複数ノード、複数 OSD、複数障害ドメインを前提に強みが出る分散ストレージです。

単一ホスト、osd_pool_default_size = 1mon_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 version

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

bootstrap 用の設定ファイルや OSD service spec を置く作業ディレクトリを作ります。ここでは例として /root/ceph-work を使います。

コマンド
sudo install -d -o root -g root -m 0700 /root/ceph-work

bootstrap 用設定を作成する

単一ホスト 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.conf

cephadm 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
dashboard password、TLS private key、FSID などは秘密情報または環境固有情報です。記事や共有資料には実値を書かず、構成管理や secret 管理側で扱います。

クラスタ状態を確認する

bootstrap 後は、まず ceph status でクラスタが応答するか確認します。

コマンド
sudo ceph status
sudo ceph orch host ls
sudo ceph orch ps

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

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

OSD 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.yaml
OSD に使うデバイスは、既存データが消えてよい専用デバイスを指定します。誤ったデバイスを指定するとデータを失います。

OSD 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 status

CephFS と RBD はこの後に作る

Ceph クラスタ本体ができたら、次に pool、CephFS、RBD、クライアント認証を作ります。CephFS はファイルシステムとして利用し、RBD はブロックデバイスとして利用します。どちらもクラスタ本体が正常に動いていることが前提です。

  • CephFS: 複数クライアントからファイルシステムとして利用する
  • RBD: VM disk やアプリケーション用 block device として利用する
  • Ceph クライアント共通設定: ceph-commonceph.conf、keyring を配置する

まとめ

Ubuntu 26.04 で Ceph を扱う場合、まず Ceph クラスタ本体を設計する必要があります。CephFS や RBD はその上に乗る利用形態であり、最初に考えるべきなのは MON、MGR、OSD、cephadm、orchestrator、OSD device の設計です。

単一ホスト Ceph は、自宅環境や検証環境では意味がありますが、一般的な高可用 Ceph とは違います。冗長性を捨てた設定を使う場合は、その意図と限界を理解した上で、CephFS や RBD の記事へ進むのが自然です。

Ubuntu 26.04 Ceph 関連の記事
Ubuntu 26.04 Ceph クラスタの基本設計と構築

コメントを残す

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

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

トップへ戻る