4.2. RHEA-2016:0604 - Red Hat OpenStack Platform 8 director 機能拡張アドバイザリー

本項に記載するバグは、アドバイザリー RHEA-2016:0604 で対応しています。このアドバイザリーについての詳しい情報は、https://access.redhat.com/errata/RHEA-2016:0604.html を参照してください。

instack-undercloud

BZ#1212158
今回の更新で、OpenStack の通知が提供されるようになりました。以前は、通知が有効化されていないために、OpenStack の通知の外部コンシューマーが director によってデプロイされたクラウドに接続できない場合がありました。今回のリリースでは、director は外部コンシューマーに対しても通知を有効化するようになりました。
BZ#1223257
アンダークラウドで Ceilometer の設定が誤っていたため、ハードウェアの計測機能が正しく機能しませんでした。今回の修正により、有効なデフォルトの Ceilometer 設定が提供され、Ceilometer のハードウェア計測機能は想定通りに機能するようになりました。
BZ#1296295
以前のリリースでは、「openstack undercloud install」を実行すると、サブネットに変更が必要でない場合にも、アンダークラウドの neutron サブネットの削除と再作成が試行されていました。オーバークラウドがすでにデプロイされている場合には、サブネットにポートが割り当てられているため、そのサブネットの削除は失敗し、「openstack undercloud install」コマンドが失敗していました。今回の修正により、この動作は、「openstack undercloud install」コマンドでサブネットに設定の変更を適用する場合にのみサブネットの削除と再作成を試みるようになりました。オーバークラウドがデプロイ済みの場合には、director はサブネットを削除できないため、同じエラーメッセージが表示されますが、デプロイ済みのオーバークラウドでのサブネットの設定変更は推奨していないため、これは想定される動作です。サブネットの設定に変更がない場合には、「openstack undercloud install」コマンドでエラーメッセージがでて操作が失敗することはなくなりました。
BZ#1298189
以前のリリースでは、アンダークラウドをインストールする Puppet のマニフェストが間違ったリソース名を参照して Heat 用の keystone ドメインを作成していたため、以下のようなメッセージが表示されて、アンダークラウドのインストールに失敗していました。

puppet apply exited with exit code 1

今回の修正により、 Puppet のマニフェストがリソースの正しい名前を使用するようになったため、アンダークラウドのインストールがエラーなしで終了するようになりました。
BZ#1315546
以前のリリースでは、LANG を ja_JP.UTF-8 に設定すると、date コマンドの「dib-run-parts」に日本語の文字が含まれていたため、「_run_live_command()」で unicode エラーが発生していました。アンダークラウドのインストールは以下のエラーで失敗していました。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 18: ordinal not in range(128)
Command 'instack-install-undercloud' returned non-zero exit status 1

今回の修正により、アンダークラウドのインストール中に utf-8 の文字エンコーディングを使用する文字列がデコードされるようになり、LANG を ja_JP.UTF-8 に指定した場合のアンダークラウドのインストールは、正常に成功するようになりました。
BZ#1312889
今回の更新により、Red Hat OpenStack Platform director 8 から Tuskar API サービスが削除されました。以前のリリースでは、Tuskar はアンダークラウドにインストール/設定され、 Keystone サービスカタログ内に存在するエンドポイントが含まれていました。Tuskar の RPM は設定されなくなり、サービスカタログにエンドポイントは作成されなくなりました。

openstack-ironic-inspector

BZ#1282580
director に新たな機能が追加され、プロファイルの自動照合が可能となりました。ユーザーはイントロスペクションのステップで利用可能なデータに基づいてノードとデプロイメントロール間の自動照合を指定することができます。ユーザーは ironic-inspector イントロスペクションルールと新しい python-tripleoclient コマンドを使用してプロファイルをノードに割り当てることができます。
BZ#1270117
以前のリリースでは、Ironic Inspector により定期的に実行される iptables コールには、xtables がロックされるまで iptable に待機するように指示する「-w」オプションが含まれていませんでした。そのため、iptables の定期的な更新が失敗することがありました。今回の更新により、iptables コールに「-w」オプションが追加され、iptables の定期的な更新は失敗しないようになりました。

