4.5.3. Placement サービスの特性の設定

Placement サービスは、コンピュートノード、共有ストレージプール、または IP 割り当てプールなど、リソースプロバイダーのインベントリーおよび使用状況を追跡します。リソースの選択および消費を管理する必要があるサービスは、すべて Placement サービスを使用することができます。

Placement サービスにクエリーを行うには、アンダークラウドに python3-osc-placement パッケージをインストールします。

各リソースプロバイダーには特性のセットがあります。特性は、ストレージディスクの種別や Intel CPU 拡張命令セットなど、リソースプロバイダーの機能的な要素です。インスタンスは、これらの中から要求する特性を指定することができます。

Compute (nova) サービスは、nova-compute および nova-scheduler プロセスを使用して Placement サービスと協調してインスタンスを作成します。

nova-compute
  • リソースプロバイダーレコードを作成します。
  • 利用可能な仮想 CPU の数など、利用可能なリソースを数量的に記述するインベントリーを設定します。
  • リソースプロバイダーの性質的な要素を記述する特性を設定します。libvirt 仮想化ドライバーは、これらの特性を Placement サービスに報告します(詳しくは 「Placement サービスの特性としての libvirt 仮想化ドライバー機能」 を参照)。
nova-scheduler
  • Placement サービスに、割り当て候補の一覧を要求します。
  • インスタンスが要求する特性に基づいて、サーバーの構築先となるホストを決定します。

4.5.3.1. Placement サービスの特性としての libvirt 仮想化ドライバー機能

libvirt 仮想化ドライバーの機能を Placement サービスの特性として使用することができます。指定することのできる特性は os-traits ライブラリーで定義されます。以下に例を示します。

  • COMPUTE_TRUSTED_CERTS
  • COMPUTE_NET_ATTACH_INTERFACE_WITH_TAG
  • COMPUTE_IMAGE_TYPE_RAW
  • HW_CPU_X86_AVX
  • HW_CPU_X86_AVX512VL
  • HW_CPU_X86_AVX512CD

インスタンスが特定のハードウェア、仮想化、ストレージ、ネットワーク、またはデバイスの特性に要求することのできる標準化された定数のカタログについては、os-traits ライブラリー を参照してください。

以下の libvirt 仮想化ドライバーは、命令セットの種別 (SSE4、AVX、または AVX-512 等) など、ホスト CPU が提供する機能を自動的に Placement サービスに報告します。

  • Libvirt QEMU (x86)
  • Libvirt KVM (x86)
  • Libvirt KVM (ppc64)

これらのドライバーのいずれかを使用している場合、インスタンス用にフレーバー追加スペックまたはイメージメタデータを設定して、リソースプロバイダーに特定の CPU 機能を要求することができます。