5.4. DPDK インスタンス向けの追加準備作業
NUMA、CPU ピニング、または DPDK を使用するインスタンスを移行する場合は、移行先ノードの準備を行う必要があります。
手順
NUMA、CPU ピニング、または DPDK インスタンスの移行先コンピュートノードが無効ではない場合には、これを無効にしてスケジューラーがそのノードにインスタンスを割り当てるのを防ぎます。
(overcloud) $ openstack compute service set <dest> nova-compute --disable
<dest>
を移行先コンピュートノードの名前または ID に置き換えてください。複数の DPDK または NUMA インスタンスを移行する場合、移行元コンピュートノードから先に移行していたインスタンスを除き、移行先コンピュートノードにはインスタンスが存在しないようにしてください。
(overcloud) $ openstack server list --host <dest> --all-projects
<dest>
を移行先コンピュートノードの名前または ID に置き換えてください。移行先コンピュートノードに、NUMA、CPU ピニング、または DPDK インスタンスを実行するのに十分なリソースを確保するようにしてください。
(overcloud) $ openstack host show <dest> $ ssh <dest> $ numactl --hardware $ exit
<dest>
を移行先コンピュートノードの名前または ID に置き換えてください。移行元または移行先コンピュートノードの NUMA 情報を検出するには、以下のコマンドを実行します。
$ ssh root@overcloud-compute-n # lscpu && lscpu | grep NUMA # virsh nodeinfo # virsh capabilities # exit
ssh
を使用して、overcloud-compute-n
に接続します。ここで、overcloud-compute-n
は移行元または移行先コンピュートノードです。インスタンスが NUMA を使用しているかどうか不明な場合は、インスタンスのフレーバーを確認してください。
(overcloud) $ openstack server list -c Name -c Flavor --name <vm> (overcloud) $ openstack flavor show <flavor>
-
<vm>
をインスタンスの名前または ID に置き換えてください。 <flavor>
をフレーバーの名前または ID に置き換えてください。-
表示される
properties
フィールドのhw:mem_page_size
の値がany
以外 (2MB
、2048
、または1GB
) の場合、インスタンスは NUMA トポロジーを持ちます。 -
properties
フィールドにaggregate_instance_extra_specs:pinned='true'
が含まれる場合には、インスタンスは CPU ピニングを使用しています。 -
properties
フィールドにhw:numa_nodes
が含まれる場合、OpenStack Compute (nova) サービスはインスタンスを特定の NUMA ノードに制限します。
-
表示される
-
NUMA を使用する各インスタンスについて、移行完了後に移行先コンピュートノードの NUMA トポロジーが移行元コンピュートノードの NUMA トポロジーを反映していることを確認できるように、ベースとなるコンピュートノードから NUMA トポロジーに関する情報を取得することができます。以下のコマンドを使用して、この確認を行うことができます。
NUMA および CPU ピニングに関する詳細を確認するには、以下のコマンドを実行します。
$ ssh root@overcloud-compute-n # virsh vcpuinfo <vm>
<vm>
をインスタンスの名前に置き換えてください。インスタンスがどの NUMA ノードを使用しているかの詳細を確認するには、以下のコマンドを実行します。
$ ssh root@overcloud-compute-n # virsh numatune <vm>
<vm>
をインスタンスの名前に置き換えてください。