Show Table of Contents
第4章 テクニカルノート
本章には、コンテンツ配信ネットワークからリリースされる Red Hat OpenStack Platform「Liberty」のエラータアドバイザリーの補足情報を記載します。
4.1. RHEA-2016:0603 - Red Hat OpenStack Platform 8 機能拡張アドバイザリー
本項に記載するバグは、アドバイザリー RHEA-2016:0603 で対応しています。このアドバイザリーについての詳しい情報は、https://access.redhat.com/errata/RHEA-2016:0603.html を参照してください。
diskimage-builder
- BZ#1307001
diskimage-builder パッケージは、アップストリームのバージョン 1.10.0 に更新されました。このバージョンでは、多数のバグが修正され、以前のバージョンよりも機能が拡張されています。python-devel パッケージがデフォルトで削除されなくなったのは注目すべき点です。以前のバージョンでは、これが原因で、その他のパッケージも削除されていました。
memcached
- BZ#1299075
以前のリリースでは、memcached は IPv6 アドレスをバインディングできなかったため、IPv6 環境で memcached は起動に失敗していました。 今回の更新では、この問題に対処するために、memcached-1.4.15-9.1.el7ost が IPv6 対応となりました。
mongodb
- BZ#1308855
今回のリベースパッケージにより、範囲クエリーのパフォーマンスが向上されました。特に、「$or」演算子を使用するクエリーが 2.4 リリースで影響を受けていました。これらのリグレッションは 2.6 で修正されました。
openstack-cinder
- BZ#1272572
以前のリリースでは、Block Storage コンポーネントのバグにより、クォータを使用している場合には Identity API v2 との互換性がありませんでした。このため、Block Storage のクォータに関する情報を管理する際にエラーが発生していました。今回の更新により、Block Storage は Identity API v2 との互換性があるように更新され、Dashboard がボリュームのクォータに関する情報を正しく取得できるようになりました。
- BZ#1295576
以前のリリースでは、cinder API サーバーのクォータコードにバグがあり、「auth_uri」を使うべきところで「encryption_auth_url」を使用していたため、cinder がクォータ情報を問い合わせると、keystone との通信に失敗し、cinder はクライアントに HTTP 500 エラーを返していました。 この問題は 7.0.1 で解決されました。 7.0.1 の Cinder API サービスが修正され、cinder quota コマンドが想定通りに動作するようになりました。
- BZ#1262106
今回の機能拡張により、Object Storage (swift) に cinder ボリュームをバックアップするのと同じユーザーインターフェースを使用して、Block Storage (cinder) ボリュームをバックアップできるようになりました。 この機能は、Ceph がすでに使用されている場合に、第 2 のオブジェクトストアの必要性を回避するために拡張されました。
- BZ#1179445
以前のリリースでは、Block Storage (cinder) のバッキングストアとして Ceph を使用すると、大型のボリュームの削除やフラット化などの操作により、他のドライバースレッドがブロックされてしまう可能性がありました。 このため、スレッドを削除したりフラット化したりすると、その処理が完了するまで cinder は他の操作を実行できなくなる場合がありました。 今回の修正により、スレッドの削除およびフラット化は同じプロセスのグリーンスレッドとしてではなくサブプロセスで実行されるようになりました。 その結果、削除およびフラット化の操作はバックグラウンドで実行されるようになり、その他の cinder の操作 (ボリュームの作成やアタッチなど) を同時に実行できるようになりました。
- BZ#1192641
今回のリリースでは、セキュリティーの分離を提供するために、「/usr/local」のパスがデフォルトの Block Storage の rootwrap の設定から削除されました。その結果、「/usr/local/」から「root」ユーザーとしてコマンドを実行する Block Storage サービスに依存するデプロイメントは、そのコマンドが機能するための設定を追加する必要があります。
- BZ#1258645
今回の機能拡張により、新たにスケーリングされたバックエンドのレプリケーション実装 (バックエンド間) が追加されました。作業の大半はドライバーに任されますが、基本的な管理 API メソッドが提供されます。この機能は、レプリケーションがボリューム種別レベルで設定されている場合に、cinder ドライバーがそのケイパビリティーを報告する際に利用することができます。以下の新規オプションが利用できるようになりました。 replication_enabled: True に設定します。 replication_type: async、sync replication_count: レプリカ数
- BZ#1258643
多様なストレージバックエンドを使用するデプロイメントで管理者がより柔軟に操作を実行できるようにするために、Block Storage は QoS、圧縮、レプリケーション、帯域幅の制御、シンプロビジョニングなどのケイパビリティーの標準名を定義できるようになりました。これは、変更なしに複数のドライバーで機能するボリューム種別の仕様を定義できることを意味します。
- BZ#1267951
今回の更新で、ネストされたクォータが導入されました。デプロイ担当者は、CInder で親プロジェクトから継承されたサブプロジェクトを使用することで、階層のあるクォータを管理できるようになりました。
openstack-glance
- BZ#1167565
今回の更新により Image サービス (glance) によってホストされる共通の API が追加されました。これにより、ベンダー、管理者、サービス、ユーザーは利用可能なキー/値のペアおよびタグのメタデータを意味があるように定義することができます。これは、OpenStack ユーザーのために、アーティファクト、サービス、プロジェクト全体にわたるコラボレーションを向上させることが目的です。 この定義は、異なる種別のリソース (イメージ、アーティファクト、ボリューム、フレーバー、アグリゲートなど) に利用可能なメタデータを記述します。定義には、プロパティーの種別、キー、説明、制限などが含まれます。このカタログは、特定のインスタンスのプロパティーには値を保存しません。 たとえば、多数のコアの仮想 CPU トポロジーのプロパティーの定義には、使用するキー、説明、値の制限 (整数を指定する必要があるなど) が含まれます。その結果、ユーザーは (Dashboard を使用可能) このカタログを検索し、フレーバーやイメージに追加することのできる利用可能なプロパティーを一覧表示することができます。 ユーザーは、一覧に表示される仮想 CPU トポロジーのプロパティーを確認すると、整数を指定する必要があることがわかります。Dashboard の例では、ユーザーがプロパティーを追加すると、キーと値は、そのリソースを所有するサービス (フレーバーには nova、イメージには glance) に保管されます。
openstack-gnocchi
- BZ#1252954
今回のリベースパッケージは、https://launchpad.net/gnocchi/+milestone/1.3.0 にリストされているバグに対処しました。 #1511656: gnocchi-metricd が空のメジャーリストをトレース #1496824: Gnocchi の更新のアラームで 400 が返される場合がある #1500646: Ceph とgnocchi-metricd でのデータ破損により、Ceph プール全体が削除され全データを失う #1503848: instance_disk および network_interfaces にコントローラーがない #1505535: py34 + tooz + PG で断続的なゲートエラー #1471169: MySQL のインデクサーがデッドロックで停止する場合がある #1486079: メトリックの削除は非同期にすべき #1499372: Metricd は破損した新規メジャーファイルの対応を改善すべき #1501344: archive_policy_rules の評価が指定されていない #1504130: ミドルウェア設定の調整 #1506628: メジャーの取得に粒度別のフィルターを追加 #1499115: api.workers = 2 と Ceph で gnocchi-api がハング #1501774: gate 内で "sudo: .tox/py27-gate/bin/testr: command not found" のエラーで機能テストが失敗
openstack-heat
- BZ#1303084
以前のリリースでは、heat は最新のプロパティーの定義に基づいて、古いプロパティーの検証を試みていました。そのため、director のアップグレード中に、プロパティーの定義が種別を変更すると、heat が以前のプロパティー値の検証を試みる際に、「TypeError」でプロセスが失敗していました。 今回の修正により、heat は古いプロパティー値の検証は試みないようになりました。 その結果、heat は新しいプロパティー値のみを検証するので、プロパティースキーマ定義の変更を正常に処理できるようになりました。
- BZ#1318474
以前のリリースでは、クラウドの更新時に director はパッチ更新を使用していたので、作成時に渡された全パラメーターが再利用されていました。更新で削除されたパラメーターは、検証に失敗していました。そのため、パッチ更新を使用して、削除されたパラメーターを使用するスタックを更新すると、そのパラメーターを明示的に消去しない限りは操作は失敗していました。 今回の修正により、heat によるパッチ更新の処理が変更され、新規テンプレートに存在しないパラメーターは無視されるようになりました。 その結果、最上位のパラメーターを削除して、修正プログラムで更新を行うことができるようになりました。
- BZ#1303723
以前のリリースでは、heat は保管されているコンテキストを読み込む際に、コンテキストロールは空のままにしていました。シグナル化の際には、heat は保管されていたコンテキスト (trust scoped token) を使用し、そのコンテキストにロールがなかった場合には、動作は失敗していました。そのため、「trustee has no delegated roles」のエラーでプロセスは失敗していました。 今回の修正では、保管されているコンテキストの読み込み時にロールを追加することによってこの問題に対処しています。その結果、auth ref を読み込み、トークンからロールが追加されると、コンテキストロールに対して実行される RBAC が想定通りに機能することが確認され、スタックの更新が成功します。
- BZ#1303112
以前のリリースでは、heat でいくつかの neutron リソースのプロパティー名が変更されました。heat はリソースの作成時には古い名前をサポートするメカニズムを使用していましたが、以前のバージョンで作成したリソースの検証で失敗していました。そのため、Red Hat OpenStack Platform 8 を使用して、バージョン 7 (またはそれ以前のバージョン) で作成した、neutron ポートリソースを使用するスタックを更新すると、「None」オブジェクトのルックアップの試行で失敗していました。 今回の修正では、heat がリソースを更新すると、古いプロパティーにも変換メカニズムが使用されるようになり、その結果、非推奨となったプロパティーのサポートは、以前のバージョンで作成したリソースで想定されるように機能します。
openstack-ironic-python-agent
- BZ#1312187
以前のリリースでは、デプロイメントの ramdisk 実行時に間に合うようにハードドライブが利用できないことがありました。そのため、ramdisk が必要なルートデバイスを見つけられない場合には、デプロイメントが失敗していました。今回の更新では、ramdisk 内のディスクを列挙する前に「udev settle」コマンドが実行されるようになり、ルートデバイスが見つからないことが原因でデプロイメントが失敗することはなくなりました。
openstack-keystone
- BZ#1282944
Identity サービス (keystone) で、「enabled emulation」機能を使用している場合には、ユーザーが有効かどうかを確認する際に、ハードコードされた LDAP メンバーシップ属性が使用されていました。 そのため、予想外の LDAP メンバーシップ属性が使用されている場合には、「enabled」のユーザーが「disabled」として表示される場合がありました。 今回の修正により、「enabled emulation」のメンバーシップのチェックで、グループリソースに使用される設定可能な LDAP メンバーシップ属性を使用するようになりました。 その結果、異なる LDAP メンバーシップ属性が設定されている場合に、ユーザーの「enabled」ステータスが正しく表示されるようになりました。
- BZ#1300395
Identity サービスの今回のリベースパッケージでは、以下の問題に対処しました。 * Identity サービス (keystone) で、「enabled emulation」機能を使用している場合には、ユーザーが有効かどうかを確認する際に、ハードコードされた LDAP メンバーシップ属性が使用されていました。そのため、予想外の LDAP メンバーシップ属性が使用されている場合には、「enabled」のユーザーが「disabled」として表示される場合がありました。今回の修正により、「enabled emulation」のメンバーシップのチェックで、グループリソースに使用される設定可能な LDAP メンバーシップ属性を使用するようになりました。異なる LDAP メンバーシップ属性が設定されている場合に、ユーザーの「enabled」ステータスが正しく表示されるようになりました。(Launchpad バグ #1515302、Red Hat BZ#1282944) * Fernet トークンプロバイダーを使用すると、user_id の長さが 16 文字だった場合には、Identity サービスが UUID を処理していると誤って仮定する可能性がありました。これにより、Identity サービスのログに「Could not find user」(ユーザーは見つかりません) のエラーが記録されていました。今回のリリースではこの問題は修正され、16 文字のユーザー ID が適切に処理されるようになりました。(Launchpad バグ #1497461)
- BZ#923598
以前のリリースでは、Identity サービス (keystone) で、管理者が Passlib python モジュールで使用されている上限を超えるパスワードの最大長を設定することが可能でした。 そのため、パスワードの最大長を Passlib の上限を超える値に設定した場合、Passlib の上限を超えるユーザーパスワードの設定を試みても、HTTP 500 の応答とキャッチされない例外のエラーが発生して操作は失敗していました。 今回の更新で、Identity サービスは「max_password_length」の設定値が Passlib の最大長以下であることを検証するようになりました。 その結果、Identity サービスの「max_password_length」が大きすぎる場合には、設定検証エラーで起動が失敗するようになりました。
openstack-neutron
- BZ#1292570
以前のリリースでは、「iproute2」の最近のバージョンの「ip netns list」コマンドは予想外の ID データを返していたため、neutron は名前空間を解析できませんでした。 今回の修正では、neutron で使用するパーサーを更新することによってこの問題に対処しました。その結果、neutron は名前空間を想定通りに解析することが可能となりました。
- BZ#1287736
今回の更新の前には、Keepalived の親プロセスが停止すると、L3 エージェントは Keepalived プロセスの再起動に失敗していました。これは、Keepalived の子プロセスがまだ実行中だったためでした。 そのため、L3 エージェントは、Keepalived の親プロセスの停止から復旧できず、このプロセスがサービスを提供する HA ルーターが機能しなくなっていました。 今回の更新により、L3 エージェントが Keepalived の子プロセスを認識し、Keepalived を再起動する前にクリーンアップするようになりました。 その結果、L3 エージェントは、Keepalived プロセスが停止した後に HA ルーターを復旧できるようになりました。
- BZ#1290562
Red Hat OpenStack Platform 8 では、新たな RBAC 機能が導入され、neutron ネットワークをグローバルに共有する代わりに、特定のテナントリストと共有できるようになりました。この機能の一部として、ネットワークの所有者がそのネットワークに属する全ポートを一覧表示できるようにすることを試みて、neutron のデフォルトのポリシー .json ファイルは I/O のトリガーを開始し、ポートをフェッチするたびにデータベースフェッチを消費していました。 そのため、ポートの一覧表示の操作により複数の不要なデータベースフェッチがトリガーされて、操作のパフォーマンスに大幅な影響を及ぼしていました。 今回にの更新では、I/O 操作は、たとえば、ポリシーエンジンによって検証されるポートが一覧表示の操作を呼び出すテナントに属していない場合など、実際に必要な時にだけ実行することにより、この問題に対処しました。その結果、一覧表示の操作は、再び正常にスケーリングするようになりました。
- BZ#1222775
今回の更新の前には、BZ#1215177 の修正により、Keepalived の設定に「garp_master_repeat 5」と「garp_master_refresh 10」のオプションが追加されました。 しかしながら、その結果、Keepalived は Gratuitous ARP (GARP) ブロードキャストで継続的に大量のデータをネットワークに送り込んでいました。また、インスタンスは IPv6 のデフォルトゲートウェイ設定を失っていました。これらの問題が原因で、IPv6 ルーターは VRRP では機能を停止していました。 今回の更新では、Keepalived の「repeat」と「refresh」オプションが廃止されました。これにより、IPv6 のバグが修正されましたが、BZ#1215177 に記載されているバグが発生しました。 この問題を解決するには、「delay」オプションを代わりに使用すると、Keepalived は MASTER に移行するときに GARP を送信してから、遅延のオプションによって決定される秒数を待った後に別の GARP を送信します。ノードがブートして L3/L2 エージェントが起動する際に L2 エージェントがポートを配線するための十分な時間があるようにするには、アグレッシブな「delay」設定を使用してください。
- BZ#1283623
今回の更新の前には、Open vSwitch エージェントに加えられた変更が原因でバグが発生し、エージェントが起動時にフラットネットワークのセグメンテーション ID 値を処理する方法で問題が生じていました。 そのため、エージェントがフラットネットワークにサービスを提供する際に再起動に失敗していました。 今回の更新により、エージェントのコードが修正され、フラットネットワークのセグメンテーションプロパティーを処理するようになりました。その結果、エージェントはフラットネットワークにサービスを提供する際に正常に再起動するようになりました。
- BZ#1295690
以前のリリースでは、HA または DVR のどちらでもないルーターを HA ルーターに変換することはできませんでした。代わりに、新規ルーターを作成して、全リソース (インターフェース、ネットワークなど) を古いルーターから新しいルーターに再接続する必要がありました。今回の更新では、簡単なコマンドを実行して、レガシーのルーターを HA または非 HA ルーターに変換できる機能が追加されました。 # neutron router-update ROUTER --admin-state-up=False # neutron router-update ROUTER --ha=True/False # neutron router-upgrade ROUTER --admin-state-up=True ROUTER は、変換するルーターの ID または名前に置き換えてください。
- BZ#1177611
High Availability (VRRP) ルーターと L2 Population の対話で、既知の問題が確認されました。現在、HA ルーターをサブネットに接続すると、HA ルーターは設計上、分散ポートを使用します。各ルーターには、スケジューリングされている各ノード上の同じポートの詳細が含まれています。そのポートへの IP が設定されているのはマスタールーターのみで、全スレーブルーターのポートには IP が設定されていません。 そのため、L2Population は古い情報を使用して、ルーターがノード上にあることを通知します (そのポートのポートバインド情報で示されます)。 その結果、論理ネットワーク上にポートがあるノードにはそれぞれ、ポートがバインドされることが想定されるノードに対してのみトンネルが作成されます。また、作成したトンネル経由で、そのポートに対するトラフィックが送信されるように、転送のエントリーが設定されます。 ただし、ポートバインドで指定されたノード上にマスターのルーターがある保証はないため、このアクションは失敗する可能性があります。また、マスタールーターが実際にノード上にある場合には、フェイルオーバーのイベントにより、マスタールーターが別のノードに移動されるため、ルーターとの接続性が失われてしまいます。
- BZ#1300308
以前のリリースでは、neutron-server サービスは、セキュリティーグループの更新をリッスンする L2 エージェントから、新しい RPC エントリーポイントのバージョンを誤って要求することがありました。 そのため、Red Hat OpenStack Platform 7 neutron L2 エージェントは、Red Hat OpenStack Platform 8 neutron-server サービスによって送信される特定のセキュリティーグループの通知を処理できなかったため、特定のセキュリティーグループの更新がデータプレーンに反映されませんでした。 今回の更新では、エージェントからの RPC エンドポイントバージョンの要求しないようにすることによってこの問題に対処しました。これは、 RHEL OpenStack Platform 7 と Red Hat OpenStack Platform 8 の間のローリングアップグレードに役立つことが理由です。 その結果、RHEL OpenStack Platform 7 neutron L2 エージェントは、Red Hat OpenStack Platform 8 neutron-server サービスによって送信されたセキュリティーグループの更新通知を正しく処理するようになりました。
- BZ#1293381
今回の更新の以前は、テナントの最後の HA ルーターが削除されると、そのテナントに属する HA ネットワークが削除されていました。これは、ルーターが削除されたために例外を発生させる「router delete」API コールなどの特定のシナリオで発生していました。このシナリオは、HA ルーターの「create」と「delete」の操作の間の競合状態が原因で発生する可能性がありました。この問題のために、HA ネットワークテナントは削除されませんでした。 今回の更新により、競合状態の問題は解決され、ユーザーが最後の HA ルーターを削除する時や、HA ネットワークを移動して「ha_network exist」チェックブロック下のプロシージャーを削除する時にも、「ObjectDeletedError」および「NetworkInUse」の例外を検出するようになりました。また、今回の修正により、HA ルーターの存在の有無がチェックされ、最後の HA ルーターが削除されると HA ネットワークが削除されるようになりました。
- BZ#1255037
neutron-openvswitch-agent が停止している時に作成された neutron ポートのステータスは「DOWN, binding:vif_type=binding_failed」となることが想定されていましたが、今回の更新の以前は、neutron-openvswitch-agent がオンライン状態に戻っても、それらのポートを復旧させる方法はありませんでした。今回の修正により、「_bind_port_if_needed」の関数は、渡されたポートのバインディングステータスがすでに「binding_failed」の場合に、少なくとも 1 回バインディングを実行するようになったため、neutron-openvswitch-agent がオンライン状態に戻った時にバインディングを繰り返し試行することによって、ポートはエラーのバインディングステータスから復旧できるようになりました。
- BZ#1284739
今回の更新の以前は、Floating IP アドレスが HA ルーターによって割り当てらる際に、その Floating IP アドレスのステータスが設定されませんでした。 そのため、「neutron floatingip-show <floating_ip>」は更新されたステータスを出力しませんでした。 今回の更新では、HA ルーターによって Floating IP アドレスが割り当てられた時と、L3 エージェントによってルーターが設定された時に、その Floating IP アドレスのステータスが更新されます。 その結果、HA ルーターによって割り当てられた Floating IP アドレスのステータスフィールドには、L3 エージェントによって Floating IP が設定されると、ステータスが「ACTIVE」に更新されます。
openstack-nova
- BZ#978365
libvirt ドライバーで admin パスワードを設定する機能が追加されました。この機能を使用するには、「nova root-password [server]」のコマンドを実行してください。
- BZ#1298825
以前のリリースでは、奇数の 仮想 CPU を選択すると、ゲストインスタンスで 1 CPU につき 1 コア、1 スレッドが割り当てられ、パフォーマンスに影響がありました。 今回の更新で、この問題は修正され、奇数の 仮想 CPU が割り当てられた場合には、1 CPU につきスレッドのペアと独立したスレッドが 1 つ割り当てられるようになりました。
- BZ#1301914
以前のリリースでは、移行元のコンピュートノードが移行後に稼動状態に戻っても、そのノードが停止している間に正常に退避されていたインスタンスは削除されませんでした。削除されなかったインスタンスがあるために、退避されていたインスタンスを元に戻すことができませんでした。 今回の更新では、インスタンスを退避させる際の移行成功のステータスが検証され、コンピュートノードが稼動状態に再び戻った時に削除すべきインスタンスを確認するようになりました。その結果、インスタンスは以前の場所に拘らず、1 台のホストから別のホストに退避することが可能となりました。
- BZ#1315394
今回のパッケージで、Compute (nova) はバージョン 12.0.2 にリベースされ、以下のような更新が含まれています。 - compute manager への qemu-img エラーの伝達 - Nova セル v1 の退避サポートの修正 - libvirt: virt ドライバーのテストのための libvirt.sysinfo_serial='none' の設定 - XenAPI: 6.5 iSCSI バグの回避策 - 移行のコンテキストがない場合に警告をデバッグログに変更 - Zanata からの翻訳インポート - libvirt: RBD-backed イメージの revert (元に戻す) および resize (サイズ変更) の修正/実装 - Glance イメージの「size」属性を「None」ではなく「0」とする - LibVirt を使用するデバイスのデタッチに再試行のロジックを追加 - Fixed IP アドレスの割り当て分散 - Exact* フィルターにスケジューラーの制限を適用 - eventlet ベースの raw ソケットクライアントをリクエストに置き換え - VMware: OVA および streamOptimized イメージサイズを正しく処理 - XenAPI: より多くの Cinder バックエンドへの対応 - ポートとネットワークの収集で存在を検証すべき - ブリッジデバイス上での IPv6 の無効化 - 翻訳の検証 - 退避が成功した後にインスタンスが破棄されない問題を修正
- BZ#1293607
今回の更新で、「openstack-nova」パッケージがアップストリームのバージョン 12.0.1 にリベースされました。 今回のリベースの主要な変更点は以下のとおりです。 - リリースノートのビルド時に、sphinx の警告をエラーとして処理 - 12.0.1-cve-bugs-7b04b2e34a3e9a70.yaml リリースノートの警告を修正 - libvirt ライブスナップショットでのバッキングファイルの検出を修正 - 12.0.1 のリリースノートにセキュリティーの修正を追加 - libvirt スナップショットのフォーマット変換を修正 - libvirt スナップショットのフォーマット検出を修正 - VMware: イメージデータ読み込み時のチャンクサイズの指定 - 「Fixes Python 3 str issue in ConfigDrive creation」を元に戻す - 削除済みインスタンスを読み込まない - scheduler_hintsスキーマで ID の一覧表示を可能にする - CI ジョブの -constraints セクションを追加 - TestRemoteObject クラスを削除 - グローバルの要件からの更新 - VMware: インベントリーフォルダー使用時のコンフィグドライブのバグを修正 - Omnibus 安定版でアップストリームの要件の問題を修正 - terminate_connection で古いボリュームの BDM をリフレッシュ - Neutron 使用時のメタデータサービスのセキュリティーグループの問題を修正 - サンプルの nova.conf ファイルに「vnc」オプショングループを追加 - スケジューラー: glance のハイパーバイザー情報のメタデータを適用 - reno: サービス状態レポートの問題についてのドキュメントを修正 - servicegroup: 例外を原因とするゾンビサービスを停止 - Zanata から翻訳をインポート - xen: ボリュームの connection_data dict 内のパスワードをマスキング - image_ref が未設定の場合の is_volume_backed_instance() の動作を修正 - test_is_volume_backed_instance() を 5 つの関数に分割 - servicegroup DB ドライバーの DB エラー処理 - ConfigDrive の作成における Python 3 str の問題を修正 - Nova のインダイレクションフィクスチャーのオーバーライドを修正 - グローバル要件から更新 - 最初の reno ベースのリリースノートを追加 - 「未リリース」のリリースノートページを追加 - リリースノートの管理に reno を追加 - test_schedule_to_all_nodes test は現在正常に機能せずブラックリストされている - libvirt: スナップショットの削除で、仮想マシンが停止している場合には qemu-img を使用して blockRebase - Ceph で raw イメージをクローンする際の属性エラーを修正 - セルの全 BDM チェックを除外 - Image メタ: レガシーの VMware アダプタータイプの値を適切に処理
openstack-packstack
- BZ#1301366
以前のリリースでは、Packstack は、CONFIG_NEUTRON_VPNAAS パラメーターが「y」に設定されていても、Dashboard で VPNaaS タブを有効にしなかったため、VPNaaS のタブは Dashboard に表示されませんでした。 今回の更新で、VPNaaS が有効化されているかどうかを確認するチェックのプロセスが設定されました。このチェックの後に Puppet マニフェストで Dashboard のタブが有効化されます。その結果、Packstack で設定されると、VPNaaS タブが Dashboard に表示されるようになりました。
- BZ#1297712
以前のリリースでは、Packstack は /etc/lvm/lvm.conf ファイルを編集して、スナップショットの自動拡張のための特定のパラメーターを設定していましたが、使用されていた regexp は、ファイルで使用されているのと同じように、タブの代わりに空白スペースのみが可能でした。その結果、ファイルの終端に数行追加され、書式がくずれてしまっていました。 今回の更新で、Packstack の regexp が更新されて、パラメーターを正しく設定するようになりました。その結果、LVM コマンドの実行中にエラーメッセージは表示されなくなりました。
openstack-puppet-modules
- BZ#1289180
以前のリリースでは、haproxy は、全プロキシーを合わせた「maxconn」パラメーターに 10000 の値を許可するように設定されていましたが、各プロキシーの個別の「maxconn」値は 2000 がデフォルトとなっていました。MySQL に使用する特定のプロキシーが上限の 2000 に達すると、それ以降のデータベース接続はすべて解除され、クライアントが再試行しなかったため、API タイムアウトが発生し、その後のコマンドが失敗していました。 今回の更新で、「maxconn」パラメーターのデフォルト値は実稼働環境への対応を向上させるためにより大きな値となりました。その結果、データベース接続がタイムアウトとなることは大幅に低減しました。
- BZ#1280523
以前のリリースでは、Facter 2 には netmask6 および netmask6_<ifce> のファクトがなかたため、IPv6 はサポートされませんでした。 今回の更新で、IPv6 インターフェースのチェックをサポートする関連のカスタムファクトが追加され、IPv6 インターフェースがサポートされるようになりました。
- BZ#1243611
以前のリリースでは、デフォルトのタイムアウトがなかったため、Ceph クラスター設定の一部の段階で、デフォルトの 5 分 (300 秒) よりも長くかかっているように見えました。 今回の更新で、関連操作にタイムアウトのパラメーターが追加され、デフォルトのタイムアウト値は 600 秒に設定されました。必要な場合にはこのデフォルト値を変更することが可能です。その結果、特に Ceph の設定操作で平均よりも時間が長くかかっている場合に、インストールでエラーが発生しにくくなりました。
openstack-sahara
- BZ#1189502
今回の更新で、タイムアウトを指定するための設定が追加されました。タイムアウトするまでに「Active」な状態にならなかったクラスターは自動的に削除されます。
- BZ#1189517
再利用するためのジョブテンプレートを作成する場合には、OpenStack Data Processing (sahara) でデータソースの URL の変数を登録することができるようになりました。この登録により、実際の URL 変更 (その場合はテンプレートの編集や、ジョブ間で実行ごとに URL の変更が必要) ではなく、実行ごとに入出力パスを容易に変更することができます。 これにより、データソースジョブが実行ごとに可変の場合 (実際の利用環境の大半が該当) に、ジョブテンプレートを容易に再利用できるようになりました。
- BZ#1299982
今回の更新で、Sahara への CDH 5.4 統合が完了し、プラグインバージョン CDH 5.3 でデフォルトで有効化されていたオプションは削除されました。
- BZ#1233159
以前のリリースでは、古いクラスターをクリーンアップ機能を果たす定期タスクには、テナントのコンテキスト情報が提供されませんでした。 今回の更新で、tenant と admin 間の一時的なトラストが確立されるようになり、定期ジョブはそのトラストを利用して、古いクラスターを削除することができるようになりました。
openstack-selinux
- BZ#1281547
以前のリリースでは、「nova_t」のラベルが付いたディレクトリー内の検索に httpd は使用できませんでした。そのため、nova-novncproxy が HA オーバークラウドのデプロイに失敗していました。今回の更新では、それらのディレクトリー内を httpd で検索ができるようになり、nova-novncproxy を正常に実行できるようになりました。
- BZ#1284268
以前のリリースでは、Open vSwitch が tun ソケットの作成を試みても SELinux によって妨げられていました。今回の更新では、Open vSwitch が tun ソケットを作成できるようになり、Open vSwitch でエラーが発生しなくなりました。
- BZ#1310383
以前のリリースでは、SELinux によって ovsdb-server の実行がブロックされていたため、単純なネットワーク操作が失敗していました。 今回の更新では、Open vSwitch が自らのポートに接続可能となり、ovsdb-server は問題なく実行できるので、ネットワーク操作が正常に完了するようになりました。
- BZ#1284133
以前のリリースでは、redis が自らのポートに接続するのを、SELinux が妨げていたので、redis は再起動時に失敗していました。 今回の更新で、「redis」のラベルが付いたポートに接続するためのパーミッションが redis に付与されたので、redis は正常に実行され、リソースの再起動も正常にできるようになりました。
- BZ#1281588
以前のリリースでは、nova が公開鍵をオーバークラウドにアップロードするのを SELinux が妨げていましたが、今回のリリースでは新たなルールが追加されて、nova が鍵をアップロードできるようになりました。
- BZ#1306525
以前のリリースでは、nova が glance イメージの一覧を取得を試みると、SELinux がその操作を妨げていましたため、nova は「Unexpected API Error」で操作が失敗していました。今回の更新では、nova が glance と通信可能となり、nova は glance イメージの一覧表示ができるようになりました。
- BZ#1283674
以前のリリースでは、SELinix によって dhclient、vnc、redis の機能が妨げられていました。今回のリリースでは、新たなルールが追加され、これらのソフトウェアツールが正常に実行できるようになりました。
openvswitch
- BZ#1266050
Open vSwitch (openvswitch) のパッケージがアップストリームのバージョン 2.4.0 にリベースされました。
python-cinderclient
- BZ#1214230
今回の更新では、Block Storage の「snapshots-list」および「backups-list」のコマンドのペジネーションの新機能が追加され、パラメーターを制限、マーカー、ソートして返される結果数、開始する要素、およびその順序を制御することができるようになりました。 何千にもおよびスナップショットやバックアップのある大型デプロイメントでは、データセット全体ではなく限定された数の結果を取得する方法が非常に役立ちます。
python-django-horizon
- BZ#1167563
今回の更新で「Launch Instance」のワークフローが再設計/再実装され、応答性が向上しました。 1. この更新を有効にするには、以下の値を /etc/openstack-dashboard/local_settings ファイルに追加します。 LAUNCH_INSTANCE_LEGACY_ENABLED = False LAUNCH_INSTANCE_NG_ENABLED = True 2. 「httpd」を再起動します。 # systemctl restart httpd
- BZ#1100542
OpenStack Dashboard のテーブルには、多数のエンティティーについての情報のサマリーが表示されます。今回の更新で、テーブルの機能が拡張され、テーブル内で情報がスライドダウン式の「ドロワー」として表示されるようになりました。これは、その行内で切り替えスイッチをクリックすると有効になります。ドロワーは追加の行として表示され (高さを設定可能)、その行のエンティティーの追加情報が含まれます (例: 追加のエンティティー情報、メトリック、グラフなど)。一度に複数のドロワーを開くことが可能です。
- BZ#1166963
以前のネットワークトポロジーの UI は、ノードやネットワークの数が多くなると適切に機能しなかったため、今回の更新で、曲率ベースのグラフに変更されました。 新しいネットワークトポロジーマップは、より多くのノードに対応できる上、外観もスタイリッシュで、ノードのレイアウトを再構成することが可能です。
- BZ#1042947
今回の更新で、Block Storage (cinder) サービスのボリューム移行がサポートされるようになりました。この操作は OpenStack Dashboard の「Volumes」パネル (プロジェクト-> コンピュート -> ボリュームと、管理-> システムパネル-> ボリューム) で、表内の「ボリューム」の行で実行できます。 このシリーズの最終パッチで、コマンドのアクション自体の問題 (以前のリリースでは、パラメーターの誤りとパラメーターカウントの問題が原因でエラーが発生していました) も解決されました。
- BZ#1305905
python-django-horizon パッケージがアップストリームのバージョン 8.0.1 にアップグレードされました。このバージョンでは、多数のバグが修正され、以前のバージョンよりも機能が拡張されています。特に、ローカリゼーションの更新、イタリア語翻訳の追加、job_binaries 削除の修正、LB プールの仮想 IP アドレスでの IPv6 の受け入れのサポート追加などがこのバージョンの注目すべき点です。
- BZ#1279812
今回のリリースでは、パネルが設定可能になりました。設定スニペットを使用して、パネルを追加/削除することができます。 たとえば、「リソースパネル」削除するには、以下のように設定します。 * 「/usr/share/openstack-dashboard/openstack_dashboard/local/enabled」にファイルを配置します。 * そのファイルに「_99_disable_metering_dashboard.py」という名前を付けます。 * 以下のコンテンツをそのファイルにコピーします。 # The slug of the panel to be added to HORIZON_CONFIG. Required. PANEL = 'metering' # The slug of the dashboard the PANEL associated with. Required. PANEL_DASHBOARD = 'admin' # The slug of the panel group the PANEL is associated with. PANEL_GROUP = 'admin' REMOVE_PANEL = True * Restart the Dashboard httpd service: # systemctl restart httpd 詳しい説明は、「Pluggable Dashboard Settings」を参照してください。
- BZ#1300735
今回のリリースでは、Dashboard (horizon) の「Metering」パネル は、パフォーマンスの問題により無効になっています。
- BZ#1297757
以前のリリースでは、Horizon の httpd の systemd スニペットでタイムアウトが指定されていなかったため、httpd が完全に起動するのを待つ際のタイムアウトには、標準の 1 分が使用されていましたが、仮想化された環境や、負荷の高い環境で実行する場合には特に、起動に時間が長くかかることがありました。そのため、httpd がすでに実行中でも systemd からエラーが出ていました。今回の更新では、タイムアウトが 2 分間に設定され、この問題は解決されました。
python-glance-store
- BZ#1284845
以前のリリースでは、Object Storage サービスは Image サービスのバックエンドストレージとして使用され、イメージデータは Object Storage サービス内で複数の「チャンク」データとして保管されていました。Image サービスの APIv2 を使用する時には、クライアントが最終のサイズ が 0 の「チャンク」をサーバーに送信すると、アップロードの操作が失敗する場合がありました。この失敗は、サイズが 0 の「チャンク」を保管する操作とその「チャンク」の削除のクリーンアップ間で競合状態が関与していました。その結果、Object Storage サービスに Image サービスのイメージを保管する間には、断続的なエラーが発生していました。 今回の更新で、削除操作のクリーンアップおよび最初のイメージアップロードは失敗するのではなく再試行されるようになり、Image サービスの APIv2 はこのまれな状況に適切に対応し、イメージのアップロードは失敗しなくなりました。
- BZ#1229634
以前のバージョンでは、プライベートネットワーク内の S3 バックエンドにリモートでセキュアにアクセスする方法がありませんでした。 今回の更新で、新たな機能が追加され、Image サービスの S3 ドライバーは、HTTP プロキシーを介して、別のネットワークから S3 バックエンドにセキュアに接続できるようになりました。
python-glanceclient
- BZ#1314069
以前のリリースでは、Image サービスのクライアントは Image サービスサーバーへ特定の形式 (例: raw、ami、iso など) でのみイメージのアップロードを許可するようにしか設定できませんでした。また、クライアントは設定済みの形式のイメージでなければサーバーからダウンロードできませんでした。このような制限があったため、ユーザーは以前別の形式でアップロードしていたイメージをダウンロードできなくなる場合がありました。 今回の更新により、Image サービスのサーバーは、イメージのインポート時に形式すでに検証するので、Image サービスクライアントがダウンロード時にイメージの形式を検証する必要はなくなりました。イメージのダウンロード時にイメージの形式を検証するステップは省略されるようになり、クライアント側でそれらの形式のイメージのアップロードのサポートが設定されなくなっても、適正な形式のイメージを使用することができます。
python-heatclient
- BZ#1234108
以前のリリースでは、「heat resource-list --nested-depth ...」コマンドに「parent_resource」というコラムが含まれていましたが、その出力には、その後に「heat resource-show ...」を実行するために必要な情報が含まれていませんでした。今回の更新では、「heat resource-list --nested-depth ...」の出力に「stack_name」というコラムが追加され、「heat resource-show [stack_name] [resource_name]」コールで使用する値が提供されるようになりました。
python-networking-odl
- BZ#1266156
OpenDaylight OpenStack neutron ドライバーは、neutron プロジェクトから分離して、新たなパッケージ python-networking-odl に移動しました。オペレーターは、このドライバーを引き続き Red Hat OpenStack Platform インストール環境の一部として使用することができます。
python-neutronclient
- BZ#1291739
「neutron router-gateway-set」コマンドが「--fixed-ip」オプションをサポートするようになりました。このオプションにより、外部ネットワークで使用する Fixed IP アドレスとサブネットを設定することができます。この IP アドレスは、OpenStack Networking サービス (openstack-neutron) がソフトウェアレベルのインターフェースに接続して、テナントネットワークを外部ネットワークに接続するのに使用されます。
python-openstackclient
- BZ#1303038
今回のリリースでは、python-openstackclient パッケージがアップストリームのバージョン 1.7.2 にリベースされました。これにより、「find_resource」の例外処理の改善をはじめとする複数のバグ修正や機能拡張が適用されました。
python-oslo-messaging
- BZ#1302391
Oslo Messaging は「シャッフル」ストラテジーを使用して RabbitMQ サーバーの一覧から RabbitMQ ホストを選択していました。RabbitMQ を実行するクラスターのノードが再起動されると、このサーバーに接続されていた各 OpenStack サービスは新しい RabbitMQ サーバーに再接続していました。あいにく、このストラテジーは動作が停止している RabbitMQ サーバーを適切に処理しないため、停止中のサーバーに何度も続けて接続を試みていました。また、このストラテジーにより、再接続の時間が長くなり、接続の処理時間に対する保証がなかったため、RPC 操作でタイムアウトが発生することもありました。 今回の更新で、Oslo Messaging は RabbitMQ ホストの選択に「ラウンドロビン」式のストラテジーを使用するようになりました。このストラテジーにより、再接続の時間は可能な限り短縮され、ノードの再起動時に RPC タイムアウトを回避することができます。また、N 個中 K 個の RabbitMQ ホストが稼働中の場合には、RabbitMQ クラスターへの再接続が成功するまでの再試行は最大でも「N - K + 1 」回行うことが保証されるようにもなりました。
- BZ#1312912
RabbitMQ サービスが OpenStack サービスから他のサービスへの AMQP メッセージの配信に失敗した場合には、再接続して配信を再度試みます。「rabbit_retry_backoff」オプション (デフォルトで 2 秒) は、本来、再試行のペースを制御するはずですが、以前のリリースでは、このオプションの設定値に拘らず、再試行は毎秒実行されていました。この問題が原因で、エンドポイントが利用できない場合などに再試行が必要以上に実行されていました。今回のリリースではこの問題は修正され、「rabbit_retry_backoff」オプションを明示的に設定した場合、またはデフォルトの 2 秒を使用する場合にメッセージ配信の再試行が適切に制御されるようになりました。
python-oslo-middleware
- BZ#1313875
今回のリリースで、oslo.middleware が SSL/TLS をサポートするようになり、OpenStack サービスが HTTPS トラフィックをリッスンして、やり取りを暗号化できるようになりました。以前のリリースでは、OpenStack サービスは HTTP しかリッスンできず、すべてのやり取りがクリアテキストで行われていました。
python-oslo-service
- BZ#1288528
SIGTERM と SIGINT のシグナルハンドラー間での競合状態により、ワーカープロセスが SIGTERM の受信シグナルを無視する可能性がありました。OpenStack サービスの子プロセスで 2 つの SIGTERM シグナルを「迅速に」受信すると、一部のワーカープロセスが SIGTERM の受信シグナルの処理に失敗する場合があり、それらのプロセスがアクティブな状態のままとなりました。このような状態が発生すると、以下のような AssertionError 例外のメッセージがログに表示されていました。 Cannot switch to MAINLOOP from MAINLOOP 今回のリリースにはこの競合問題を修正する oslo.service が実装され、SIGTERM シグナルが正しく処理されるようになりました。
sahara-image-elements
- BZ#1286276
以前のリリースでは、一部のベースイメージコンテキストで、保存の前に iptables が初期化されませんでした。このため、「disable-firewall」要素の「iptables save」が失敗していました。今回のリリースでは、非破壊的なコマンド「iptables -L」が実装され、全コンテキストで iptables が正常に初期化されるようになったので、イメージの生成が正常に実行されます。
- BZ#1286856
Liberty リリースでは、OpenStack のバージョニングスキームがメジャーリリース番号をベースとするようになりました (以前は年がベースでした)。この更新で、現行の sahara-image-elements パッケージにエポックが追加され、古いバージョンがアップグレードされるようになりました。
Comments