openstack-ironic-python-agent

BZ#1283650
以前のリリースでは、イントロスペクションの ramdisk のログ処理で Latin 以外の文字は考慮されませんでした。そのため、「ログ」コレクターはイントロスペクション中に失敗していました。今回の更新では、ログ処理が修正され、どのエンコーディングも適切に処理できるようになりました。
BZ#1314642
director はイントロスペクションとデプロイメントに新しい ramdisk を使用します。この ramdisk には、ルートデバイスヒントを使用していないユーザー向けにデフォルトのルートデバイスを選択する新たなアルゴリズムが実装されていますが、再デプロイメントで選択可能なルードデバイスが変更されると、エラーが発生してしまいます。今回の修正で、ramdisk デバイスロジックを OpenStack Platform director 7 と同じロジックに戻しました。デバイス名は信頼できないため、デフォルトのルートデバイスが同じということではない点に注意してください。この動作は、将来のリリースでは変更される予定です。お使いのノードが複数のハードドライブを使用している場合には、ルートデバイスヒントを使用するようにしてください。

openstack-tripleo-heat-templates

BZ#1295830
以前のリリースでは、Pacemaker は、サービスリソースに 100 秒のタイムアウトを使用していましたが、systemd のタイムアウトには、最初のタイムアウトの後に SIGTERM と SIGKILL に対応するための追加のタイムアウト時間が必要でした。今回の修正により Pacemaker のタイムアウトが 200 秒に延長され、2 つの systemd タイムアウト時間が完全に収まるようになり、そのタイムアウト時間では systemd が SIGTERM と SIGKILL を実行するために十分な時間が残るようになりました。
BZ#1311005
以前のリリースでは、RabbitMQ Pacemaker リソースには「notify=true」パラメーターがなかったため、RabbitMQ のインスタンスは RabbitMQ クラスターに再度参加できませんでした。今回の更新では、RabbitMQ の Pacemaker リソースエージェントで「notify=true」がサポートされるようになり、OpenStack director に「notify=true」が追加されました。その結果、RabbitMQ のインスタンスは RabbitMQ クラスターに再度参加できるようになりました。
BZ#1283632
「ceilometer」ユーザーには、一部の機能に必要なロールが割り当てられていなかったため、Ceilometer 計測機能が正しく動作していませんでした。今回の修正により必要なロールが「ceilometer」ユーザーに割り当てられるようになり、ceilometer の計測機能はすべて正しく動作するようになりました。
BZ#1299227
今回の更新の前は、swift ringbuilder と swift proxy memcache サーバーに使用されていた swift_device および swift_proxy_memcache の URI は IPv6 アドレス用の正しい形式ではなく、想定されている「[]」でIPv6 アドレスが区切られていませんでした。そのため、オーバークラウド向けに  IPv6 を有効化してデプロイする場合には、「Error: Parameter name failed on Ring_object_device ...」のエラーで操作が失敗していました。本リリースでは、IPv6 が有効化されると、swift_device および swift_proxy_memcache の URI の一部に使用される IP アドレスは「[]」で正しく区切られるようになりました。その結果、IPv6 を使用するデプロイメントは swift_device または swift_proxy_memcache の形式の間違いによって操作が失敗することはなくなりました。
BZ#1238807
今回の機能拡張により、ノードごとに hieradata を配置して、UUID (「dmidecode」で報告される) からノードを照合できるようになりました。
これにより、異なる数および種別のディスクを搭載した複数のノードにわたって CephStorage をスケーリングすることが可能です。
その結果、CephStorage ノードは、同種でないディスクのトポロジーで設定することが可能となりました。これは、ceph::profile::params::osds パラメーターに異なる設定ハッシュをプロビジョニングして設定します。
BZ#1242396
以前のリリースでは、os-collect-config ユーティリティーは、Puppet の実行終了後にのみ Puppet のログが出力されていました。そのため、実行中の Puppet run の Puppet ログは提供されませんでした。今回の更新では、Puppet run のログは、実行中でも出力されるようになりました。/var/run/heat-config/deployed/ ディレクトリーで確認することができます。
BZ#1266104
今回の更新では、neutron QoS (Quality of Service) の機能拡張により、テナントネットワークの品質と制限に対する制御が向上しました。オーバークラウドは Neutron QoS の機能拡張が有効な状態でデプロイされるようになりました。
BZ#1320454
Red Hat OpenStack Platform 8 の Orchestration サービス (heat) の検証がより厳格となり、アップグレードされたアンダークラウドからオーバークラウドスタックを更新しようとすると、以下のようなエラーメッセージが表示されて操作が失敗するようになりました。

