25.4. CPU ピニングパラメーターの更新
Red Hat OpenStack Platform 16.1 では、CPU ピニングに新たなパラメーターが使用されます。
NovaComputeCpuDedicatedSet
- 専用の (ピニングされた) CPU を設定します。
NovaComputeCpuSharedSet
- 共有の (ピニングされていない) CPU を設定します。
Red Hat OpenStack Platform 16.1 へのアップグレードが完了したら、CPU ピニングの設定を NovaVcpuPinSet
パラメーターから NovaComputeCpuDedicatedSet
と NovaComputeCpuSharedSet
のパラメーターに移行する必要があります。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 コンピュートノードが同時マルチスレッド (SMT) をサポートするが
hw:cpu_thread_policy=isolate
ポリシーでインスタンスを作成している場合は、以下のオプションのいずれかを実施する必要があります。hw:cpu_thread_policy
スレッドポリシーの設定を解除し、インスタンスのサイズを変更します。source コマンドでオーバークラウドの認証ファイルを読み込みます。
$ source ~/overcloudrc
フレーバーの
hw:cpu_thread_policy
プロパティーの設定を解除します。(overcloud) $ openstack flavor unset --property hw:cpu_thread_policy <flavor>
注記-
hw:cpu_thread_policy
属性の設定を解除すると、ポリシーがデフォルトのprefer
ポリシーに設定されます。これにより、インスタンスは SMT 対応のコンピュートノードを使用するように設定されます (利用可能な場合)。hw:cpu_thread_policy
属性をrequire
に設定することもできます。これにより、SMT 対応のコンピュートノードに対するハード要件が設定されます。 -
コンピュートノードに SMT アーキテクチャーがない場合や、スレッドシブリングが利用可能な CPU コアが十分にない場合には、スケジューリングが失敗します。これを回避するには、
hw:cpu_thread_policy
をrequire
ではなくprefer
に設定します。デフォルトのprefer
ポリシーでは、スレッドシブリングが利用可能な場合には、必ず使用されます。 -
hw:cpu_thread_policy=isolate
を使用する場合は、SMT を無効にするか、SMT をサポートしないプラットフォームを使用する必要があります。
-
新しいスレッドポリシーを使用するようにインスタンスを変換します。
(overcloud) $ openstack server resize --flavor <flavor> <server> (overcloud) $ openstack server resize confirm <server>
hw:cpu_thread_policy=isolated
ポリシーを使用するすべての固定インスタンスに対して、このステップを繰り返します。
コンピュートノードからインスタンスを移行して、コンピュートノードの SMT を無効にする。
source コマンドでオーバークラウドの認証ファイルを読み込みます。
$ source ~/overcloudrc
コンピュートノードが新しい仮想マシンを受け入れるのを無効にします。
(overcloud) $ openstack compute service list (overcloud) $ openstack compute service set <hostname> nova-compute --disable
- コンピュートノードからすべてのインスタンスを移行します。インスタンスの移行についての詳細は、コンピュートノード間の仮想マシンインスタンスの移行 を参照してください。
- コンピュートノードをリブートし、コンピュートノードの BIOS で SMT を無効にします。
- コンピュートノードをブートします。
コンピュートノードを再度有効にします。
(overcloud) $ openstack compute service set <hostname> nova-compute --enable
stackrc
ファイルを取得します。$ source ~/stackrc
-
NovaVcpuPinSet
パラメーターが含まれる環境ファイルを編集します。 CPU ピニングの設定を
NovaVcpuPinSet
パラメーターからNovaComputeCpuDedicatedSet
とNovaComputeCpuSharedSet
に移行します。-
これまでピニングされたインスタンス用に使用されていたホストの場合には、
NovaVcpuPinSet
の値をNovaComputeCpuDedicatedSet
に変更します。 -
これまでピニングされていないインスタンス用に使用されていたホストの場合には、
NovaVcpuPinSet
の値をNovaComputeCpuSharedSet
に変更します。 -
NovaVcpuPinSet の値が設定されていない場合には、ノード上でホストするインスタンスの種別に応じて、すべてのコンピュートノードのコアを
NovaComputeCpuDedicatedSet
またはNovaComputeCpuSharedSet
のどちらかに割り当てる必要があります。
たとえば、以前の環境ファイルに以下のピニング設定が定義されていたとします。
parameter_defaults: ... NovaVcpuPinSet: 1,2,3,5,6,7 ...
設定をピニング設定に移行するには、NovaCompute
CpuDedicatedSet
パラメーターを設定し、NovaVcpuPinSet
パラメーターの設定を解除します。parameter_defaults: ... NovaComputeCpuDedicatedSet: 1,2,3,5,6,7 NovaVcpuPinSet: "" ...
設定をピニングしない設定に移行するには、
NovaComputeCpuSharedSet
パラメーターを設定し、NovaVcpuPinSet
パラメーターの設定を解除します。parameter_defaults: ... NovaComputeCpuSharedSet: 1,2,3,5,6,7 NovaVcpuPinSet: "" ...
重要NovaComputeCpuDedicatedSet
またはNovaComputeCpuSharedSet
のいずれかが、NovaVcpuPinSet
で定義した設定と一致するようにします。NovaComputeCpuDedicatedSet
またはNovaComputeCpuSharedSet
のいずれかの設定を変更する、またはその両方を設定するには、設定を更新する前にピニング設定のコンピュートノードが 1 つのインスタンスも実行していないようにします。-
これまでピニングされたインスタンス用に使用されていたホストの場合には、
- ファイルを保存します。
デプロイメントコマンドを実行して、新しい CPU ピニングパラメーターでオーバークラウドを更新します。
(undercloud) $ openstack overcloud deploy \ --stack _STACK NAME_ \ --templates \ ... -e /home/stack/templates/<compute_environment_file>.yaml ...