多くのホームサーバーでは、512GBが実用的なNVMeアプリプールの基準になります。ただし、適切な容量は、永続ボリューム、データベース、イメージ、ログ、アップデート、スナップショット、そして確保しておきたい空き容量によって決まります。ログを適切に管理した小規模なスタックなら256GBに収まりますが、フォトサーバー、複数のデータベース、VM、またはアプリケーションの変更が頻繁な環境では、1TB以上を選ぶほうが安全です。ダッシュボード上のアプリ数ではなく、実際に測定した増加量を基準にプール容量を決めましょう。
アプリプールに実際に保存されるすべての容量消費要因を数える
アプリプールは、アプリケーションのバイナリだけで構成されているとは限りません。コンテナイメージ、書き込み可能レイヤー、永続ボリューム、データベースファイル、サムネイル、検索インデックス、パッケージキャッシュ、一時的なエクスポート、ログなどは、意識して別の場所に配置しない限り、同じNVMeデバイスに保存される可能性があります。
コンテナのディスク使用量はイメージ、レイヤー、ボリュームにまたがることを示す実用的なDockerストレージ解説があります。そのため、イメージサイズだけを数えると、プール容量を過小評価することになります。永続ボリュームは、それを使用するコンテナよりはるかに大きくなる場合があります。
現在のアプリプールは、ディレクトリ全体の合計ではなく、カテゴリー別に測定しましょう。対象は、イメージとビルドキャッシュ、データベース、永続的なアプリデータ、サムネイルとインデックス、ログ、一時ファイル、スナップショットです。この一覧があれば、将来の増加を予測しやすくなり、どのデータを大容量ストレージへ移せるかも分かります。
現在のスタックが256GBプールの半分未満しか使用しておらず、増加も緩やかなら、いきなり数TBのNVMeに移行する理由はありません。一方、データベース、サムネイル、書き込みの多いサービスがすでに急速に増加しているなら、次のアプリをインストールする前に、その増加量を開始時の容量へ反映すべきです。
大容量メディアとバックアップを高速なアプリ階層から分離する
NVMeの価値が最も発揮されるのは、データベース、メタデータ、インデックス、VMディスク、コンテナレイヤー、頻繁にアクセスする小さなファイルなど、レイテンシーの影響を受けやすいアプリケーションの状態です。大量の動画ライブラリ、整理済みの写真アーカイブ、バックアップリポジトリなど、順次アクセスが中心の大容量データは、同じ高価な高速階層を消費する必要がない場合がほとんどです。
永続コンテナストレージは、明示的に管理すると制御しやすくなります。Dockerボリュームのガイドでは、ボリュームによって使い捨てのコンテナレイヤーの外部に状態を保持する方法を説明しています。これにより、どのアプリケーションデータをNVMeに置く価値があるか、どのデータをより大きなストレージプールに置くべきかを判断できます。
ZimaSpaceのブートデータとアプリデータの分離に関するセットアップガイドでは、もう一つ有用な境界が示されています。OSファイル、アプリケーションの状態、ユーザーデータの役割を明確に分けると、ホームサーバーを再構築しやすくなります。
メディア、ダウンロード、バックアップアーカイブを手軽さからアプリプールに保存しているために、プールが繰り返し満杯になるのであれば、より大容量のNVMeを購入するだけでは解決になりません。大容量データ向けに設計された階層へ移し、低レイテンシーの恩恵を実際に受けるデータを基準にNVMe容量を決めましょう。
イメージ、アップデート、ビルドキャッシュの増減に備えて容量を確保する
稼働中のデータベースが増えていなくても、コンテナスタックは拡大します。新しいイメージが取得され、古いバージョンは削除されるまで残り、停止したコンテナが蓄積し、テスト後もビルドキャッシュが残ることがあります。アップグレード時には、一時的に古いイメージセットと新しいイメージセットの両方が必要になる場合もあります。
Dockerのディスク容量の把握方法に関する最新のガイドでは、イメージ、コンテナ、ボリューム、ビルドキャッシュを分けて、回収可能な容量を確認できます。プールがほぼ満杯になったとき、ハードウェアを追加すべきか、ライフサイクル管理を改善すべきかを判断するには、この方法が適しています。
通常のアップデート後にアプリプールが95%使用済みになるような容量設計は避けてください。イメージの置き換え、データベースのメンテナンス、ファイルシステムの処理、アップグレード時に発生する一時的な重複のために、未割り当ての容量を十分に残しましょう。必要な予備容量は環境によって異なりますが、運用上の余裕がないプールは、すでに容量不足です。
小規模なスタックを適切に管理するなら、256GBでも運用できます。イメージやアプリケーションが時間とともに変化する一般的なホームサーバーでは、512GBがより安全な基準です。あらゆるアップデートのたびにクリーンアップが必要になることなく、増減に対応できる余裕が生まれます。
ログと一時ファイルは、アプリよりも早く容量計画を破綻させることがある
ログの増加は、一見小規模なアプリスタックがNVMeプールを消費する最も簡単な原因の一つです。ログ出力の多いコンテナは何週間も継続的に書き込みを行う可能性があり、失敗したジョブ、デバッグモード、メディア解析、ダウンロードツールなどが、定常状態のアプリケーションデータをはるかに上回る一時ファイルを作成することもあります。
コンテナのロギングに関するガイドでは、ログ保持を明示的に管理する必要性を説明しています。ログが小さいままだと決めつけるのではなく、ログローテーションと保持ルールを容量計画に含めるべきです。単に大容量SSDを購入するだけでは不十分です。
ZimaSpaceのDockerログがホストストレージを圧迫する問題に関するトラブルシューティング記事では、無制限の書き込み経路を、ファイルシステムを常に書き込み可能にしておく必要があるサービスと同じ領域に置いた場合の運用上の影響を示しています。
512GBから1TBへ移行する前に、1か月間、最も増加しているディレクトリを確認しましょう。増加の大部分がログや一時データによるものなら、まず保持ルールを修正してください。正当なデータベース、インデックス、サムネイル、VMディスクが増加しているなら、大容量プールを選ぶことで適切な問題を解決できます。
容量は、書き込み耐久性と障害復旧も考慮して選ぶ
アプリケーションプールは、メディアアーカイブよりも書き込みが多くなることがよくあります。データベースはページを更新し、ログは追記され、コンテナはレイヤーを置き換え、キャッシュは頻繁に変化し、スナップショットやVMディスクが継続的な書き込みを発生させることがあります。そのため、NVMeを選ぶ際は、表示上の最高速度だけでなく、耐久性と温度特性も考慮すべきです。
NAS向けNVMe SSDのレビューでは、プライマリストレージやキャッシュ用途において、耐久性を重要な特性として扱っています。より広い意味での購入時の教訓は、アプリケーションデータが時間とともにどれだけ書き換えられるかに、ドライブのクラスを合わせることです。
ミラーリングによっても使用可能容量は変わります。同容量のNVMeデバイス2台をミラーリングすると、ファイルシステムのオーバーヘッドや予約済みの空き容量を除き、使用可能な容量はおおむね1台分になります。そのため、「1TBドライブ2台のアプリプール」が自動的に2TB使用できるわけではありません。容量を購入する前に、冗長化構成を決めておきましょう。
アプリケーションのバックアップは、NVMeプールの外部に保管してください。高速ストレージは、復旧用のコピーの代わりにはなりません。プールが故障したり、アプリケーションデータが破損したりした場合に備え、設定、データベース、永続ボリュームを別のデバイスまたは場所から復元できるようにしておく必要があります。
256GB、512GB、1TB、2TBは、ルールではなく判断の目安として使う
256GBは、意図的に小規模なアプリプール向けです。軽量なサービスを少数、控えめなデータベース、管理されたログ、少ないビルドやVMの利用で構成する場合に適しています。大容量データを別の場所に保存し、空き容量を監視する意思があるなら、十分に機能します。
512GBは、複数のコンテナ、通常のイメージの増減、いくつかのデータベース、ダッシュボード、Home Assistantのような状態データ、アップデート用の余裕を備えた、一般的なホームアプリホストの標準的な計画容量です。これは容量に関する推奨であり、すべてのスタックが同じ容量を消費するという意味ではありません。
写真のサムネイルやインデックス、複数のデータベース、パッケージキャッシュ、VMディスク、ビルド処理、数年分のアプリケーション増加を予定している場合は、1TBへ移行しましょう。2TB以上を選ぶのは、高速階層に保存するデータそのものが本当に大容量の場合に限るべきです。メディア、ダウンロード、バックアップアーカイブが容量の理由になっているなら、まず階層設計を見直してください。
ZimaBoard 2は、PCIe拡張経由でNVMeを追加でき、コンパクトなアプリホスティング環境に適しています。一方、より高速なSSD拡張、負荷の高いマルチタスク、または大規模なストレージシステムが独立して必要な場合は、ZimaCube 2のほうが適しています。プラットフォームは先に決めるのではなく、アプリプールの容量と増加計画を把握してから選びましょう。
購入ガイド
もっと読む

ホームラボサーバーに64GBのRAMは過剰ですか?
64GBは軽量なラボには過剰ですが、複数のVMやメモリ消費の大きいサービスをスワップなしで同時に稼働させ続ける必要がある場合は、十分に合理的です。

基本的なファイルサーバーやバックアップサーバーに8GBのRAMで十分ですか?
8GBあれば、VM、負荷の高いアプリ、重複排除、大規模な同時実行ワークロードを避ける場合、ストレージを優先したファイル・バックアップサーバーには十分です。

クアッドコアCPUでバックアップ、同期、メディア処理は十分?
最新のクアッドコアCPUなら、負荷の高いトランスコードや計算処理の重複実行が常態化していない限り、バックアップ、同期、ダイレクトプレイのメディア再生に対応できます。

