1.3. スケジューリングポリシー

スケジューリングポリシーとは、そのスケジューリングポリシーが適用されるクラスター内のホスト間で仮想マシンを分散するロジックを定義する一式のルールです。スケジューリングポリシーは、フィルター、加重値、負荷分散ポリシーを組み合わせてこのロジックを決定します。フィルターモジュールはハード強制を適用し、そのフィルターで指定した条件を満たさないホストを除外します。加重値モジュールはソフト強制を適用し、仮想マシンを実行することのできるクラスター内のホストを決定する際に考慮される要素の相対的な優先順位を制御するのに使用されます。

Red Hat Virtualization Manager はデフォルトで evenly_distributedcluster_maintenancenonepower_saving、および vm_evenly_distributed の 5 つのスケジューリングポリシーを提供しますが、より細かい粒度で仮想マシンの分散を制御することが可能な、新しいスケジューリングポリシーを定義することもできます。スケジューリングポリシーの設定にかかわらず、CPU が過負荷の状態にあるホストでは仮想マシンは起動しません。デフォルトでは、80% 以上の負荷が 5 分間続いた場合に、ホストの CPU が過負荷状態にあるとみなされます。ただし、これらの値はスケジューリングポリシーを使用して変更することができます。各スケジューリングポリシーのプロパティーに関する詳細については、「スケジューリングポリシーの設定」を参照してください。

図1.4 均等分散スケジューリングポリシー

RHV SchedulingPolicies 444396 0417 ECE EvenlyDistributed

evenly_distributed スケジューリングポリシーでは、クラスター内の全ホストでメモリーおよび CPU 処理の負荷が均等に分散されます。ホストが定義された CpuOverCommitDurationMinutesHighUtilization、または MaxFreeMemoryForOverUtilized に達している場合には、仮想マシンをそのホストに追加でアタッチしてもその仮想マシンは起動しません。

vm_evenly_distributed スケジューリングポリシーでは、仮想マシンの数に基づいて仮想マシンがホスト間で均等に分散されます。HighVmCount を超える数の仮想マシンを実行しているホストがあり、かつ仮想マシンの数が MigrationThreshold から外れているホストが少なくとも 1 台ある場合に、そのクラスターはバランスが取れていない状態とみなされます。

図1.5 パワーセービングスケジューリングポリシー

RHV SchedulingPolicies 444396 0417 ECE PowerSaving

power_saving スケジューリングポリシーでは、使用可能なホストのサブセットでメモリーおよび CPU 処理の負荷を分散し、十分に活用されていないホストの電力消費を低減します。ホストの CPU 負荷が使用率の下限値以下の状態で所定の時間が経過すると、仮想マシンはすべて別のホストに移行され、電源をオフにできるようになります。ホストが定義された使用率の上限値に達している場合には、仮想マシンをそのホストに追加でアタッチしてもその仮想マシンは起動しません。

実行中の仮想マシンに関して、ホスト間で負荷の分散または電源の共有を行わない場合には、none ポリシーに設定します。これは、デフォルトのモードです。仮想マシンの起動時には、クラスター内のホスト間でメモリーと CPU 処理の負荷が均等に分散されます。ホストが定義された CpuOverCommitDurationMinutesHighUtilization、または MaxFreeMemoryForOverUtilized に達している場合には、仮想マシンをそのホストに追加でアタッチしてもその仮想マシンは起動しません。

cluster_maintenance スケジューリングポリシーでは、メンテナンス作業を実施中のクラスター内のアクティビティーが制限されます。cluster_maintenance ポリシーが設定されると、高可用性の仮想マシンを除き新たな仮想マシンは起動しません。ホストで障害が発生すると、高可用性の仮想マシンは適切に再起動し、その他の仮想マシンも移行することができます。

1.3.1. スケジューリングポリシーの作成

新規スケジューリングポリシーを作成して、Red Hat Virtualization 環境内の特定のクラスターで仮想マシンを分散するロジックを制御することができます。

スケジューリングポリシーの作成

  1. 管理設定 をクリックします。
  2. スケジューリングポリシー タブをクリックします。
  3. 新規作成 をクリックします。
  4. スケジューリングポリシーの 名前説明 を入力します。
  5. フィルターモジュールを設定します。

    1. フィルターモジュール セクションで、スケジューリングポリシーに適用する対象のフィルターモジュールを 無効なフィルター セクションから 有効なフィルター セクションにドラッグアンドドロップします。
    2. 基本的な最適化を行うために、特定のフィルターモジュールを 最初 に設定して優先順位を最も高くすることや、最後 に設定して優先順位を最も低くすることも可能です。優先順位を設定するには、任意のフィルターモジュールを右クリックし、カーソルで 位置 をポイントして 最初 または 最後 を選択します。
  6. 加重値モジュールを設定します。

    1. 加重値モジュール セクションで、スケジューリングポリシーに適用する対象の加重値モジュールを 無効な加重値 セクションから 有効な加重値と係数 セクションにドラッグアンドドロップします。
    2. 有効な加重値モジュールの左側にある + または - ボタンを使用して、それらのモジュールの加重値を増減します。
  7. 負荷分散ポリシーを指定します。

    1. ロードバランサー セクションのドロップダウンメニューで、スケジューリングポリシーに適用する負荷分散ポリシーを選択します。
    2. プロパティー セクションのドロップダウンメニューで、スケジューリングポリシーに適用する負荷分散のプロパティーを選択し、そのプロパティーの右側にあるテキストフィールドに値を指定します。
    3. + または - ボタンを使用して、プロパティーを追加/削除します。
  8. OK をクリックします。

