DRS と高可用性
Cockpit には、環境を健全に保つためにバックグラウンドで静かに働く 2 つの機能があります。
- **分散リソーススケジューラー(DRS)**は物理ホストの負荷を均等に保ち、あるホストだけがボトルネックになり他が遊休状態になるのを防ぎます。
- **高可用性(HA)**は、VM が稼働していたホストに障害が起きた場合、別のホストで VM を再起動します。
この 2 つが連携することで、日々の手間をほとんどかけずに、ワークロードを高速かつオンラインに保てます。
分散リソーススケジューラー(DRS)
DRS はクラスター内のホスト全体で CPU とメモリの使用状況を継続的に監視します。あるホストが他より混雑してくると、DRS は稼働中の仮想マシンを負荷の低いホストへ — ダウンタイムなしで — 移動して負荷を平準化できます。
どれくらい積極的に均衡させるか
ワークロードを移動させる「積極さ」は、**移行しきい値(Migration Threshold)**という 1 本のスライダーで、**保守的(Conservative)から積極的(Aggressive)**まで選べます。
| 設定 | 挙動 |
|---|---|
| 保守的 | ホストが重く持続的に負荷を受けたときのみ再均衡します。移行は最少。 |
| バランス (デフォルト) | ほとんどの環境に適した中間設定。 |
| 積極的 | わずかな不均衡にも反応します。移行の頻度が増える代わりに、ホストを非常に均等に保ちます。 |
まずはバランスから始めましょう。移行を減らしたいなら保守的へ、最も厳密に均衡させたいなら積極的へ寄せます。
どれくらい自分で制御したいか
DRS には 3 つの自動化レベルがあります。
- 完全自動(Fully Automated) — 不均衡を検知すると DRS が自動でワークロードを移動します。設定すればあとはお任せ。
- 部分自動(Partially Automated) — DRS は分析を行いますが自動では動作しません。推奨事項を Tasks パネルに提示し、適用するかどうかはあなたが判断します。
- 手動(Manual) — 自動均衡はオフ。必要なときにあなた自身がワークロードを移動します。(このモードではしきい値スライダーは無効になります。)
VM 単位のオーバーライド
クラスターの大部分は自動で均衡させつつ、特定の VM だけは今の場所から動かしたくない、という場合があります。たとえば、予期せず移動されたくないレイテンシーに敏感なデータベースなどです。
個々の VM に独自の自動化レベルを与え、クラスターの設定を上書きできます。たとえばクラスターは完全自動のまま、ある重要な VM だけを手動に設定すれば、DRS がそれを自動で移動することはありません。
このオーバーライドは 2 か所で設定でき、同じ設定を共有しているため常に同期しています。
- クラスターの Configure タブにある DRS overrides の一覧から。
- 個々の VM の設定から。
DRS が移動できるもの・できないもの
::: important DRS が移動するのはコンピュート(計算リソース)のみです。稼働中の VM のメモリと CPU の状態は新しいホストへ移りますが、VM のディスクはそのまま残ります。このため、VM が自動均衡の対象になるのは、そのすべてのディスクが共有データストア(NFS やクラスター化データストアなど、すべてのホストが到達できるストレージ)上にある場合に限られます。
ディスクがローカルのホスト専用ストレージにある VM は DRS の対象外です。ディスクの移動が遅すぎて自動では行えないためです。共有ストレージの詳細はストレージとデータストアを参照してください。 :::
高可用性(HA)
HA はホスト障害から VM を保護します。有効にすると、Cockpit は各ホストのハートビートを監視します。ホストが応答しなくなると、Cockpit はそのホストの VM を残りの正常なホストで自動的に再起動するため、障害ホストの修復を待たずにサービスが復帰します。
設定
- HA を有効化 — クラスターの保護をオン/オフします。
- フェイルオーバー遅延 — ホストが応答しなくなってから、その VM を別の場所で再起動し始めるまでに Cockpit が待つ時間(例: 15 秒)。この短い待機により、一時的なネットワークの揺らぎで動作するのを避け、VM が誤って 2 か所で同時に稼働するのを防ぎます。
TIP
HA は VM を別のホストで再起動するため、対象の VM は共有ストレージ上にある必要があります(残ったホストがそのディスクにアクセスできるように)。最良の保護のために、HA は共有データストアと組み合わせて使いましょう。
重要なサービスを分散させ続ける
高可用性 Kubernetes クラスターの 3 つのコントロールプレーンノードのように、グループとして動くサービスに対して、Cockpit は**アンチアフィニティ(anti-affinity)**でメンバーを分離します。
- VM が最初に作成されるとき、3 つの異なる物理ホストに配置されます。
- ホストが障害を起こすと、HA は影響を受けたメンバーを、そのグループの他のメンバーをまだ実行していない残りのホストで再起動します。
これにより、単一ホストの障害で複数のメンバーが同時に失われることはなく、グループがオンラインを維持する能力が保たれます。
関連トピック
- Kubernetes プロビジョナー — HA コントロールプレーンとノード配置は DRS とアンチアフィニティに基づいています。
- ストレージとデータストア — ライブ移行と HA 再起動を可能にするのが共有ストレージです。