9.5. NUMA 対応 vSwitch の設定
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。
NUMA 対応 vSwitch を実装するには、ご自分のハードウェア構成の以下のコンポーネントを確認してください。
- 物理ネットワークの数
- PCI カードの配置
- サーバーの物理アーキテクチャー
PCIe NIC 等のメモリーマップト I/O (MMIO) デバイスは、特定の NUMA ノードに関連付けられます。仮想マシンと NIC が異なる NUMA ノードにあると、パフォーマンスが大幅に低下します。パフォーマンスを向上させるためには、PCIe NIC の配置とインスタンスの処理を同じ NUMA ノードに一致させます。
この機能を使用して、物理ネットワークを共有するインスタンスが同じ NUMA ノードに配置されるようにします。データセンターのハードウェアの最適化するには、複数ネットワーク、異なるネットワーク種別、またはボンディングを使用して、負荷を共有する仮想マシンを活用します。
NUMA ノードの負荷共有およびネットワークアクセスを正しく設計するためには、PCIe スロットと NUMA ノードのマッピングを把握する必要があります。お使いの特定ハードウェアの詳細情報は、ベンダーのドキュメントを参照してください。
複数 NUMA にまたがる設定を防ぐためには、NIC の場所を Nova に提供して、仮想マシンを正しい NUMA ノードに配置します。
前提条件
- フィルター「NUMATopologyFilter」を有効にしていること
手順
-
新たに
NeutronPhysnetNUMANodesMapping
パラメーターを設定して、物理ネットワークと物理ネットワークに関連付ける NUMA ノードをマッピングします。 VxLAN や GRE 等のトンネルを使用する場合には、
NeutronTunnelNUMANodes
パラメーターも設定する必要があります。parameter_defaults: NeutronPhysnetNUMANodesMapping: {<physnet_name>: [<NUMA_NODE>]} NeutronTunnelNUMANodes: <NUMA_NODE>,<NUMA_NODE>
2 つの物理ネットワークを NUMA ノード 0 にトンネリングする例を以下に示します。
- NUMA ノード 0 に関連付けられた 1 つのテナントネットワーク
アフィニティーが設定されていない 1 つの管理ネットワーク
parameter_defaults: NeutronBridgeMappings: - tenant:br-link0 NeutronPhysnetNUMANodesMapping: {tenant: [1], mgmt: [0,1]} NeutronTunnelNUMANodes: 0
テスト
ファイル /var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf の設定を確認します。
[neutron_physnet_tenant] numa_nodes=1 [neutron_tunnel] numa_nodes=1
lscpu
コマンドで新たな設定を確認します。$ lscpu
- NIC が適切なネットワークに接続された仮想マシンを起動します。