1.3.2. 新規スケジューリングポリシーおよびスケジューリングポリシーの編集ウィンドウの設定

以下の表には、新規スケジューリングポリシースケジューリングポリシーの編集 のウィンドウで使用できるオプションについての説明をまとめています。

表1.12 新規スケジューリングポリシーおよびスケジューリングポリシーの編集の設定

フィールド名説明

名前

スケジューリングポリシーの名前。ここで指定した名前は、Red Hat Virtualization Manager でスケジューリングポリシーを参照するのに使用されます。

説明

スケジューリングポリシーの説明。このフィールドへの入力は推奨されますが、必須ではありません。

フィルターモジュール

クラスター内の仮想マシンを実行することのできるホストを制御するためのフィルターのセット。フィルターを有効にすると、そのフィルターにより指定されている以下のような条件を満たさないホストは除外されます。

  • CpuPinning: CPU ピニングの定義を満たさないホスト
  • Migration: 同じホストへのマイグレーションを防ぎます。
  • PinToHost: 仮想マシンが固定されているホスト以外のホスト
  • CPU-Level: 仮想マシンの CPU トポロジーに対応しないホスト
  • CPU: 仮想マシンに割り当てられている数よりも CPU の少ないホスト
  • Memory: 仮想マシンを実行するのに十分なメモリーがないホスト
  • VmAffinityGroups: アフィニティーグループのメンバーとなっている仮想マシンに指定された条件を満たさないホスト。たとえば、1 つのアフィニティーグループ内の仮想マシンは、同じホストまたは別のホストで実行されるように指定されます。
  • VmToHostsAffinityGroups: アフィニティーグループのメンバーとなっている仮想マシンに指定された条件を満たさないホストのグループ。たとえば、1 つのアフィニティーグループ内の仮想マシンは、グループ内のいずれかのホストまたはグループ外の別のホストで実行されるように指定されます。
  • InClusterUpgrade: 仮想マシンを実行しているホストよりも前のバージョンのオペレーティングシステムを使用しているホスト
  • HostDevice: 仮想マシンが必要とするホストデバイスをサポートしていないホスト
  • HA: セルフホストエンジン環境の Manager 用仮想マシンが、高可用性スコアがポジティブのホストでのみ実行されるように強制します。
  • Emulated-Machine: エミュレーションする仮想マシンタイプを正式にサポートしていないホスト
  • Network: 仮想マシンのネットワークインターフェースコントローラーが必要とするネットワークがインストールされていないホスト、またはクラスターのディスプレイネットワークがインストールされていないホスト
  • HostedEnginesSpares: 指定した数のセルフホストエンジンノード上に、Manager 用仮想マシン用にディスク容量を確保します。
  • Label: 必要なアフィニティーラベルのないホスト
  • Compatibility-Version: 正しい互換バージョンがサポートされるホストでのみ仮想マシンを実行します。
  • CPUOverloaded: CPU が過負荷状態にあるホスト

加重値モジュール

仮想マシンを実行することのできるクラスター内のホストを決定する際に考慮される要素の相対的な優先順位を制御するための加重値

  • InClusterUpgrade: オペレーティングシステムのバージョンに応じてホストを重み付けします。重み付けにより、仮想マシンを実行しているホストよりも前のバージョンのオペレーティングシステムを使用しているホストには、同じバージョンのオペレーティングシステムを使用しているホストよりも大きなペナルティーが科されます。したがって、より後のバージョンのオペレーティングシステムを使用しているホストが常に優先されます。
  • OptimalForHaReservation: 高可用性スコアに応じてホストに加重します。
  • None: 負荷均等配分のモジュールに応じてホストに加重します。
  • OptimalForEvenGuestDistribution: ホスト上で実行されている仮想マシンの数に応じてホストに加重します。
  • VmAffinityGroups: 仮想マシンに定義されているアフィニティーグループに応じてホストに加重します。この加重値モジュールは、アフィニティーグループのパラメーターに応じて、そのアフィニティーグループ内の仮想マシンが同じホストまたは異なるホストで実行される可能性を決定します。
  • VmToHostsAffinityGroups: 仮想マシンに定義されているアフィニティーグループに応じてホストに加重します。この加重値モジュールは、アフィニティーグループ内の仮想マシンがグループ内のいずれかのホストまたはグループ外の別のホストで実行される可能性を決定します。
  • OptimalForCPUPowerSaving: CPU 使用率に応じてホストに加重し、CPU 使用率の高いホストを優先します。
  • OptimalForEvenCpuDistribution: CPU 使用率に応じてホストに加重し、CPU 使用率の低いホストを優先します。
  • HA: 高可用性スコアに応じてホストに加重します。
  • PreferredHosts: 優先ホストから先に、仮想マシンをセットアップして実行します。
  • OptimalForMemoryPowerSaving: メモリー使用率に応じてホストに加重し、利用可能なメモリーの少ないホストを優先します。
  • OptimalForMemoryEvenDistribution: メモリー使用率に応じてホストに加重し、利用可能なメモリーの多いホストを優先します。

ロードバランサー

このドロップダウンメニューにより、適用する負荷分散モジュールを選択することができます。負荷分散モジュールは、高使用率から低使用率のホストへの仮想マシン移行に使用されるロジックを決定します。

プロパティー

このドロップダウンメニューでは、負荷分散モジュールのプロパティーを追加/削除することができます。このメニューは、スケジューリングポリシーで負荷分散モジュールを選択した場合にのみ利用できます。デフォルトではプロパティーは定義されず、提供されるプロパティーは選択した負荷分散モジュール固有です。+ または - ボタンを使用して負荷分散モジュールにプロパティーを追加/削除します。