ERROR heat.engine.resource ResourceFailure: resources.Compute: "u'1:1000'" is not a list. 

今回の修正で、NeutronVniRanges パラメーターが正しい形式となり、必要な「[]」が OpenStack Platform 7 openstack-tripleo-heat-templates パッケージにバックポートされ、openstack-tripleo-heat-templates-kilo-0.8.14-5.el7ost.noarch の時点で利用可能となっているはずです。アップグレードしたアンダークラウドで既存のオーバークラウドを管理する一方でバージョン 7 のテンプレート (/usr/share/openstack-tripleo-heat-templates/kilo に配置されている) を使用している場合に、オーバークラウドのスタック更新がエラーで失敗することはなくなりました。
BZ#1279615
今回の更新で、Neutron L2 population の機能を有効にできるようになりました。この機能は、テナントネットワークのブロードキャストトラフィックの量を低減するのに役立ちます。Neutron L2 population を有効にするには、環境ファイルの「default_parameter」セクションで NeutronEnableL2Pop パラメーターを設定してください。
BZ#1225163
director は外部コンシューマー向けの通知を適切に有効化するようになりました。
BZ#1259003
オーバークラウドノードのドメイン名はデフォルトで「localdomain」に設定されていました (例: overcloud-compute-0.localdomain)。今回の機能拡張により、ドメイン名をカスタマイズするためのパラメーター (CloudDomain) が提供されるようになりました。「parameter_defaults」セクションに CloudDomain パラメーターを記載した環境ファイルを作成します。ドメイン名が定義されていない場合には、Heat テンプレートによりデフォルトの「localdomain」が使用されます。
BZ#1273303
director は OpenStack Networking の「enable_isolated_metadata」オプションをサポートするようになりました。このオプションにより、外部のルータまたは分離されたネットワーク上の仮想マシンのインスタンスメタデータにアクセスすることが可能です。
BZ#1308422
以前のリリースでは、/etc/nova/nova.conf の [neutron] セクションの admin_auth_url 設定の末尾に「/v2.0」が記載されていませんでした。このため、Nova は Keystone カタログに接続して Neutron サービスエンドポイントをクエリーしてインスタンス用のポートを作成/バインドできなかったため、インスタンスをブートすることができませんでした。今回のリリースでは、admin_auth_url で指定される URL の末尾に「/v2.0」が正しく追加され、director を使用してオーバークラウドをデプロイした後でインスタンスが正常に起動できるようになりました。
BZ#1298247
director は、以下の OpenStack Networking サービスの無効化/有効化を制御する新しいパラメーターをサポートするようになりました。

* dhcp_agent
* l3_agent
* ovs_agent
* metadata_agent

今回の機能拡張により、上記のサービスのいずれかを置き換える Neutron プラグインのデプロイメントが可能となりました。これらのサービスをすべて無効にするには、環境ファイルで以下のパラメーターを使用してください。

  NeutronEnableDHCPAgent: false
  NeutronEnableL3Agent: false
  NeutronEnableMetadataAgent: false
  NeutronEnableOVSAgent: false
BZ#1266219
director は、Dell EqualLogic または Dell Storage Center アプライアンスをバックエンドとして使用する Block Storage サービスをデプロイできるようになりました。詳しい情報は、以下のリンクを参照してください。

https://access.redhat.com/documentation/en/red-hat-openstack-platform/version-8/dell-equallogic-back-end-guide/
https://access.redhat.com/documentation/en/red-hat-openstack-platform/8/dell-storage-center-back-end-guide/dell-storage-center-back-end-guide

