この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

リソースクォータ

リソースクォータは、ネームスペース内のリソースの使用を制限するために使用されます。これは、管理者がクラスターリソースの割り当てを制御し、ネームスペース間での公平性と制御されたリソース配分を確保するのに役立ちます。

SUSE Virtualizationでは、リソースクォータは次のリソースの使用制限を定義できます:

  • CPU:CPUコアやCPU時間を含む計算リソースの使用を制限します。

  • メモリ:バイトまたは他の認識可能なメモリ単位でメモリリソースの使用を制限します。

  • ストレージ:ストレージリソースの使用を制限します。

Rancherを介してリソースクォータを設定します。

管理者は、次の手順を実行することでネームスペースのリソースクォータを構成できます:

  1. Rancher UIで、*≡ → 仮想化管理*に移動します。

  2. クラスターを選択し、*プロジェクト/ネームスペース*に移動し、次に*プロジェクトを作成*をクリックします。

  3. 一般情報セクションで、プロジェクトの名前と説明を指定します。

  4. *リソースクォータ*タブで、*リソースを追加*をクリックし、リソースタイプを選択し、対応する制限値を指定します。

    create project
  5. 作成]をクリックします。

*VMデフォルトリソース制限*タブには、名前空間内で実行されるポッドワークロードにのみ適用されるリソース予約と制限設定が含まれています。このタブで構成された値は、ネームスペースの LimitRangeポリシーの`defaultRequest`および`default`値に対応します。これらの設定は、将来のリリースで削除される可能性があります。

次のように*ネームスペース*の制限を構成できます:

  1. 新しく作成されたプロジェクトを見つけ、*ネームスペースを作成*を選択します。

  2. 希望するネームスペース*名前*を指定し、制限を調整します。

  3. プロセスを完了するには、*Create*を選択してください。

    create namespace

リソースクォータに達すると、ゲストクラスターのための仮想マシンのプロビジョニングの試みはブロックされます。Rancherは、新しい仮想マシンをループで作成し、各失敗した作成試行の直後に別の試行が続きます。これにより、仮想マシンが再作成されるため、クラスター内に一時的なエラー状態が発生しますが、記録されません。

仮想マシンのオーバーヘッドメモリ

仮想マシン(VM)を作成すると、VMコントローラーはオーバーヘッドリソースをVMの構成にシームレスに組み込みます。これらの追加リソースは、VMが継続的かつ途切れることなく動作することを保証することを目的としています。メモリ制限を設定するには、これらのオーバーヘッドリソースが含まれるため、より高いメモリ予約が必要であることに注意することが重要です。

例えば、次の設定で新しいVMを作成することを考えてみてください:

  • CPU:8コア

  • メモリ:16Gi

オペレーティングシステムは、LinuxまたはWindowsのいずれであっても、オーバーヘッド計算には影響しません。

メモリオーバーヘッドは、以下のセクションで計算されます:

  • *メモリページテーブルオーバーヘッド:*これは、512bのRAMサイズごとに1ビットを考慮します。例えば、16Giのメモリには32Miのオーバーヘッドが必要です。

  • *VM固定オーバーヘッド:*これは、いくつかのコンポーネントで構成されています:

    • VirtLauncherMonitorOverhead:25Mi(virt-launcher-monitorの`ps` RSS)

    • VirtLauncherOverhead:75Mi(virt-launcherプロセスの`ps` RSS)

    • VirtlogdOverhead:17Mi(virtlogdの`ps` RSS)

    • LibvirtdOverhead:33Mi(libvirtdの`ps` RSS)

    • QemuOverhead:30Mi(qemuの`ps` RSS、(ストレスのかかった)ゲストのRAMを除く、仮想ページテーブルを除く)

  • *CPU(vCPU)あたり8Miのオーバーヘッド:*さらに、vCPUあたり8Miのオーバーヘッドが追加され、IOThreadのために固定の8Miのオーバーヘッドが加わります。

  • *追加のオーバーヘッド:*これには、ビデオRAMのオーバーヘッドやアーキテクチャのオーバーヘッドなど、さまざまな要因が含まれます。詳細については、 追加のオーバーヘッドを参照してください。

この計算は、VMインスタンスが約276Miの追加メモリオーバーヘッドを必要とすることを示しています。

詳細については、 メモリオーバーヘッドを参照してください。

Kubevirtにおけるメモリオーバーヘッドの計算方法についての詳細は、 kubevirt/pkg/virt-controller/services/template.goを参照してください。

移行中のリソースクォータの自動調整

`ResourceQuota`オブジェクトによって制御される割り当てられたリソースクォータがその限界に達すると、VMの移行は不可能になります。移行プロセスは、ソースVMのリソース要件を反映した新しいポッドを自動的に作成します。これらのポッド作成の前提条件が定義されたクォータを超える場合、移行操作は進行できません。

SUSE Virtualizationでは、移行前に`ResourceQuota`の値が動的に拡張され、ターゲット仮想マシンのリソース要求に対応します。移行後、リソースクォータは以前の設定に復元されます。

`ResourceQuota`の自動リサイズに関する以下の制約にご注意ください:

  • VM移行中に`ResourceQuota`は変更できません。

  • `ResourceQuota`の値を上げる際に、他のVMを作成、起動、または復元すると、SUSE Virtualizationは元の`ResourceQuota`に基づいてリソースが十分かどうかを確認します。条件が満たされない場合、システムは移行プロセスが実行不可能であることを警告します。

  • `ResourceQuota`を拡張した後、非VMポッドとVMポッド間でリソース競合が発生する可能性があり、これが移行失敗につながることがあります。したがって、カスタムコンテナワークロードとVMを同じネームスペースにデプロイすることは推奨されません。

  • Webhookバリデーターの同時制限により、VMコントローラーはリソースの十分性を確認するために二次バリデーションを実行します。リソースが不十分な場合、VMの`RunStrategy`を`Halted`に自動設定し、新しいアノテーション`harvesterhci.io/insufficient-resource-quota`がVMオブジェクトに追加され、リソース不足によりVMがシャットダウンされたことを通知します。

    vm annotation insufficient resource quota

移行中のリソースクォータの自動調整を無効にする

`ResourceQuota`オブジェクトにアノテーション`harvesterhci.io/skipResourceQuotaAutoScaling: "true"`がある場合、SUSE Virtualizationはそのオブジェクトの値を自動的に調整しません。この機能は、デバッグ、トラブルシューティング、その他のタスクに役立ちます。

移行が開始される前にアノテーションを設定する必要があります。値がすでに調整されている間にアノテーションが設定されると、SUSE Virtualizationは以前の設定を自動的に復元することができません。