自宅ラボにおける高可用性のジレンマ
多くの人は、部屋の隅に置かれた古いノートPCや、引退したオフィス用デスクトップから自宅ラボ(HomeLab)の運用を始めます。それは壊れるまでは非常にうまく機能します。しかし、単純なカーネルアップデートやBIOSの更新が必要になった瞬間、Home AssistantからローカルDNSに至るまで、デジタルの生活基盤すべてがオフラインになってしまいます。仕事では99.9%の稼働率を求めますが、自宅では妥協しがちです。なぜなら、エンタープライズ向けのハードウェアは、うるさく、高価で、電気を食いすぎるからです。
私は妥協するのをやめることにしました。電気代を急騰させたり、リビングルームをサーバー室のような音にしたりすることなく、ハードウェアの故障に耐えられるシステムが欲しかったのです。6ヶ月間のテストの結果、理想的なバランスを見つけました。それが Intel N100ミニPCで構築された3ノードクラスターです。このセットアップは、中価格帯のグラフィックボード1枚分よりも安いコストで、プロフェッショナル級の回復力を提供します。
なぜIntel N100が新たなゴールドスタンダードなのか
Intel N100(Alder Lake-N)は、低電力仮想化の状況を一変させました。わずか6WというTDP(LED電球1個分とほぼ同じ)で、4つのEコアを搭載しています。これらのコアは、スペック以上のパフォーマンスを発揮します。私のテストでは、1台のN100で6つほどのLinuxコンテナ(LXC)を余裕で処理できました。
本当の魅力はその価格です。Beelink EQ12やGMKtec G3のようなユニットは、AmazonやAliExpressで頻繁に95ドルから110ドル程度まで値下がりします。これらを3台揃えれば、主要なハードウェア予算をちょうど300ドルに抑えることができます。クラスター全体で合計12コア、24GBから48GBのRAMを確保でき、これはほとんどの家庭用サービスにとって十分なスペックです。
3台構成の力
Proxmoxにおいて「3」は魔法の数字です。その理由はQuorum(クォーラム:定足数)にあります。これは民主的な投票のようなものだと考えてください。ノードが停止した際にVMを移動させるなどの決定を下すには、クラスターの過半数の合意が必要です。2ノード構成の場合、一方が故障すると、残った方の票は50%にしかなりません。これでは過半数ではないため、データ破損を防ぐためにシステムがフリーズします。3ノードあれば、1台がダウンしても残りの2台で66%の過半数を維持できるため、サービスをスムーズに継続できるのです。
アーキテクチャとネットワーク戦略
ハードウェア選びよりも重要なのが、ネットワークの計画です。Proxmoxはクラスター間の通信に**Corosync**を利用します。Corosyncはレイテンシ(遅延)に対して非常に敏感です。ネットワークでラグが発生すると、ノードは相手がダウンしたと判断し、データを守るためにノードを強制的に再起動させる「フェンシング(Fencing)」イベントを引き起こす可能性があります。
今回の構築では、以下の構成を採用しました。
- ノード: 3x Beelink EQ12 (Intel N100, 16GB RAM, 500GB NVMe)
- ネットワーク: 専用の1GbEスイッチ(20ドルのTP-Link LS1005Gなどで十分です)
- ストレージ: ZFSレプリケーション。Cephは強力ですが、これらの小型ノードではCPUとRAMを消費しすぎます。
ステップ・バイ・ステップ:クラスターの構築
1. OSの初期インストール
まず、各ノードにProxmox VE 8.xをインストールします。pve-01、pve-02、pve-03のように分かりやすい命名規則を使用しましょう。すぐに各ノードに固定IPアドレスを割り当ててください。クラスターにWi-Fiを使用してはいけません。高可用性(HA)には、物理的なイーサネットケーブルによる盤石な安定性が必要です。
# すべてのノードで実行して最新の状態にする
apt update && apt dist-upgrade -y
2. クラスターの作成
`pve-01`のWeb UIを開きます。**データセンター > クラスター**へ進み、**クラスターを作成**をクリックします。「HomeOps」のような名前を付けてください。準備ができたら**参加情報**をクリックしてトークンをコピーします。`pve-02`と`pve-03`では、**クラスターに参加**をクリックしてそのトークンを貼り付けるだけです。ProxmoxがSSHキーやCorosyncの設定といった面倒な作業をすべて代行してくれます。
3. パフォーマンス向上のためのN100チューニング
ミニPCはアグレッシブにCPUクロックを下げることで節電しようとすることがよくあります。これがVMのマイクロスタッター(微かなカクつき)の原因になることがあります。動作を機敏に保つために、CPUガバナーを「performance」に変更することをお勧めします。現在の設定は次のコマンドで確認できます。
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
もし「powersave」と表示される場合は、cpufrequtilsを使用してレスポンスの良い状態に固定することを検討してください。
4. 高可用性(HA)の設定
ここからが本番です。**データセンター > HA > グループ**に移動し、3つのノードすべてを含むグループを作成します。Pi-holeやHome AssistantのインスタンスなどのVMを作成する際、このHAグループに追加します。もしpve-01の電源が落ちても、クラスターは数秒以内に障害を検知し、自動的にpve-02または`pve-03`でVMを再起動します。
低予算でのストレージ:ZFSレプリケーション
予算を300ドル以下に抑えるため、高価なNVMe SANは使いません。代わりに**ZFSレプリケーション**を使用します。この機能は、数分おきに各ノードのローカルドライブ間でVMデータをミラーリングします。ノードが故障しても、生き残ったノードには起動準備が整ったほぼ同一のディスクコピーが存在します。これはハードウェア故障に対して優れた保護を提供する、追加コスト0円のソリューションです。
# ZFSプールの状態を確認する
zpool status
注意点は?レプリケーションのスケジュールによりますが、1〜5分程度のデータが失われる可能性があります。家庭での利用であれば、これは非常に妥当なトレードオフでしょう。
6ヶ月間運用の結論
このN100クラスターは、私のオフィスで半年間、一度も予期せぬ停止なしに稼働しています。家族にインターネットが「落ちている」と気づかれることすらなく、メンテナンスのためにノード間でVMを移行できます。3台合計のアイドル時の消費電力は19Wです. 比較のために言うと、Dell R720のような古いエンタープライズサーバーは、アイドル状態で座っているだけで150Wを消費します。
このセットアップで、15個のLXCコンテナと4台のVMを快適にホストできています。静かで、安く、驚くほど安定しています。家庭内ネットワークの単一障害点(SPOF)を排除したいなら、これが最も効率的な方法です。
最後に
プロフェッショナルな稼働率を実現するのに、データセンターのような予算は必要ありません。Intel N100の効率性とProxmoxのクラスターツールを組み合わせることで、靴箱に収まるサイズで堅牢な環境を構築できます。ケーブルを整理し、IPを固定し、Corosyncのトラフィックを有線に保つだけです。クラスターの管理は、老朽化した1台のサーバーをいたわりながら使うよりも、はるかにやりがいがあることにすぐ気づくはずです。