os-cloud-config

BZ#1288475
以前のリリースでは、Identity サービスのエンドポイント登録コードのバグで、Telemetry サービスを SSL 対応としてマークする操作が失敗していました。この問題により、Telemetry サービスを HTTPS として登録することができませんでした。今回の更新でこのバグは修正され、Identity サービスは Telemetry を正しく登録し、Telemetry のトラフィックは想定通りに暗号化されるようになりました。
BZ#1319878
以前のリリースでは、ブリッジおよびボンディングに (Open vSwitch を使用する代わりに) Linux カーネルモードを使用する場合に、VLAN インターフェースの物理デバイスが検出されなかったため、VLAN インターフェースが正しく機能しませんでした。

今回のリリースでは、VLAN が物理ブリッジのメンバーである (つまり、VLAN がブリッジの「members:」セクションで指定されている) 限りは、os-net-config ユーティリティーが VLAN 用の物理インターフェースが自動検出されるようになりました。そのため、VLAN インターフェースは、OVS ブリッジおよび Linux カーネルブリッジの両方で適切に機能するようになりました。
BZ#1316730
以前のリリースでは、VLAN インターフェースは Linux カーネルのボンディングにブリッジなしで直接配置されていたので、VLAN がボンディングよりも先に起動する可能性がありました。そのような状況が発生すると、VLAN は起動に失敗していました。今回のリリースでは、os-net-config ユーティリティー が VLAN よりも先に物理ネットワーク (ブリッジ、ボンディング、インターフェースの順) を起動するようになりました。これにより、VLAN が適切に起動するために必要なインターフェースが確実に使用できるようになりました。

python-rdomanager-oscplugin

BZ#1271250
以前のリリースでは、バグにより、エラーが発生したノードが使用可能とマークされる可能性がありました。このような問題が発生すると必ず、ノードは適切な状態でなかったため、デプロイメントは失敗していました。今回の更新で、このバグを修正するアップストリームのパッチがバックポートされました。

python-tripleoclient

BZ#1288544
以前のリリースでは、バルクイントロスペクションでは、オンスクリーンエラーのみが出力され、エラーのステータスコードは一切返されませんでした。この問題により、イントロスペクションのエラーが検出されるのが妨げられていました。 今回の更新により、エラーのステータスコードが 0 以外に変更され、イントロスペクションが失敗した場合には、ステータスコードで検出できるようになりました。
BZ#1261920
以前のリリースでは、メンテナンスモード中のノードにバルクイントロスペクションの操作が行われていたので、イントロスペクションが失敗したり、ノードのメンテナンスが中断したりしてしまうこともありました (ノードのメンテナンスの理由によって異なります)。今回のリリースでは、バルクイントロスペクションはメンテナンスモードのノードを無視するようになりました。
BZ#1246589
オーバークラウドのデプロイに (python-tripleoclient ではなく) python-rdomanager-oscplugin を使用する古いデプロイメントでは、HA ではない単一コントローラーのデプロイメントでも neutron の dhcp_agents_per_network パラメーターが最小で 3 に設定されていました。これは、1 コントローラーのみでデプロイする場合に、dhcp_agents_per_network が 3 に設定されていたことを意味します。今回の修正で、単一コントローラーのケースが考慮されるようになり、director は dhcp_agents_per_network を最大で 3 に設定し、コントローラーよりも多い数には設定しないようになりました。コントローラーノードが 3 台以上の HA でデプロイする場合には、それらのコントローラーノード上の neutron.conf 内のdhcp_agents_per_network の設定パラメーターは「3」に設定されます。また、コントローラーが 1 台のみの非 HA でデプロイする場合には、同じ dhcp_agents_per_network パラメーターは「1」に設定されます。

rhel-osp-director

