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 ...