ハードウェアチェックリスト
本番の RustFS デプロイに向けた、ハードウェアのサイジングと構成の指針を示します。
計画時の考慮事項
本番に RustFS をデプロイする前に、2 週間から 3 週間をかけてワークロードと容量の要件を評価します。次の点に注目します。
-
データ量
- 初期データ量: 稼働開始時の使用可能なデータ量(TiB)と、ホットデータとコールドデータの比率を見積もります。
- 増加予測: 事業計画に基づき、今後 24 か月のデータ増加を見積もります。増加は四半期ごとに見積もることを推奨します。
- オブジェクト数: 平均オブジェクトサイズ(理想的には 128 KB から 1 MB)から、オブジェクトの総数を見積もります。オブジェクト数が 1 億を超えるデプロイでは、追加の調整が必要です。
-
ワークロードの特性
- アクセスパターン: 読み取り中心のワークロード(コンテンツ配信など)と、書き込み中心のワークロード(ログ収集など)を区別します。
- コンプライアンス要件: 保持期間は、業界規制を満たす必要があります(例: 一部の金融規制では、少なくとも 5 年の保持が必要です)。
- マルチサイトデプロイ: リージョンをまたぐデプロイでは、ネットワークレイテンシ(理想的には 50 ms 未満)と帯域のコストを評価します。
-
ストレージアーキテクチャ
- バケットの計画: 事業部門ごとにバケットを整理します。クラスターあたりのアクティブなバケットは 500 個以下にすることを推奨します。
- 災害対策: データの重要度に応じて、アクティブ-アクティブのレプリケーション(推奨)または非同期レプリケーションを選びます。
ハードウェア構成マトリックス
負荷テストの結果に基づく基準構成は次のとおりです。
| コンポーネント | エントリー | 標準的な本番 | 高性能 |
|---|---|---|---|
| ノード数 | 4 ノード | 8 ノード | 16 ノード以上 |
| ストレージ媒体 | 4× NVMe SSD | 8×NVMe SSD | 12×NVMe SSD |
| ネットワーク構成 | デュアル 25GbE(リンクアグリゲーション) | デュアル 100GbE | 200GbE |
| CPU | 2×Intel Silver 4310(16 コア) | 2×AMD EPYC 7313(32 コア) | 2×Intel Platinum 8461Y(48 コア) |
| メモリ | 64 GB DDR4-3200 ECC | 256 GB DDR5-4800 ECC | 512 GB DDR5-5600 ECC |
| ストレージコントローラー | HBA 9500-8i | HBA 9600-16i | デュアルコントローラーの冗長構成 |
デプロイの指針:
- 同一構成のノードを使います。各ノードは、同一ロットの同一ハードウェアと、同一のファームウェアバージョンに揃えることを推奨します。
- ネットワークは、リーフスパイン構成、物理的に分離したストレージネットワーク、二重のアップリンクを使う必要があります。
- 必要なドライブ数に応じて、ノードあたり少なくとも 12 のドライブベイを備えた 2U サーバーを推奨します。
性能チューニング
ネットワークトポロジーの最適化(最優先)
- 帯域のサイジング: 使用可能なデータ 1 TB あたり 0.5 Gbps の帯域を用意します(例: データ 100 TB には、50 Gbps の専用帯域が必要です)。
- レイテンシの要件:
- ノード間の P99 レイテンシは 2 ms 以下
- ラック間のレイテンシは 5 ms 以下
ストレージサブシステムのチューニング
- コントローラーの設定:
- 先読みキャッシュを有効にします(256 MB 以上を推奨)。
- すべての RAID 機能を無効にし、パススルー(HBA/JBOD)モードを使います。
- BBU の状態を定期的に確認します。
- SSD のパラメーター:
- 耐久性を高めるため、20% のオーバープロビジョニング(OP)領域を確保します。
- アトミック書き込みを有効にします(ハードウェアの対応が必要です)。
メモリの割り当て
- 配分比率:
- メタデータキャッシュ: 総メモリの 60%
- 読み書きバッファー: 30%
- システム予約: 10%
ネットワーク設計の参照モデル
ネットワーク帯域とディスク数
| ネットワーク | 理論スループット | ディスクの種類 | ノードあたりの最大ディスク数 |
|---|---|---|---|
| 10GbE | 1.25 GB/s | 7.2K HDD(180 MB/s) | 8 ディスク |
| 25GbE | 3.125 GB/s | SATA SSD(550 MB/s) | 6 ディスク |
| 100GbE | 12.5 GB/s | NVMe Gen4(7 GB/s) | 2(読み書きを最高速度で行う場合) |
例: 動画プラットフォームが、16 ノードのクラスターを運用しています。各ノードの構成は次のとおりです。
- 8×7.68 TB NVMe SSD
- デュアル 100GbE の NVIDIA ConnectX-5 NIC
- 合計スループットは 38 GB/s に達します
メモリ容量の見積もり
ディスク容量とワークロードの種類に基づいてメモリを見積もるには、次の式を使います。
# Memory calculation formula (unit: GB)
def calc_memory(data_tb, access_pattern):
base = 32 # Base memory
if access_pattern == "read_heavy":
return base + data_tb * 0.8
elif access_pattern == "write_heavy":
return base + data_tb * 1.2
else: # mixed
return base + data_tb * 1.0参照サイズ:
| データサイズ | 読み取り中心 | 書き込み中心 | 混合 |
|---|---|---|---|
| 10 TB | 40 GB | 44 GB | 42 GB |
| 100 TB | 112 GB | 152 GB | 132 GB |
| 500 TB | 432 GB | 632 GB | 532 GB |
ストレージの指針
ストレージ媒体の選択
| 指標 | HDD | SATA SSD | NVMe(必須) |
|---|---|---|---|
| レイテンシの要件 | 50 ms 超 | 1〜10 ms | 1 ms 未満 |
| スループットの要件 | 500 MB/s 未満 | 500 MB〜3 GB/s | 3 GB/s 超 |
| 典型的な用途 | アーカイブストレージ | ホットデータのキャッシュ | リアルタイム分析 |
ファイルシステムの設定
sudo mkfs.xfs -f -i size=512 -n ftype=1 -L RUSTFS0 /dev/sdb高可用性
-
電源:
- 二重化(冗長)電源を使います。
- 各 PDU を別々の電源系統に接続します。
- 少なくとも 30 分の稼働時間がある UPS を用意します。
-
冷却の要件:
- ラックの電力密度は、1 ラックあたり 15 kW 以下にします。
- 吸気と排気の温度差(ΔT)を 8 °C 以内に保ちます。
-
ファームウェアの管理:
- ハードウェアの互換性マトリックスを維持します。
- ノード間でファームウェアのバージョンを統一します。
本番稼働の前に
本番稼働の前に、次のシナリオを含む 72 時間のストレステストを実施することを推奨します。
- ノードのフェイルオーバーテスト
- ネットワーク分断のテスト
- バースト書き込みの負荷テスト(理論上の最大値の 120% でテストすることを推奨します)
このガイドは、最新の RustFS 開発バージョンに基づいています。本番デプロイでは、ハードウェアベンダーのドキュメントに従って、これらの設定を調整します。ハードウェアの健全性を四半期ごとに評価する場合は、RustFS に問い合わせてください。