BZ#1293979
アンダークラウド上でパッケージを更新すると、アンダークラウドは不確定な状態になります。これは、パッケージ更新後にアンダークラウドのサービスの一部が無効になり、再度起動できなくなることを意味します。回避策として、「openstack undercloud install」を実行し、全アンダークラウドを再設定してください。コマンドが終了した後には、アンダークラウドサービスは通常通りに動作するようになります。
BZ#1234601
以前のリリースでは、Ramdisk およびカーネルのイメージは、特定のインターフェースを指定しなくてもブートしていました。これは、任意のネットワークアダプターからシステムが起動していたことになり、複数のインターフェースがプロビジョニングネットワーク上にある場合に問題が発生する原因となっていました。そのような場合には、システムがブートに使用するインターフェースを指定する必要がありました。指定するインターフェースは、MAC address from the instackenv.json ファイルからの MAC アドレスを保持するインターフェースに対応する必要があります。

回避策として、root ユーザーとして以下のテキストブロックをコピーし、director のターミナルに貼り付けます。これにより、ブート時に毎回、systemd の起動スクリプトが作成され、これらのパラメーターを設定します。

スクリプトには「net0/mac」を含む sed コマンドが記載されています。これにより、director が 1 番目の Ethernet インターフェースを使用するように設定されます。2 番目のインターフェースを使用するには、この値を「net1/mac」に変更してください。

#####################################
cat << EOF > /usr/bin/bootif-fix
#!/usr/bin/env bash

while true;
        do find /httpboot/ -type f ! -iname "kernel" ! -iname "ramdisk" ! -iname "*.kernel" ! -iname "*.ramdisk" -exec sed -i 's|{mac|{net0/mac|g' {} +;
done
EOF

chmod a+x /usr/bin/bootif-fix

cat << EOF > /usr/lib/systemd/system/bootif-fix.service
[Unit]
Description=Automated fix for incorrect iPXE BOOFIF

[Service]
Type=simple
ExecStart=/usr/bin/bootif-fix

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable bootif-fix
systemctl start bootif-fix

#######################################

bootif-fix スクリプトは、全ノードで実行されます。これにより、プロビジョニングネットワークに複数の NIC がある場合に、指定した NIC からブートできるようになります。サービスを無効にして以前の動作に戻すには、「systemctl disable bootif-fix」を実行してリブートします。
BZ#1249601
OpenStack Bare Metal (ironic) は、UEFI モードのノードのデプロイをサポートするようになりました。これは、UEFI ブートのみをサポートするサーバーをお使いのお客様からの要求によって実装されました。
BZ#1236372
以前のリリースでは、Nova EC2 API のヘルスチェックの設定が誤っていたため、HAProxy は API が停止しているものと判断していました。このため、API には HAProxy を介して到達できませんでした。今回の修正により、ヘルスチェックの設定が正しく変更され、API サービスの状態のクエリーを適正に実行できるようになったので、Nova EC2 API は HAProxy を介して到達可能となりました。
BZ#1265180
「baremetal」フレーバーは、director が使用していない場合でも必要なフレーバーです。このフレーバーがない場合には、デプロイメントはエラーが発生して失敗してしまいます。今回のリリースでは、アンダークラウドのインストールで「baremetal」フレーバーが自動的に作成されるようになりました。フレーバーが配置されると、director はエラーを報告しません。
BZ#1318583
以前のリリースでは、Ceilometer の設定で os_tenant_name の変数が「service」テナントではなく「admin」テナントに誤って指定されていたため、ceilometer-central-agent の操作は「ERROR ceilometer.agent.manager Skipping tenant, keystone issue: User 739a3abf8504498e91044d6d2a6830b1 is unauthorized for tenant d097e6c45c494c2cbef4071c2c273a58」のエラーで失敗していました。今回のリリースでは、Ceilometer が「service」テナントを使用するように正しく設定されました。
BZ#1315467
以前のリリースでは、アンダークラウドのアップグレード後に、openstack-nova-api サービスが再起動されなかったため、オーバークラウドでタイムアウトが発生して「ERROR: Timed out waiting for a reply to message ID 84a44ca3ed724eda991ba689cc364852」のエラーが報告され、操作が失敗していました。今回のリリースでは、アンダークラウドのアップグレードプロセスの一環で openstack-nova-api サービスが正しく再起動されるようになり、オーバークラウドのアップグレードプロセスはこのようなタイムアウトが発生することなく続行されるようになりました。