ステータス:ドラフト(2026-10-29)、チャート原文基準、実測なし。 値はいずれもRook
v1.21.1タグが指すコミット09d2f0d8d883b70b30de796c4390371be725ff3bのdeploy/charts/rook-ceph/values.yamlとdeploy/charts/rook-ceph-cluster/values.yamlから 直接読み取ったもので、表の行番号はそのファイルの行です。リソースの合計と容量はvaluesとCephドキュメントのデフォルト値で 計算した値であり、計測したものではありません。 TT Lab実習クラスター(VM 3台、各VMに空きディスク17GiB)で実際に起動したポッドと容量は第4編で確認します。 作成規則:実測データを基本とし、計測できなかったものは「未計測」、原文から見つからなかったものは「未確認」と表示します。
目次
- 1. チャートは3つあり、順番がある
- 2. rook-ceph(operatorチャート)の重要な値
- 3. rook-ceph-clusterの外側の値
- 4. cephClusterSpec:CephClusterそのもの
- 5. ブロックプール、ファイルシステム、オブジェクトストレージのデフォルト値
- 6. デフォルトのまま使うと危険な箇所
- 7. 実習クラスターでメモリとCPUを削減する場合
- 8. まとめ
- 参考
1. チャートは3つあり、順番がある
Rookドキュメント(Helm Charts Overview)では、 v1.21のチャートを3つ紹介しています。一般に「rook-cephとrook-ceph-clusterの2つをデプロイすればよい」と知られていますが、v1.20からその中間に1つ追加されました。
| 順序 | チャート | 取得元 | 作成するもの |
|---|---|---|---|
| 1 | rook-ceph |
Rookリポジトリ | Rook operator Deployment、CRD、RBAC、サブチャート ceph-csi-operator 1.1.0 |
| 2 | ceph-csi-drivers |
ceph-csi-operatorのHelmリポジトリ、Rookに合わせたvaluesを使用 | OperatorConfig、RBD・CephFS Driver CR、ドライバーポッドのRBAC |
| 3 | rook-ceph-cluster |
Rookリポジトリ | CephCluster、ブロックプール・ファイルシステム・オブジェクトストレージ CR、そのStorageClass、toolbox(デフォルトでは無効) |
2番目を漏らすとPVCがバインドされません。 アップグレードドキュメントには、このチャートがないとサービスアカウントが存在しないためCSIドライバーが失敗状態になると記載されており、
operatorチャートドキュメントのインストール手順も「operatorチャート → CSIドライバーチャート → クラスター」の順序となっています
(Ceph Operator Helm Chart,
Rook Upgrades).
ceph-csi-drivers はデフォルト値だけでインストールするとドライバーが失敗するため、Rookリポジトリの
deploy/charts/ceph-csi-drivers/values.yamlを
必ず一緒に適用するようドキュメントで強調されています。そのファイルでドライバー名が rook-ceph.rbd.csi.ceph.com のようにoperatorのネームスペースに合わせられます。
helm repo add rook-release https://charts.rook.io/release
helm install --create-namespace -n rook-ceph rook-ceph rook-release/rook-ceph -f operator-values.yaml
helm repo add ceph-csi-operator https://ceph.github.io/ceph-csi-operator
helm install -n rook-ceph ceph-csi-drivers ceph-csi-operator/ceph-csi-drivers \
-f https://raw.githubusercontent.com/rook/rook/v1.21.1/deploy/charts/ceph-csi-drivers/values.yaml
helm install -n rook-ceph rook-ceph-cluster rook-release/rook-ceph-cluster \
--set operatorNamespace=rook-ceph -f cluster-values.yaml
コマンドはドキュメントの例をそのまま転載したものです。クラスターチャートのドキュメントでは、values全体をコピーせず 変更する値のみを含んだファイルを作成するよう推奨しています。
ちなみにタグの Chart.yaml には両方のチャートに version: 0.0.1 が記載されており、デプロイされるチャートのバージョンはリリースプロセスで付与されるものと
思われます(未確認)。v1.21以降、OCIチャートのタグには v が付きません。
2. rook-ceph(operatorチャート)の重要な値
ファイル全体が245行と短いです (values.yaml).
| キー | デフォルト値 | 意味とメモ | 行 |
|---|---|---|---|
image.tag |
v1.21.1 |
operatorイメージ docker.io/rook/ceph |
L10 |
crds.enabled |
true |
チャートがCRDを作成および更新する。 初回のインストール時のみ指定することという警告:後で無効化するとクラスターが破壊される可能性がある | L21 |
resources |
要求 CPU 200m・メモリ 128Mi、上限メモリ 512Mi | operatorポッドのリソース | L24 |
unreachableNodeTolerationSeconds |
5 |
ノードが応答しない場合にoperatorポッドを移動させるまでの時間。Kubernetesデフォルトの5分ではなく5秒 | L42 |
currentNamespaceOnly |
false |
自身のネームスペースのCephClusterのみを監視するかどうか | L45 |
logLevel |
INFO |
ERROR·WARNING·INFO·DEBUG |
L58 |
containerSecurityContext |
runAsNonRoot、UID 2016、すべてのcapabilitiesを削除 | operatorコンテナのセキュリティコンテキスト | L71 |
allowLoopDevices |
false |
テスト用クラスターでloopデバイスをOSDとして使用するかどうか | L78 |
monRunAsRoot |
false |
monポッドをrootとして実行するかどうか | L81 |
deleteUnusedCrushRules |
true |
mgrの起動後に使用されない自動生成されたCRUSHルールを削除する | L84 |
csi.installCsiOperator |
true |
ceph-csi-operatorサブチャートをインストールする | L95 |
csi.cephcsi などのイメージ7種 |
すべて空の値 | 空欄にすると ceph-csi-operator の内蔵イメージを使用する。変更する場合のみリポジトリとタグを記述する | L102 |
csi.serviceMonitor.enabled |
false(有効化時は5秒間隔) |
CSI指標用のServiceMonitor | L144 |
enableDiscoveryDaemon |
false(間隔 60m) |
ノード上の新しいディスクを定期的に検出するデーモン | L156 |
cephCommandsTimeoutSeconds |
"15" |
operatorが呼び出すcephコマンドのタイムアウト(秒) | L161 |
scaleDownOperator |
false |
GitOpsでデプロイする際、operatorを0にスケールダウンして手動でメンテナンスするためのスイッチ | L169 |
enforceHostNetwork |
false |
すべてのRookポッドをホストネットワークにする(CNIがない環境) | L213 |
disableDeviceHotplug |
false |
新しいデバイスが検出されたときに自動的にOSDを作成する動作を無効化するかどうか | L216 |
enableOBCWatchOperatorNamespace |
true |
OBCプロビジョナーがoperatorのネームスペースを監視するかどうか | L229 |
obcAllowAdditionalConfigFields |
"maxObjects,maxSize" |
OBCユーザーが指定できる追加フィールド。残りの項目(バケットポリシー・ライフサイクル・オーナーなど)は危険であるとコメントが警告 | L240 |
monitoring.enabled |
false |
有効にすると、operatorがServiceMonitorを作成するためのRBACを取得する。Prometheusが事前に存在している必要がある | L245 |
CSIの設定の大部分はこのチャートから移行しました。 以前はこのチャートの csi 配下でプロビジョナーのレプリカ数、kubeletのパス、ドライバーごとのリソースなどの
値を指定していましたが、アップグレードドキュメントでは、現在そのような値は ceph-csi-drivers チャートの設定で探すよう案内されています。このチャートに残っている csi は、サブチャートをインストールするかどうかとイメージの上書き、ServiceMonitor程度です。ceph-csi-operatorサブチャート自体の設定はvaluesの
ceph-csi-operator セクション(L86)に記述します。
3. rook-ceph-clusterの外側の値
ここからは844行のクラスターチャートです
(values.yaml).
cephClusterSpec の外側にある値から見ていきます。
| キー | デフォルト値 | 意味とメモ | 行 |
|---|---|---|---|
operatorNamespace |
rook-ceph |
operatorが存在するネームスペース。StorageClassのプロビジョナー名のプレフィックスになる | L6 |
configOverride |
なし | ceph.confに追加する内容 | L16 |
toolbox.enabled |
false |
rook-ceph-tools Deployment。イメージはCephイメージと同等。要求 128Mi・上限 1Gi |
L26 |
monitoring.enabled |
false |
Prometheus連携。 metricsDisabled: false によりmgrのprometheusモジュールとexporterがデフォルトで有効になる |
L72 |
monitoring.createPrometheusRules |
false |
Cephアラート規則(PrometheusRule)を作成するかどうか | L76 |
cephImage |
quay.io/ceph/ceph:v20.2.4, allowUnsupported: false |
Ceph Tentacle。コメントでは本番環境では v20.2.4-20260818 のような日付付きタグに固定するよう推奨している |
L124 |
ingress.dashboard, route.dashboard |
空 | ダッシュボードをIngressやHTTPRouteで公開する場合 | L475 |
cephFileSystemVolumeSnapshotClass, cephBlockPoolsVolumeSnapshotClass |
enabled: false |
スナップショットクラス。使用する場合は有効にする | L642 |
csiDriverNamePrefix |
空 | 空欄にするとoperatorのネームスペースがドライバー名のプレフィックスになる | L844 |
4. cephClusterSpec:CephClusterそのもの
cephClusterSpec はCephCluster CRの spec にそのまま挿入されます。クラスターチャートのドキュメントには、このデフォルト値は「あくまで例であり、お使いのクラスターに
適している可能性は低い」と記載されています。
| キー | デフォルト値 | 意味とメモ | 行 |
|---|---|---|---|
dataDirHostPath |
/var/lib/rook |
monのデータと設定を配置するホストパス。 再インストール時にこのディレクトリを削除しないと、新しいクラスターでmonが起動しない | L150 |
skipUpgradeChecks |
false |
アップグレード前のチェックをスキップするかどうか | L156 |
continueUpgradeAfterChecksEvenIfNotHealthy |
false |
PGがクリーンでなくても続行するかどうか | L159 |
waitTimeoutForHealthyOSDInMinutes |
10 |
1つのOSDを停止しても安全な状態になるのを待つ時間 | L166 |
upgradeOSDRequiresHealthyPGs |
false |
PGが健全な状態でなければOSDのアップグレードを開始しないかどうか | L171 |
security.cephx.csi.keyType |
aes |
コメント:ノードカーネルが7.0未満の場合に必要 | L176 |
mon.count |
3 |
monの数。ドキュメント上は1〜9、奇数が推奨 | L181 |
mon.allowMultiplePerNode |
false |
同一ノード上の複数のmon。 データ損失を許容するテスト環境でのみ使用 | L184 |
mgr.count |
2 |
1つはactive、1つはstandby。2つの場合、mgrサイドカーも付く | L190 |
mgr.modules |
rook モジュール無効 |
rook mgrモジュールは非推奨であるとコメントに記載されている | L196 |
dashboard.enabled·ssl |
true·true |
ダッシュボード有効、証明書が提供されない場合は自己署名証明書 | L201 |
network.connections.encryption |
false |
転送暗号化。有効にするにはカーネル5.11以上が必要 | L223 |
network.connections.compression |
false |
転送圧縮 | L227 |
network.connections.requireMsgr2 |
true |
msgr v1ポート(6789)を閉じ、v2(3300)のみにする。カーネル5.11以上が必要 | L231 |
crashCollector.disable |
false |
デーモンクラッシュダンプ収集ツール(ノードごとに1つのポッド) | L253 |
logCollector |
有効、毎日、最大500M | 各デーモンのログファイルローテーション用サイドカー | L260 |
cleanupPolicy.confirmation |
"" |
第2編第7節。削除時のみ yes-really-destroy-data |
L271 |
cleanupPolicy.sanitizeDisks |
quick·zero・1回 |
ディスクの消去方式 | L277 |
removeOSDsIfOutAndSafeToRemove |
false |
out状態で削除しても安全なOSDを自動的に除外するかどうか | L409 |
priorityClassNames |
mon・osd system-node-critical、mgr system-cluster-critical |
リソースが不足した際に優先的に追い出されないようにする | L412 |
storage.useAllNodes |
true |
すべてのノードをストレージノードにする | L418 |
storage.useAllDevices |
true |
使用可能なすべてのデバイスをOSDにする | L419 |
storage.deviceFilter·nodes |
コメントアウト | デバイス名の正規表現、ノードごとのデバイスリスト | L420 |
disruptionManagement.managePodBudgets |
true |
OSD・mon・RGW・MDSのPodDisruptionBudgetをoperatorが管理する | L446 |
disruptionManagement.osdMaintenanceTimeout |
30 |
ドレイン中の障害ドメインをnooutで保持し続ける時間(分) | L449 |
healthCheck.daemonHealth |
mon 45s、osd 60s、status 60s | チェック間隔。monの timeout は記載されていないため、コードのデフォルト値である10分(第2編)が使用される |
L453 |
リソース要求(resources)
cephClusterSpec.resources(L340)のデフォルト値です。Rookのドキュメントでは「低すぎると警告が表示されるだけでそのまま起動する」とされており、その基準となる推奨
最低値も記載されています(CephCluster CRD)。
ソースコードを見ると、このチェックは 上限(limit) を基準としており、上限が要求を下回る場合はエラーとみなされます
(spec.go#L486-L520).
| 対象 | 要求 CPU | 要求メモリ | 上限メモリ | Rook推奨最小値 | 行 |
|---|---|---|---|---|---|
| mgr | 500m | 512Mi | 1Gi | 512MB | L341 |
| mon | 1000m | 1Gi | 2Gi | 1024MB | L347 |
| osd | 1000m | 4Gi | 4Gi | 2048MB | L353 |
| prepareosd | 500m | 50Mi | なし(設定しないことを推奨) | 上限なし | L359 |
| mgr-sidecar | 100m | 40Mi | 100Mi | 上限100MB・要求40MB | L371 |
| crashcollector | 100m | 60Mi | 60Mi | 60MB | L377 |
| logcollector | 100m | 100Mi | 1Gi | 未確認 | L383 |
| cleanup | 500m | 100Mi | 1Gi | 未確認 | L389 |
| exporter | 50m | 50Mi | 128Mi | 上限 128MB・リクエスト 50MB | L395 |
| cmd-reporter | 500m | 100Mi | 1Gi | 未確認 | L401 |
OSD のメモリを少なく設定すると、Rook が Ceph の osd_memory_target を同じ値に合わせるとドキュメントに記載されています。第 1 編で見たように、この値の Ceph デフォルトは 4Gi であるため、チャートのデフォルト値(4Gi)は Ceph のデフォルトと同じになります。MDS および RGW のリソースはここではなく、それぞれのセクションにあります(第 5 節)。
5. ブロックプール、ファイルシステム、オブジェクトストアのデフォルト値
クラスターチャートはデフォルトで 3 種類を 1 つずつ 作成し、それぞれに StorageClass をアタッチします。この StorageClass は operator ではなくチャートのテンプレートが作成します(第 2 編第 9 節)。
cephBlockPools: ceph-blockpool と StorageClass ceph-block
| キー | デフォルト値 | メモ | 行 |
|---|---|---|---|
spec.failureDomain |
host |
レプリカごとに異なるホスト | L520 |
spec.replicated.size |
3 |
3 レプリカ | L522 |
storageClass.isDefault |
true |
クラスターのデフォルト StorageClass になる | L531 |
storageClass.reclaimPolicy |
Delete |
PVC を削除すると RBD イメージも削除する | L532 |
storageClass.allowVolumeExpansion |
true |
ボリューム拡張を許可 | L533 |
storageClass.volumeBindingMode |
Immediate |
PVC が作成され次第すぐに作成する | L534 |
parameters.imageFormat |
"2" |
RBD イメージ形式 | L559 |
parameters.imageFeatures |
layering |
注記: カーネル RBD は 5.4 以降で全機能をサポートしますが、デフォルトは layering のみです | L565 |
parameters の Secret 6 ペア |
rook-csi-rbd-provisioner, rook-csi-rbd-node |
provisioner・expand・publish・node-stage・modify・node-publish で使用する cephx キー。operator が作成する(第 2 編) | L568 |
parameters."csi.storage.k8s.io/fstype" |
ext4 |
注記: OSD と同じノードにボリュームをマウントする構成では XFS がデッドロックに陥る可能性があるため推奨されない | L585 |
テンプレート(cephblockpool.yaml)が
provisioner: <operatorNamespace>.rbd.csi.ceph.com と pool·clusterID(クラスター名前空間)を付加します。
cephFileSystems: ceph-filesystem と StorageClass ceph-filesystem
| キー | デフォルト値 | メモ | 行 |
|---|---|---|---|
metadataPool.replicated.size |
3 |
メタデータプール | L595 |
dataPools[0] |
名前 data0, host、size 3 |
データプール | L597 |
metadataServer.activeCount |
1 |
アクティブ MDS が 1 つ、Rook はその 2 倍(2 つ)を起動する | L603 |
metadataServer.activeStandby |
true |
スタンバイ MDS がキャッシュをウォーム状態に維持 | L604 |
metadataServer.resources |
リクエスト CPU 1000m・メモリ 4Gi、上限 4Gi | Rook は MDS メモリを 4096MB 以上推奨し、上限として mds_cache_memory_limit を設定する |
L605 |
storageClass.isDefault |
false |
L614 | |
storageClass.pool |
data0 |
L617 | |
storageClass.reclaimPolicy |
Delete |
L618 |
CephFilesystem の preserveFilesystemOnDelete はチャートに存在しないため、CRD デフォルト値 false が使用されます。CR を削除するとファイルシステムも一緒に削除されるという意味です(CephFilesystem CRD).
cephObjectStores: ceph-objectstore と StorageClass ceph-bucket
| キー | デフォルト値 | メモ | 行 |
|---|---|---|---|
metadataPool |
host、レプリケーション size 3 |
バケットインデックスなど | L670 |
dataPool.erasureCoded |
K=2, M=1, host |
データプールはイレージャーコーディング | L674 |
dataPool.parameters.bulk |
"true" |
PG オートスケーラーが最初から多くの PG を割り当てる(第 1 編) | L680 |
preservePoolsOnDelete |
true |
CR を削除してもプールは残す | L681 |
gateway.port |
80 |
HTTP. securePort・証明書はコメントアウト |
L683 |
gateway.instances |
1 |
RGW ポッド 1 つ | L692 |
gateway.resources |
リクエスト CPU 1000m・メモリ 1Gi、上限 2Gi | L684 | |
storageClass |
ceph-bucket, Delete, region: us-east-1 |
provisioner は <클러스터 네임스페이스>.ceph.rook.io/bucket |
L701 |
ingress.enabled·route.enabled |
false |
クラスター外へエクスポートする場合 | L712 |
マルチサイト(realm・zonegroup・zone)、オブジェクトストアユーザー、EC ブロックプールは values 内にコメントとしてのみ記載されており、デフォルトでは作成されません(L743 以降)。
6. デフォルトのまま使用すると危険な箇所
警告 1.
useAllNodes: true+useAllDevices: true(L418、L419)。 すべてのノードの使用可能なすべてのデバイスが OSD となり、フォーマットされます。第 2 編で見たように、マウントされているか、ファイルシステムや OSD の署名があるデバイスはスキップされますが、 署名の全くない空のディスクは確認なしに使用されます。 他の用途のために適当に接続したディスクや、まだフォーマットしていないディスクがその対象となります。CephCluster のドキュメントには、useAllDevices「デバイスを消去する危険性のない非常に制御された環境でなければ推奨しない」と記載されており、運用環境ではuseAllNodes: falseを用いてノードを明示することが推奨されます。最低限、deviceFilter(例:検証用 VM の空ディスク名に一致する正規表現)やノードごとのdevicesを記載してください。
警告 2.
ceph-blockのisDefault: true(L531)。 インストールした瞬間に、ceph-blockが Kubernetes 全体のデフォルト StorageClass になります。すでに別のデフォルト StorageClass が存在する場合、デフォルトが 2 つになり、Kubernetes はこのときstorageClassNameの指定がない PVC に対して 最も最近作成された デフォルト StorageClass を使用します(Kubernetes: Default StorageClass)。既存のアプリの新しい PVC が意図せず Ceph へルーティングされることになります。既存のクラスターに導入する場合はfalseのままにしてください。
警告 3. オブジェクトストアデータプールの EC 2+1(L674)。 Ceph のドキュメントでは M=1 プロファイルについて「本番データには強く推奨しない」と記載されています。メンテナンス中にデータにアクセスできなくなり、障害が重なるとデータが失われます。また、K+M=3 であるため、
hostの障害ドメインにおいてホストが正確に 3 台以上必要であり、推奨通りにmin_sizeを K+1=3 に設定すると、ホストが 1 台ダウンしただけでもそのプールは書き込みを停止します(実際のmin_sizeの値は第 4 編で確認、未実測)。本番環境であれば、レプリケーション 3 または K=4、M=2 を検討してください。
警告 4. 削除すると消えてしまうもの。 StorageClass 3 つの
reclaimPolicyがいずれもDeleteであるため、PVC を削除するとデータも削除されます。ファイルシステムはpreserveFilesystemOnDeleteがデフォルトでfalseであるため、CR を削除するとファイルシステムも削除されます。逆にオブジェクトストアはpreservePoolsOnDelete: trueとなるため、プールは残ります。3 つのデフォルトがそれぞれ異なる点に留意してください。
警告 5.
crds.enabled(operator チャート L21)。 初回インストール時に設定した値を後からfalseに変更すると、クラスターが破壊される可能性があるとコメントで警告されています。同様のコメントは、CRD が削除された場合に備えて災害復旧ドキュメントの「削除後の CRD 復旧」セクションを指し示しています。この値はインストール時に一度決定したら変更しないでください。
警告 6.
requireMsgr2: trueとkeyType: aes(L231、L176)。 msgr2 にはカーネル 5.11 以降が必要であり、アップグレードドキュメントでは、より古いカーネルの場合はrequireMsgr2: falseで無効化するよう案内しています。keyType: aesは、ノードのカーネルが 7.0 未満である場合に必要であるとコメントに記載されています。ノードのカーネルバージョンから確認してください。mon.allowMultiplePerNode(L184)とrequireSafeReplicaSize: false(プール CRD、size 1 を許可)は、テスト環境以外では有効にしないでください。
7. 検証用クラスターでメモリと CPU を削減する場合
TT Lab の検証用クラスターは、VM 3 台に空きディスクが 1 つずつ(17GiB)接続された構成です。デフォルト値でインストールした場合、Ceph ポッドが リクエストするリソースを values から計算すると以下のようになります。個数は、ノードセット、ディスクセット、デフォルトのプール・ファイルシステム・オブジェクトストアがそれぞれ 1 つずつであると仮定しています。
| ポッド | 数量 | CPU リクエスト合計 | メモリリクエスト合計 |
|---|---|---|---|
| osd | 3 | 3000m | 12Gi |
| mds | 2(アクティブ 1 + スタンバイ 1) | 2000m | 8Gi |
| mon | 3 | 3000m | 3Gi |
| mgr + サイドカー | 2 + 2 | 1200m | 1104Mi |
| rgw | 1 | 1000m | 1Gi |
| logcollector サイドカー | デーモンごとに 1 つと仮定し 11 | 1100m | 1100Mi |
| crashcollector, exporter | ノードごとに 1 つずつ 3 + 3 | 450m | 330Mi |
| operator | 1 | 200m | 128Mi |
| 合計 | 約 12 コア | 約 26.6Gi |
CSI ポッド(ctrlplugin・nodeplugin)と ceph-csi-operator のリクエストは該当チャートのデフォルト値であるため含めていません(未確認)。ポッドが Pending で停止する場合は、まずこの合計値を VM の CPU およびメモリと比較してみてください。実際にスケジュールされた値は第 4 編で確認します。
削減する際に変更する値です。以下は 提案であり、この組み合わせで起動した実績はありません(未実測)。
cephClusterSpec:
mgr:
count: 1 # mgr 하나와 사이드카 둘이 빠진다
dashboard:
enabled: false
crashCollector:
disable: true # cluster-test.yaml 도 끈다
logCollector:
enabled: false # 데몬마다 붙는 로그 사이드카가 빠진다
resources:
mon:
requests: {cpu: 250m, memory: 512Mi}
limits: {memory: 1Gi} # 권장 최소 1024MB 와 같다
mgr:
requests: {cpu: 250m, memory: 512Mi}
limits: {memory: 512Mi} # 권장 최소 512MB
osd:
requests: {cpu: 500m, memory: 2Gi}
limits: {memory: 2Gi} # 권장 최소 2048MB, osd_memory_target 도 2Gi 가 된다
cephFileSystems:
- name: ceph-filesystem
spec:
metadataServer:
activeCount: 1
activeStandby: false
resources:
requests: {cpu: 250m, memory: 1Gi}
limits: {memory: 1Gi} # 권장 4096MB 보다 낮아 operator 가 경고를 찍는다
cephObjectStores:
- name: ceph-objectstore
spec:
gateway:
instances: 1
resources:
requests: {cpu: 250m, memory: 512Mi}
limits: {memory: 1Gi}
リスト値(cephFileSystems, cephObjectStores)は Helm が丸ごと置き換えるため、実際のファイルにはデフォルト値の残りのフィールド(プール、StorageClass)を一緒に記述する必要があります。上記の断片では変更するフィールドのみを表示するために省略しています。RWX ボリュームや S3 が不要な場合は cephFileSystems: [],
cephObjectStores: [] で完全に除外することが最も大きな削減になります。 activeStandby: false はスタンバイ MDS をコールドスタンバイに変更するだけで、MDS の数(2)はそのままです(第 2 編第 2 節)。
上記組み合わせのリクエスト合計を同様の方法で計算すると、メモリは約 10.8Gi(osd 6Gi、mds 2Gi、mon 1.5Gi、mgr 512Mi、rgw 512Mi、exporter 150Mi、operator 128Mi)、CPU は約 3.6 コアです。その代わり、OSD のメモリ目標が 4Gi から 2Gi に減少し、BlueStore キャッシュが小さくなり(パフォーマンスへの影響は未実測)、MDS は Rook の推奨値を下回ります。パフォーマンスへの影響は、測定終了後に別途執筆するパフォーマンス編で取り上げます。
同じ方向性の公式の例として、Rook ストレージの
deploy/examples/cluster-test.yamlがあります。リソースリクエストを全く設定せず、mon・mgr を 1 つずつにし、 osd_memory_target を 1GiB に、プールサイズを 1 にした構成です。ファイルの冒頭コメントでは「ノード 1 台で十分な小規模テストクラスター」として紹介されています。レプリカが 1 つであるためデータ保護はありません。
容量計算
ディスクセットの元容量は 51GiB です。Ceph は OSD の使用率が mon_osd_nearfull_ratio(0.85)を超えると警告を発し、 mon_osd_full_ratio(0.95)に達すると書き込みをブロックします(Monitor Config Reference).
| プール種別 | 空間倍数 | full(0.95)に達するまでに格納できる実データ | nearfull(0.85)の警告まで |
|---|---|---|---|
| レプリケーション size 3(ブロック、ファイルシステム) | 3.0 | 約 16.2GiB | 約 14.5GiB |
| EC 2+1(オブジェクトデータ) | 1.5 | 約 32.3GiB | 約 28.9GiB |
すべてのプールが同じ元容量を分割して使用するため、2 つの行を単純に足し合わせることはできません。BlueStore と RocksDB の固定オーバーヘッド、PG が均等に分散されない度合いは除外しています(未実測)。実際に使用可能な量は第 4 編の ceph df で確認します。
8. まとめ
- チャートは 3 つであり、順序は
rook-ceph→ceph-csi-drivers→rook-ceph-clusterです。真ん中を抜かすと CSI が失敗します。 - operator チャートは短く、ほとんどはデフォルトで十分です。確認すべきなのは
crds.enabled,monitoring.enabled、OBC フィールドの許可程度です。 - クラスターチャートのデフォルト値は「サンプル」です。少なくとも
storage(どのディスクを使用するか)、isDefault、オブジェクトデータプールの EC プロファイル、リソースリクエストはご自身で決定してください。
T-ти(ティティ)の一言。 values.yaml は「デフォルトでこのように設定しておきますね」というお手紙です。しかし、このお手紙には「空きディスクはすべて使います」、「私がデフォルトの StorageClass になります」といった、なかなか大胆な文章が混ざっています。インストールボタンを押す前に、その数行だけは必ず読み返してください!
参考
values およびドキュメントはいずれも 2026-10-29 時点の指定コミットで閲覧しました。
- rook-ceph values.yaml: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/deploy/charts/rook-ceph/values.yaml
- rook-ceph-cluster values.yaml: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/deploy/charts/rook-ceph-cluster/values.yaml
- Rook が調整した ceph-csi-drivers values: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/deploy/charts/ceph-csi-drivers/values.yaml
- Helm Charts Overview, Operator 차트, Cluster 차트, CSI 드라이버 차트 문서: https://github.com/rook/rook/tree/09d2f0d8d883b70b30de796c4390371be725ff3b/Documentation/Helm-Charts
- CephCluster CRD: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/Documentation/CRDs/Cluster/ceph-cluster-crd.md
- CephBlockPool CRD: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/Documentation/CRDs/Block-Storage/ceph-block-pool-crd.md
- CephFilesystem CRD: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/Documentation/CRDs/Shared-Filesystem/ceph-filesystem-crd.md
- CephObjectStore CRD: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/Documentation/CRDs/Object-Storage/ceph-object-store-crd.md
- cluster-test.yaml: https://github.com/rook/rook/blob/09d2f0d8d883b70b30de796c4390371be725ff3b/deploy/examples/cluster-test.yaml
- Ceph Erasure Code: https://docs.ceph.com/en/tentacle/rados/operations/erasure-code/
- Ceph Monitor Config Reference: https://docs.ceph.com/en/tentacle/rados/configuration/mon-config-ref/
- Kubernetes Storage Classes: https://kubernetes.io/docs/concepts/storage/storage-classes/