Jump to: navigation, search

ReleaseNotes/Liberty

This page is a translated version of the page ReleaseNotes/Liberty and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎日本語 • ‎한국어 • ‎中文(简体)‎ • ‎中文(台灣)‎

OpenStack Liberty リリースノート

Contents

OpenStack Object Storage (Swift)

リリースノート全文は https://github.com/openstack/swift/blob/master/CHANGELOG を参照してください。

新機能

  • object-server とレプリケーションサーバーの設定ファイルの [DEFAULT] 設定セクション中の servers_per_port 設定値を正の整数にすることで、object-servers-per-disk (ディスク単位のオブジェクトサーバー) を複数にすることができるようになりました。この設定の整数値は、Ring 内の1つのローカルポートに対して、何個の object-server ワーカーがリクエストを処理するかを決定します。このモードでは、親となる swift-object-server プロセスが元々のユーザの実行を継続します (小さいポート番号のバインドが必要な場合はユーザーは root になります)。このプロセスは Ring 内で定義された全てのポートをバインドします。その後、親プロセスはリッスンソケット毎に指定された数のワーカーを fork します。子プロセス (ポート毎のサーバー) は特権を破棄し、object-server ワーカーの通常の動作と同じ動作をしますが、1つ例外があります: Ring はディスク単位に一意なポートを持ち、object-server は1つのディスクに対するリクエストのみ処理します。親プロセスはワーカープロセスが死んだ事を検知し、(適切なリッスンソケットを持つ) ワーカープロセスを再起動します。Ring ファイルの更新があり、そのサーバーに新しいポートを持つデバイスが見つかった場合、親プロセスは不足しているサーバを新たに実行します。また、Ring にもはや存在しないポートがある場合、それらのポートを持っていた余分のサーバを停止します。最長でも、 object-server 設定ファイル中の ring_check_interval パラメーター (デフォルトは 15秒) で設定された期間内には、 Ring ファイルの内容が反映されます。テストでは、既存の workers 設定に比べ、このデプロイ設定 (値 3) が応答遅延を最も削減し、秒間リクエストを改善し、低速なディスク I/O の影響が分離されます。この機能を使用するには、各デバイスは異なるポートを使用して Ring に追加する必要があります。
  • object server に container_update_timeout 設定 (デフォルトは 1秒) が追加されました。この値は、オブジェクトの PUT 操作の結果を返す前に、 object server が container server による一覧更新を待つ秒数です。従来、object server は container server の応答を最大3秒待っていました。新しい動作では、クラスタ中の container server がビジーの際 (例えば、コンテナが非常に大きい場合)、オブジェクトの PUT 時の遅延を劇的に削減します。この値を必要以上に小さく設定すると、クライアントのオブジェクト PUT 時に、そのオブジェクトがすぐに一覧表示に現れないことになります。この値を必要以上に大きく設定すると、container server がビジーの際にクライアントへの遅延が大きくなることになります。
  • Static Large Object (SLO) セグメントの範囲指定ができるようになりました。
  • SLO PUT でセグメント単位の整合性チェックをしなくてもよくなりました。従来、マニフェスト中で参照されている各セグメントは、正しい etag とバイト設定を必要としていました。今回、これらのフィールドに「null」を指定して、指定されたセグメントに対する特定のチェックをスキップできるようになりました。
  • Replicator 設定で今回 rsync_module という値がサポートされました。この値を指定すると、デバイス単位の rsync モジュールを利用できるようになります。この設定により、運用者は、Swift クラスタ中のレプリケーションを細かく調整し、特定のデバイスに対するレプリケーションのディスク I/O を分離できます。詳細な情報と設定例は、ドキュメントとサンプル設定ファイルを参照してください。
  • Ring の変更
    • ポート番号は今後、パーティションの配置に使用されなくなりました。これにより、ドライブ毎に object server を 1 つ動かしている小規模クラスタ中のデータ分散が改善されます。 サーバー毎に object server を 1 つ動かしているクラスタには影響はありません。
    • Ringの運用管理操作で、テストと確認をより簡単に行うため、ring-builder-analyzer ツールを追加しました。
    • Ring 検証で同じデバイスに対するパーティション配置が複数回行われた場合、警告を出すようになりました。この状態は、Ring 中のデバイスが平準化されていない場合に発生します (例えば、2サーバのうち1台が明らかに大きな容量を持っているなど)。
  • TempURLの修正 (CVE-2015-5223)

    tempurl への PUT で、他のデータへのポインタを作ることができなくなりました。特に、 tempurl への PUT による DLO オブジェクトマニフェストの作成が禁止されました。これにより、DLO オブジェクトマニフェストを作成し、その tempurl への PUT を使ってオブジェクトに対する HEAD を行うといった、tempurl への PUT を使ったプライベートデータに対する発見可能性攻撃が防止できます。

  • SwiftはStatsDのメトリクスをポリシー毎に出力するようになりました。
  • Keystoneを利用した際に、サービストークンがリクエストに含まれていない場合にも、サービスアカウントに対する COPY リクエストが成功する可能性があるという問題を修正しました。
  • Bulk アップロードで、アップロードされたアーカイブ内のファイルのユーザ xattr が、作成されたオブジェクトのメタデータとして保存されるようになりました
  • handoff_first か handoff_delete が設定されている場合、 object-replicator で はwarning logが出力されます。
  • swift-recon で object-replicatorの失敗数が有効になりました。
  • ストレージポリシーのサポートが swift-dispersion ツールに追加されました。
  • Keystone v3 のドメインが swift-dispersion ツールでサポートされました。
  • domain_remap ミドルウェアの情報が /info エンドポイントに追加されました。
  • domain_remap ミドルウェアの設定で default_reseller_prefix のサポートが追加されました。
  • rsync_compress という設定で rsync の圧縮機能が使えるようになりました。これを True に設定すると、別のリージョンのデバイスへの転送時にのみ転送データが圧縮されます。これによりリージョン間のデータ転送が高速化できる可能性があります。
  • swift-recon で時刻同期チェックのオプションが追加されました。(--timeオプション)
  • account-reaper が大きなアカウントに対してより高速に動作するようになりました。
  • これ以外にも多くの小さなバグ修正や改善がありました。

アップグレード時の注意点

  • 依存パッケージの変更
    • sixパッケージが必要になりました。これは現在進められている Python3 対応に向けた変更です。
    • Python 2.6のサポートを終了しました。
  • 設定の変更
    • 直近のバージョンの Python では 1 リクエストあたりの HTTP ヘッダー数を100に制限しています。この数値はカスタムミドルウェアでは小さすぎる場合があります。swift.conf 中の extra_header_count という新しい設定値を使って許容するヘッダー数を増やすことができます。
    • run_pause 設定は interval に名前が変更されました (現在は run_pause のままでも動作します)。将来的にはrun_pause 設定は削除される可能性があります。
  • バージョン付き書き込み (Object Versioning) 機能のリファクタリングが行われ、ミドルウェアとして再実装されました。 proxy の pipeline に明示的にversioned_writes ミドルウェアを追加する必要がありますが、 container サーバーの設定で allow_versions を有効にしている場合にはこの設定を削除したり無効にしたりしてはいけません。既存のcontainer サーバー設定は既存のコンテナーで versioningを有効にするのに必要です。詳しいアップグレード時の注意については http://swift.openstack.org/middleware.html#how-to-enable-object-versioning-in-a-swift-cluster を参照してください。

OpenStack Networking (Neutron)

新機能

  • Neutron は IPv6 サブネットに対する CIDR の自動割当において IPv6 プレフィックスデリゲーションに対応しました。この機能の利用、設定に関する詳細な情報は、OpenStack Networking Guide を参照してください。
  • Neutron で QoS API が利用できるようになりました。最初の機能としてポートレベルの帯域幅制限機能が提供されます。この機能の API、CLI、設定、追加情報は [1] にあります。
  • ルータ高可用性(L3 HA/VRRP)が、レイヤー2ポピュレーション(l2pop)が有効の場合にも機能するようになりました。
  • VPNaaS リファレンスドライバーが HA ルータ上で動作するようになりました。
  • HA ルータの VRRP トラフィック用に使用されるネットワークを、特定のセグメントタイプまたは物理ネットワークタグを使用して設定できるようになりました。[2]
  • OVS エージェントをデータプレーンの接続性に影響を与えずに再起動できるようになりました。
  • Neutron は、ネットワークに対してロールベースアクセス制御 (RBAC) が利用できるようになりました。[3]
  • LBaaS V2 リファレンスドライバーが Octavia (事業者品質のスケーラブルで高信頼なロードバランサプラットフォーム) ベースになりました。
  • LBaaS V2 API は今回のリリースで実験的機能 (experimental) でなくなりました。安定版 (stable) となりました。
  • Neutron は、管理者が手動でエージェントをスケジューリングする方法を提供するようになりました。これにより、テナントが利用できるようにする前に、ホストのリソースをテストできるようになりました。[4]
  • プラグイン型の IP アドレス管理 (IPAM) フレームワークが実装されました。これにより、サードパーティー製 IPAM や代替機能を利用可能になります。デフォルトでは、以前からの非プラグイン版の IPAM が有効になります。

廃止予定や廃止されたプラグインとドライバー

  • metaplugin は Liberty リリースで削除されました。
  • IBM SDN-VE 一体型プラグインは Liberty リリースで削除されました。
  • Cisco N1kV 一体型プラグインは Liberty リリースで削除されました(ML2 メカニズムドライバーで置換されました)
  • Embrane プラグインは廃止予定になり、Mitaka リリースで廃止されます。

廃止予定の機能

  • FWaaS API は Liberty では実験的機能(experimental) の扱いです。今後、現在の API が Mitaka で削除され、(Neutron チームが開発中の)新しい FWaaS API で置換される予定です。
  • LBaaS V1 API は廃止予定となり、将来のリリースで削除される予定です。今後は LBaaS V2 API を使用すべきです。
  • L3 エージェントの external_network_bridge オプションは廃止予定となりました。 bridge_mapping の physnet 指定を使用してください。詳細な情報は、ネットワーキングガイドの Network Node の節を参照してください。http://docs.openstack.org/networking-guide/scenario_legacy_ovs.html

性能に関する留意事項

  • Trusty Tahr に含まれるカーネル (3.13) は、ネームスペース数の増加に伴い「ip netns exec」の実行時の性能が線形に劣化します。スケーラビリティーが重要な場合、より後のバージョンのカーネル (例えば 3.19) を使うべきです。【3.13 のどのバージョンでこの問題が発生するかを明記する必要がある。ほとんどのバージョンではこの問題は既に修正済みである】


[注意] この問題は Trusty Thar の 3.13.0-36.63 以降のカーネルバージョンで修正済みです。詳細は次の URL を参照してください。 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1328088

  • Octavia ドライバー使用時には、ハードウェア仮想化のない環境での Neutron-LBaaS ロードバランサの作成が遅くなる可能性があります。これは、ハードウェア仮想化なしの環境では QEMU が KVM アクセラレータではなく TCG アクセラレータを使用するためです。Octavia ドライバーを仮想環境内で使用する場合、コンピュートノード上でハードウェア仮想化を有効にするか、nested virtualization (訳注:仮想化環境上の仮想化支援機構) を有効にすることをお勧めします。KVM 内で実行される DevStack で nested virtualization をセットアップする詳細な方法は、次のリンクを参照してください。http://docs.openstack.org/developer/devstack/guides/devstack-with-nested-kvm.html

OpenStack Compute (Nova)

新機能

API

スケジューラー

scheduler の構造革新は継続中で、これに伴い重要なバグ修正が行われました。

Cells v2

Cells v2 は現在使用可能な状態にありませんが、Cells v2 を支えるインフラのいくつかが追加されました。

Compute ドライバーの機能

Libvirt
VMware
Hyper-V
Ironic

その他の機能

アップグレード時の注意

  • 安定版の Kilo からのバージョンアップの場合、Liberty をデプロイする前に確実に Kilo 系列の最新バージョンに完全にアップグレードしてください。https://bugs.launchpad.net/nova/+bug/1474074 バグ修正以前の Kilo では、Liberty ノードとの通信時に問題が発生する可能性があります。
  • RAM と CPU の割当比率は今回、nova-compute の中で(つまり compute ノード単位で)定義されるようになりました。比率はまた、scheduler サービスでも定義する必要があります。compute ノードを Kilo または Liberty のどちらで動かすかによって、割当比率の挙動が異なります。compute ノードを Kilo で動かす場合、compute ノード上の CPU と RAM の割当比率は controller の nova.conf ファイルの設定値となります。compute ノードを Liberty で動かす場合、compute ノード単位で CPU・RAM 両方の割当比率を設定可能です。全 compute ノードの割当比率を運用者に提供する場合、(controller ノードも含めて) nova.conf 中でデフォルトの割当比率を 0.0 にします。この値は、割当比率が実際に 0.0 になる訳ではなく、単に運用者が次のリリース(=Mitaka)までにこの値を設定する必要がある事を意味しています。はっきりさせておきたいのは、デフォルトの割当比率はいまだに cpu_allocation_ratio=16、ram_allocation_ratio=1.5 という事です。
  • 新しい network-vif-deleted イベント (https://review.openstack.org/#/c/187871/) の関係で、Neutron サービスのアップグレード前に nova-compute を Liberty のコードにアップグレードすべきです。
  • Liberty へのアップグレード前に rootwrap フィルタに touch コマンドを追加しなければなりません。
    • Launchpad Bug 1256838 で指摘された imagebackend と imagecache の間の競合状態があります。
    • imagebackend がベースイメージをインスタンス用パスにコピーしている最中にベースイメージが ImageCacheManager によって削除された場合、インスタンスはエラー状態になります。
    • この問題を解決するため、https://review.openstack.org/#/c/217579/ の変更に伴い compute.filters に touch コマンドを追加する必要があります。
    • 競合状態の場合、imagebackend がイメージをコピーしている最中に Libvirt がベースファイルの所有者を libvirt-qemu に変更する時、os.utime を使用してファイルのアクセス時刻を更新する際に permission denied error が発生します。このエラーの解決のため、root ユーザ特権の touch コマンドを使用して、ベースファイルのアクセス時刻を更新する必要があるのです。
  • DiskFilter は Liberty より、scheduler_default_filters の一部となりました。https://review.openstack.org/#/c/207942/
  • 今回より1つの vCenter クラスタを単一の nova-compute ノードでマッピングできるようになりました。https://review.openstack.org/#/c/103916/
  • Libvirt の parallels ドライバーは virtuozzo と名称変更されました。
  • 使用されていない iscsi_targets、volumes テーブルが削除されました。
  • デフォルトの paste.ini は全てのエンドポイントで新しい v2.1 API を使用するよう更新され、v3 エンドポイントは削除されました。互換モードミドルウェアは v2.1 のバリデーションを /v2, /v1.1 エンドポイントで緩和するために使用されます。
  • DB スキーマダウングレードのコードが今回削除されました。https://blueprints.launchpad.net/nova/+spec/nova-no-downward-sql-migration
  • 我々がテストに使用するデフォルトの DB ドライバーは今回、Python-MySQL ではなく pymysql になりました。
  • powervm hv_type 定義は削除されました。この変更は、イメージメタデータ中の hv_type=powervm の古いイメージを使用している PowerVC driver on stackforge のユーザにのみ影響します。
  • Mitaka リリースにおける Libvirt の最小バージョンは 0.10.2 になる予定です。Libvirt < 0.10.2 対応は Liberty で廃止予定になりました。https://review.openstack.org/#/c/183220/
  • libvirt.remove_unused_kernels 設定オプションは廃止予定になり、今回デフォルトで True となりました。https://review.openstack.org/#/c/182315/

非推奨の機能

  • 2.21.0 より novaclient.v1_1 モジュールが廃止予定になりました。[[5]][[6]] また、Mitaka リリースで最初の python-novaclient から上記を削除する予定です。
  • 2.29.0 より `novaclient.client.get_client_class` メソッドが廃止予定になりました。[[7]] このメソッドは Mitaka で削除されます。
  • Cells での使用を含め、weighter の mute_weight_value オプションが廃止予定になりました。
  • Libvirtドライバー用の remove_unused_kernels 設定オプションが今回、廃止予定になりました。
  • vcenter ドライバーで使用する vCenter の最小要求バージョンが今回、5.1.0 になりました。5.0 以前を使用している場合、Liberty では警告ログとして記録されますが、Mitaka では 5.0 以前のバージョンの対応は削除されます。
  • V3 API 固有のコンポーネントは全て廃止予定となり、デフォルトの paste.ini より削除されました。

OpenStack Telemetry (Ceilometer)

主要な新機能

  • アラームサービスを扱う Aodh の新設
  • メタデータキャッシュ (nova API ポーリング負荷低減)
  • Declarative (宣言型)メーター
    • メーター定義テンプレートでの定義により、メーターを生成可能
    • ポーリングする特定の SNMP メーターを定義可能
  • Ceilometer から Gnocchi へのデータ送信に対応
  • 強制リミット (制限クエリのリミットを強制)。このリミットはクエリの際に明確に提供されなければならず、提供されない場合はデフォルトのリミットに制限されます。
  • 分散協調型の通知エージェント (複数の通知エージェント間で処理負荷を分割可能に)
  • イベント RBAC 対応
  • PowerVM ハイパーバイザ対応
  • MongoDB クエリ対応の改善 (統計の計算で性能向上)
  • 新しいメーター対応
    • Magnum メーター
    • DBaaS メーター
    • DNSaaS メーター

Gnocchi 機能

  • 初の influxdb ドライバー実装

Aodh 機能

  • イベントアラーム (イベント受信時、アクションを実行する機能)
  • アラームでの Trust 対応 リンク.

アップグレード時の留意事項

  • 後方互換性のため、Ceilometer で使用されていたいくつかのミドルウエア名が変更になりました。アップグレードの前に、paste.ini ファイルを編集し、 oslo.middlewareoslo_middleware に変更してください。例えば、sed -ri 's/oslo\.middleware/oslo_middleware/' api_paste.ini を実行する方法もあります。
  • 通知エージェントは Ceilometer 中のデータ収集用コアサービスです。このサービスは全ての transformation と publishing を処理します。ポーリングエージェントは今回より、通知エージェントに全処理を委託します。これらは一緒にインストールされる必要があります。
  • 強制リミットは各リクエストに適用されます。リミットが指定されない場合、デフォルトのリミットに制限されます。

廃止予定の機能

  • Aodh 採用により、Ceilometer の Alarm 機能は廃止予定になりました。
  • トピックベースの notifier パブリッシャー採用により、RPC パブリッシャー・コレクターは廃止予定になりました。
  • 非メートル法のメーターは依然廃止予定で、今後のリリースで削除される予定です。

OpenStack Identity (Keystone)

新機能

  • 実験的: 新しい REST API の使用により、ドメイン関連の設定オプションは、設定ファイルの代わりに SQL DB 上に保存できるようになりました。
  • 実験的: Keystone は今回、X.509 SSL クライアント認証を用いたトークンレス認証に対応しました。
  • Keystone 単位のプロバイダ WebSSO 設定に対応しました。
  • ユーザ、プロジェクトドメインにそれぞれマッピングするため、SAML アサーションに openstack_user_domainopenstack_project_domain 属性が追加されました。
  • クレデンシャル一覧 API は今回、結果をクレデンシャルタイプでフィルタリングできるようになりました。
  • 安定版の Driver Interfaces 定義により、Keystone のソースコードに含まれないドライバーの対応を改善しました。
  • Fernet トークン、フェデレーション、DB でのドメイン固有設定、ロール割当を含む、いくつかの機能が強化されました。
  • keystone.conf 中で、ユーザの設定が有効かどうかを判断する変数が追加されました。

アップグレード時の注意

  • EC2 トークンミドルウェア (Juno で廃止予定化) は今後 Keystone では利用できません。このミドルウェアは keystonemidleware パッケージに移管されました。
  • compute_port configuration オプション (Juno で廃止予定化) も今後利用できません。
  • XML ミドルウェアのスタブも削除されました。これに伴い、 keystone-paste.ini 設定ファイルにおける XML ミドルウェアへの参照も削除されました。
  • stats_monitoring とstats_reporting paste フィルタが削除されました。これに伴い、keystone-paste.ini 設定ファイルにおけるこれらへの参照も削除されました。
  • Icehouse で廃止予定化した外部認証プラグイン ExternalDefault、ExternalDomain、LegacyDefaultDomain、LegacyDomain は今後利用できません。
  • keystone.conf は今回、ドライバーのエントリポイント名を参照するようになりました。例えば、ドライバーがモジュールのフルパスではなく sql、ldap、uuid と指定できるようになりました。サンプル設定ファイルで他の例を参照してください。
  • 今回、keystone-manage コマンドにファイルの代わりにエントリポイントを公開するようになりました。
  • keystone-manage db_sync における DB スキーマのダウングレードは今後サポートされません。アップグレードのみサポートされます。
  • 以前のリリースにおける拡張機能 (OAuth デリゲーション、Federated Identity 対応、エンドポイントポリシー) は今回、デフォルトで有効になりました。
  • プロキシ経由での Keystone アクセスのため、新しい secure_proxy_ssl_header 設定オプションが利用可能になりました。
  • keystone.conf ファイル中でいくつかの設定オプションが廃止予定、名称変更、新セクションに移動されました。
  • ドメイン名情報は今回、ポリシールール中で domain_name 属性として利用可能になりました。

非推奨の機能

  • Eventlet での Keystone 実行は廃止予定となり、Mitaka リリースで削除される予定です。
  • リソースバックエンドとしての LDAP 利用 (つまり、プロジェクト用とドメイン用) は廃止予定となり、Mitaka リリースで削除される予定です。
  • エントリポイント利用採用により、ドライバークラスへのフルパス利用は廃止予定になりました。Mitaka リリースでは、エントリポイントを使用しなければなりません。
  • keystone.conf ファイル中の [resource]、[role] セクション中で、ドライバー指定なしでの assignment ドライバー利用は廃止予定になりました。Mitaka リリースでは、リソースとロールのドライバーはデフォルトで SQL ドライバーになります。
  • keystone-paste.ini では、エントリポイントを指定する use ディレクティブ採用により、paste.filter_factory 利用は廃止予定になりました。
  • ドメイン指定なしのユーザー、グループ、プロジェクト作成要求(従来はデフォルトドメインにフォールバックしていました)は今回廃止予定になり、Nリリースで削除される予定です。
  • assignment マネージャの廃止予定メソッドは、[resource]、[role] マネージャ中の同一メソッド採用により削除されました。

OpenStack Block Storage (Cinder)

新機能

  • Generic image caching 機能がサポートされました。これにより、VM用イメージは初回利用時にバックエンドストレージ上にキャッシュされるため、以降はコピーオンライトにより高速な新規ボリューム作成が可能です。 Read docs for more info
  • 無停止バックアップ機能のサポート Read docs for more info.
  • ボリュームの Consistency Groups のクローン機能のサポート Read docs for more info.
  • バックエンドストレージの機能リストの取得サポート (extra-specs に対応する機能一覧の取得) Read docs for more info.
  • 階層化 quota のサポート
  • Thin provisioned LVM が利用可能な場合、LVMバックエンドのデフォルトとして利用します。
  • ドライバーの初期化失敗時に、訂正した cinder service-list を表示することが出来ます。
  • ボリュームマイグレーション管理機能の改善
    • 以前のボリュームマイグレーション実行結果を確認できます。
    • 管理者は、 cinder list コマンドでボリュームマイグレーションの状態を監視できます
    • マイグレーション中のボリュームに対する他のボリューム操作を防止するために、新しいボリュームの状態 maintenance が追加されました。
    • マイグレーション完了後のバックエンドでのボリューム名・ボリュームIDの一貫性が改善されました。

アップグレード時の注意

  • Kilo またはそれ以前のc-volまたはc-apiのサービスと、Libertyの各サービスの同時実行を防止するために、RPC APIへのパラメータの変更とObjectへの変換が導入されました。

非推奨の機能

  • シンプル・チャンススケジューラが削除されました
  • HDS HUS iSCSI ドライバーが廃止されました。
  • Coraid ドライバーが廃止されました。
  • Solaris iSCSI ドライバーが廃止されました。
  • アタッチ中のボリュームに対するイメージアップロード機能で、 --force オプションが削除されました。
  • v1 APIが廃止予定になりました。

OpenStack Orchestration (Heat)

新機能

Convergence

convergence は新しいオーケストレーションエンジンで、heat ツリーの中で開発が進められています。Liberty では、convergence エンジンを使用する利点として以下のような点があります。

  • リソース処理の並列度の改善 (大規模テンプレートのスケーラビリティーの改善)
  • すでに更新が処理中のものに対して stack-update が実行可能
  • heat-engine 障害に対する処理の改善 (開発中)

convergence エンジンを有効にするには、/etc/heat/heat/conf ファイルの [DEFAULT] セクションに convergence_engine=true を設定して、heat-engine を再起動します。一度有効にすると、その後作成されるスタックは convergence エンジンを使用するようになりますが、既存のスタックに対する処理ではそれまでのエンジンを引き続き使用されます。

Convergence は本番環境でテストされたものではなくβ版の品質と認識すべきです。注意してご利用ください。Liberty リリースでは、Convergence は評価・スケーラビリティテストの目的で有効にする事をお勧めします。Mitaka サイクルでは Convergence をデフォルトエンジンにする事を検討する予定です。Convergence 関連のバグは launchpad のconvergence-bugs タグで管理されています。

条件付きリソース公開

クラウドサービスに実際にインストールされたリソースのみユーザが利用可能になります。運用者は更に、リソースタイプごとの policy.json 中の標準的なポリシールールを用いて、利用者が利用可能なリソースをコントロールする事ができます。

heat_template_version: 2015-10-15

2015-10-15 は YAML ドキュメントが HOT テンプレートである事、Liberty リリースまでに追加/削除された機能が含まれている可能性がある事を示しています。

  • Fn::Select function の削除 (パスベースの get_attrget_param 参照を使用すべきです)
  • get_attr API 呼出で <attribute name> が指定されなかった場合、全属性の辞書型が返却されます (例: { get_attr: [<resource name>]})
  • 新しい str_split 固有機能の追加
  • 既存の list_join 機能の複数行受け渡し機能を追加
  • str_replacelist_join にマップ/リストのパース機能を追加 (これらは自動的に JSON でシリアライズされます)

REST API/heatclient の追加

  • Stack は今回、(複数の)タグを付与可能になり、stack-list はこれらのタグでフィルタリング/ソート可能になりました。
  • "heat stack-preview ..." は提案された stack-update の変更点のプレビューを返すようになりました。
  • "heat template-validate --show-nested ..." は全てのテンプレートリソースも検証するようになり、ユーザインターフェース作成に便利な、入れ子データを返すようになりました。
  • "heat resource-type-template --template-type hot ..." は HOT 形式でテンプレートを生成します。
  • "heat resource-type-list" はユーザが利用可能なタイプのみ表示するようになり、名前、バージョン、support_status で結果をフィルタリングできるようになりました。
  • "heat template-version-list" は利用可能なテンプレートバージョン一覧を表示します。
  • "heat template-function-list ..." はテンプレートバージョンの利用可能な関数一覧を表示します。

既存リソースの拡張

新規リソース

以下のリソースがこの Heat リソースで追加されました。

[1] これらは非 Integrated プロジェクト用のため、Kilo では contrib として存在していました。これらのリソースは今回、Big Tent プロジェクトとして Heat と一緒に配布されます。

[2] これらは admin ロールを持つユーザが必要であったため、contrib リソースとして Kilo に含まれていました。これらは今回、Heat の一部として配布されるようになりました。運用者は policy.json の修正により特権ユーザからこれらの機能を隠すことができます。(参考までに、OS::Nova::Flavor は提供されるデフォルトのポリシーファイルで admin でないユーザからアクセス出来ないようになっています)

[3] これらは、Heat プロジェクトで承認されていないアプローチを使用していたため、Kilo では contrib リソースとして存在していました。これらは今回、Heat の一部として配布され、UNSUPPORTED として記載されています。

[4] これらのリソースは未だ OpenStack Big Tent プロジェクトになっていないプロジェクト用のものであるため、UNSUPPORTED として記載されています。

今回、クラウド運用者が新しい OS::Keystone::* リソースを用いて、Keystone サービスカタログエントリとユーザを管理するための Heat テンプレートを利用できるようになりました。

非推奨のリソースプロパティー

すでに多くのリソースプロパティーが DEPRECATED (削除予定) としてドキュメントに記載されていました。 これらのうち 15 個が今回 HIDDEN (隠し状態) 扱いになりました。これらは、ドキュメントからは削除される予定ですが、作成済みのスタックやテンプレートは Heat のアップグレード後も引き続き動作します。どのリソースプロパティーと属性が利用可能かを確認するには、 リソースタイプレファレンスを参照してください。

アップグレード時の注意

設定の変更

/etc/heat/heat.conf [DEFAULT] セクションの注目すべき変更点

  • hidden_stack_tags が追加され、指定したタグ名が含まれるスタックは stack-list の結果に表示されません (デフォルトでは、sahara-create スタックを非表示にする data-processing-cluster リストされています)。
  • instance_user は非推奨になり、完全に削除されました。OS::Nova::Server リソースを使用して作成された Nova サーバーは、クラウドイメージのデフォルトのユーザー設定の構成でブートされるようになりました。 AWS::EC2::Instance は、依然として ec2-user を作成します。
  • max_resources_per_stack を -1 に設定して強制を無効にすることができるようになりました。
  • enable_cloud_watch_lite は、この REST API が非推奨となったため、デフォルトで false に設定されるようになりました。
  • default_software_config_transport に ZAQAR_MESSAGE のオプションが追加されました。
  • default_deployment_signal_transport に ZAQAR_SIGNAL のオプションが追加されました。
  • auth_encryption_key は正確に 32 文字で設定する必要がある旨が記載されるようになりました。
  • list_notifier_drivers は非推奨となり、削除されました。
  • ポリシーオプションが [oslo_policy] セクションに移動しました。
  • use_syslog_rfc_format が非推奨となり、デフォルト値は true となりました。

heat.conf のその他のセクションの注目すべき変更点:

  • バージョン指定なしの keystone url を指定するための [clients_keystone] auth_uri が追加されました。
  • [heat_api] ワーカーはデフォルトで 4 に設定されるようになりました (以前は 0 で、ホスト CPU 1 つあたりで作成されるワーカー数は 1 でした)。

ポリシーファイル /etc/heat/policy.json が per-resource-type のアクセスポリシーで設定できるようになりました。例:

   "resource_types:OS::Nova::Flavor": "rule:context_is_admin"

Kilo から Liberty へのアップグレード

sql のライブマイグレーションをサポートするための開発は進んでいますが、アップグレード中には、heat サービスを停止することを引き続き推奨します。下位バージョンの SQL スキーマへのマイグレーションはサポートされなくなりました。Kilo にロールバックするには、アップグレードを実行する前のデータベースのスナップショットから復元する必要があります。

OpenStack Data Processing (Sahara)

新機能

  • 新しいプラグインとバージョン:
    • HDP 2.2 / 2.3 をサポートする Ambari プラグイン
    • Apache Hadoop 2.7.1 が追加になり、同 2.6.0 が廃止予定に
    • NameNode と ResourceManager の冗長構成対応を含む CDH 5.4.0
    • MapR 5.0.0 追加
    • Spark 1.3.1 追加、同 1.0.0 が廃止予定に
    • HDP 1.3.2 と Apache Hadoop 1.2.1 対応を削除
  • Spark EDP ジョブ付き Swift 利用に対応
  • CDH と Ambari プラグインにおいて、Spark EDP ジョブに対応
  • パブリック/プロテクトリソースに対応
  • OpenStack クライアントを使用開始
  • 全 Sahara リソースの編集に対応
  • クラスタ用の Hadoop 自動設定を追加
  • Direct エンジンが廃止予定になり、Mitaka リリースで削除されます。
  • ジョブバイナリーとデータソース用ストレージバックエンドオプションとして OpenStack Manila NFS 共有を追加
  • EDP ジョブテンプレート用インターフェース設定の定義と利用に対応

非推奨の機能

  • Direct プロビジョニングエンジン
  • Apache Hadoop 2.6.0
  • Spark 1.0.0
  • 全 Hadoop 1.X 削除

OpenStack Search (Searchlight)

今回が Searchlight の最初のリリースです。Searchlight は、ユーザーの検索要求をオフロードすることで、様々な OpenStack サービスの検索機能と検索性能を劇的に改善することを目的としています。Searchlight は、Keystone の RBAC ベースの、OpenStack サービスにまたがる検索を提供します。OpenStack サービスのデータを ElasticSearch に登録し、要求された検索クエリーに対するセキュリティーレイヤーを提供しています。ElasticSearch は Lucene を使った検索エンジンです。分散でスケーラブルな、リアルタイムに近い、多面的な、マルチテナントに対応した、全文検索エンジンで 、RESTful なウェブインタフェースを持っています。

Key New Features

インデックスが作成された新たなリソースタイプ

アップグレード時の注意

なし

非推奨の機能

なし

OpenStack DNS (Designate)

新機能

  • 実験的機能: Hook Point API
  • Horizon プラグインは別レポジトリーになりました
  • 削除済みドメインを除去 (purge) 機能
  • ドメイン単位の Ceilometer exists 定期イベント
  • 非同期アクション
    • Import
    • Export
  • designate-pool-manager の定期タスクでの active/passive フェールオーバー
  • OpenStack クライアント対応

追加された DNS Server バックエンド

  • InfoBlox
  • Designate

アップグレード時の注意

  • 新しいサービス designate-zone-manager
    • tooz が対応しているバックエンドを使用することを推奨します。
    • ZooKeeper が推奨ですが、 tooz が対応しているものであればどれも使用できます。
    • tooz バックエンドを使用しない場合は、すべての zone-manager がすべてのゾーンの所有権を持っているとみなします。その結果、1 時間あたり 'n' 個の exists メッセージが送られます。 'n' は zone-manager のプロセス数です。
  • designate-pool-manager は定期タスクでの active/passive フェールオーバーを行います。
    • tooz が対応しているバックエンドを使用することを推奨します。
    • tooz バックエンドを使用しない場合、すべての pool-manager がすべてのゾーンの所有権を持っているとみなします。その結果、定期タスクが複数回実行され、予期しない結果になる可能性があります。

非推奨の機能

  • V1 API
    • 将来的に削除予定です。 V1 に対して通信する Designate CLI インタフェースが必要な操作がまだあります。 Horizon パネルは V1 のみを使用しています。

OpenStack Messaging Service (Zaqar)

主要な新機能

  • 事前署名付き URL:新しい REST API エンドポイントは、セキュリティを損なわずに、共有されるリソース全般の十分なコントロールを提供する事前署名付き URL に対応します。
  • メール通知:Zaqar のサブスクライバの電子メールアドレスを扱う、通知サービス用の新しいタスクドライバー。新しいメッセージがキューにポストされた際、サブスクライバは電子メールでメッセージを受信します。
  • ポリシー対応:他の殆どの OpenStack コンポーネントと同様、policy.json ファイルを用いた、きめの細かい権限コントロールに対応
  • 永続転送(Persistent Transport):Zaqar 用永続転送の代替方式として、websocket に対応しました。今回、接続の確立オーバーヘッドなしで大量データの交換をするために、ユーザは自分のアプリケーションと Zaqar の間の長時間存在する接続を作成可能になりました。

OpenStack Dashboard (Horizon)

新機能

  • プラグインの改善:Horizon はインクルードする JavaScript ファイルを自動認識し、プラグイン可能な SCSS と置換用 Django テンプレート用の機構が実装されました。

アップグレード時の注意

  • 今回、Django 1.8 に対応し、同 1.7 がサポートする最小バージョンになりました。 (https://blueprints.launchpad.net/horizon/+spec/drop-django14-support).
  • データベースをバックエンドにしたセッションは、その構造が変更されたためアップグレード時に永続化しない模様です (https://github.com/openstack/django_openstack_auth/commit/8c64de92f4148d85704b10ea1f7bc441db2ddfee、 https://github.com/openstack/horizon/commit/ee2771ab1a855342089abe5206fc6a5071a6d99e)
  • Horizon は既にテストで QUnit を使用しておらず、requirements から削除されました (https://blueprints.launchpad.net/horizon/+spec/replace-qunit-tests-with-jasmine)
  • Horizon は今回、settings ファイル中でデフォルトの Web URL (WEBROOT)、静的ファイル配置 (STATIC_ROOT)、静的ファイル URL (STATIC_URL)用の設定オプションを複数設定可能になりました。
  • テーマの配置場所は openstack_dashboard/static/themes から openstack_dashboard/themes に移動されました。パスは必要に応じて更新する必要があるかもしれません。それに加えて、Horizon は Bootstrap マークアップと連携するようになり、テーマもこの方法論に合わせて構築すべきです。詳細は、上部のバーと横のナビゲーションを参照してください。
  • 廃止予定だったOPENSTACK_QUANTUM_NETWORK 設定オプションが削除されました。これをまだ使用している場合、OPENSTACK_NEUTRON_NETWORK で置き換えてください。
  • 今回、性能上の理由で選択した拡張機能を無効化するため、settings 中の OPENSTACK_NOVA_EXTENSIONS_BLACKLIST オプションが新設されました。 (https://github.com/openstack/horizon/commit/18f4b752b8653c9389f8b0471eccaa0659707ebe).
  • Trove と Sahara のパネルは openstack_dashboard/contrib 中に移動しました。これは、主にサービスチームによるレビュー用に分離を提供するためです。将来、これらのパネルは Horizon にて保持される代わりに、プラグインとなるかも知れません。 (https://blueprints.launchpad.net/horizon/+spec/plugin-sanity)
  • Cinder が v2 API を使用している場合でも、Horizon は Cinder 用の volumevolumev2 両方のエンドポイントを必要とします。

OpenStack Trove (DBaaS)

新機能

  • Redis
    • Redis の設定グループ
    • クラスター対応
  • MongoDB
    • 1つのインスタンスのバックアップとリストア
    • ユーザー管理とデータベース管理
    • 設定グループ (Configuration Groups)
  • Percona XtraDB クラスターサーバー
    • クラスター対応
  • オペレーターによる、特定のデータストアに対してインスタンスフレーバーの関連付けをサポート
  • Horizon でのデータベースクラスターのサポート
  • データストアとバージョンの管理 API
  • Trove インスタンスを 1 つの管理テナントに作成できるようになりました。これにより、Nova インスタンスがユーザーに見えなくなります。

OpenStack Bare metal (Ironic)

Ironic はリリースモデルを変更し、開発サイクルの途中でもリリースを行うモデルになりました。 Liberty ではバージョン 4.0 がリリースされ、その後 2 回マイナーアップデートがありました。バージョン 4.2 が OpenStack 全体の Liberty リリースの1つとして扱われ、安定版の更新の対象となります。

詳細なリリースノートはこちらを参照してください: http://docs.openstack.org/developer/ironic/releasenotes/index.html

新機能

  • ハードウェア状態として ENROLL が追加されました。この状態は、新しく作成されたノードのデフォルトの状態となります。
  • abort 操作 (verb) が追加されました。これにより、ユーザーは特定の操作を進行中であっても中断できるようになります。
  • REST API で問い合わせとフィルタリングのサポートが改善されました。
  • CORS ミドルウェアのサポートが追加されました。

ハードウェアドライバー

  • ハードウェアドライバーに新しく BootInterface が追加されました。これは DeployInterface から機能を分離したものです。
  • iLO 仮想メディアドライバーが Swift なしで動作するようになりました。
  • Cisco IMC ドライバーが追加されました。
  • OCS ドライバーが追加されました。
  • UCS ドライバーが追加されました。
  • Wake-On-Lan Power ドライバーが追加されました。
  • ipmitool ドライバーが IPMI v1.5 に対応しました。
  • APC MasterSwitchPlus シリーズの PDU 向けの SNMP ドライバーがサポートされました。
  • pxe_ilo ドライバーが UEFI Secure Boot をサポートしました (iLO ドライバーの以前のリリースでは agent_ilo と iscsi_ilo だけが UEFI Secure Boot をサポートしていました)。
  • iRMC ドライバーに仮想メディアサポートが追加されました。
  • DRAC ドライバーに BIOS 設定が追加されました。
  • PXE ドライバーで GRUB2 がサポートされました。

非推奨の機能

  • DriverInterface のメソッド vendor_passthru と driver_vendor_passthru は削除されました。これらは Kilo で削除予定になっており、 @passthru デコレーターに置き換えられました。
  • Nova baremetal のデプロイメントからデータをインポートするマイグレーションツールは削除されました。
  • 定期タスク (periodic task) デコレーターの parellel オプションが削除予定になりました。
  • 削除予定であった admin_api ポリシールールが削除されました。
  • 元々の bash デプロイ RAM ディスクのサポートが削除予定になり、 2 サイクル以内に削除されます。すべてのデプロイドライバーは ironic-python-agent プロジェクトを使用すべきです。

アップグレード時の注意

  • 新しく作成されたノードは、新しく追加された ENROLL 状態になります。以前は、ノードの初期状態は AVAILABLE でした。 AVAILABLE の場合、ハードウェアが準備ができる前に Nova に公開されてしまう可能性があります。
  • Kilo で API バージョンヘッダーが追加されました。そのため、Liberty API と通信しようとするクライアントは適切なバージョン文字列を各 HTTP リクエストで渡さなければいけません。現在の API バージョンは 1.14 です。

OpenStack Key Manager (Barbican)

新機能

  • プロジェクト管理者がプロジェクト単位で認証局を作成する機能を追加しました。また、プロジェクト管理者はプロジェクト単位で好みの認証局(CA)のセットを定義・管理可能になりました。これは、プロジェクトがプロジェクト独自のセキュリティドメインを実現できるようにします。
  • Barbican は今回、プロジェクト配下で作成可能な Barbican リソースの数量制限用にプロジェクト単位のクォータサポートを実装しました。デフォルトでは、クォータは無制限に設定され、Barbican の設定で上書きできるようになっています。
  • プロジェクトレベルキーの内包 (wrap) に使用されるマスターキーのローテーションに対応しました。この軽量アプローチでは、プロジェクトレベルキー (KEK) のみが新しいマスターキー (MKEK) に再度内包されます。(http://specs.openstack.org/openstack/barbican-specs/specs/liberty/add-crypto-mkek-rotation-support-lightweight.html)
  • Keystone、Nova、Manila フォーマットにマッチするバージョン情報を返すための Barbican のルートリソース更新に対応しました。これは keystoneclient のバージョン付きエンドポイント検出機能で使用されます。
  • 管理者用操作が全て通常のエンドポイントで可能になったため、管理者エンドポイントが削除されました。Oslo ポリシー経由でアクセス制御が適用されるため、エンドポイントを分ける必要がなくなったのです。
  • SQL 接続の管理用に sqlalchemy プールを有効にする設定を追加しました。
  • GET /v1/secrets?acl-only=true リクエストを使用する ACL 経由でアクセス可能なシークレット一覧機能を追加しました。
  • ACL 操作、RBAC ポリシー、シークレット関連の Barbican API 周りの機能テストのカバレッジを改善しました。
  • SnakeOil CA プラグインインスタンス作成関連の問題を修正しました。
  • Barbican クライアント CLI は今回、認証に Keystone トークンを利用可能になりました。

以前はユーザ名+パスワードベースの認証のみ対応していました。

  • Barbican クライアントは今回、認証命令の作成・一覧表示機能を実装しました。

アップグレード時の注意

OpenStack Image Service (Glance)

サービスの運用、インストール、設定、開発、使用に関する詳細を含む、更新されたプロジェクトガイド: http://docs.openstack.org/developer/glance/

新機能

アップグレード時の注意

  • 今回、python-glanceclient はデフォルトで Glance API v2 を使用し、v2 が利用不可の場合は v1 にフェールバックするようになりました。
  • 指定された各バックエンドストアに依存して、バックエンドストアの依存関係はオプション的にインストールされるようになりました。
  • Swift, S3, VMawre などのバックエンドストアは今回、Python 3 に対応しました。
  • デフォルトのメタデータ定義の更新と同様にいくつかの新しいものはソースコードと一緒に公開されます。
  • 更なる Python 3 対応が Glance API に追加され、今回互換性を確保するためのテストを用いて、継続対応が強化されました。
  • 今回、MySQL DB バックエンドのデフォルト文字コードが UTF-8 になりました。
  • マイグレーションスクリプトが更新され、テーブルの文字コードをチェックするようになりました。
  • スキーマの ram_disk、kernel 属性が NULL を許容するようになり、id が v2 API で読込専用属性になりました。
  • client_socket_timeout 設定オプションが追加され、最近の eventlet ソケットタイムアウトの挙動を恩恵を得られるようになりました。
  • scrub_pool_size 設定オプションが追加され、scrubber の並列スレッド数を設定できるようになりました(デフォルトは1)。
  • Glance v1 API を用いて、イメージの状態を変更できる重要なバグが修正されました。

非推奨の機能

  • 実験的なカタログインデックスサービスは削除され、今回 Searchlight と呼ばれる分離プロジェクトになりました。
  • scrubber 用のファイルベースのキューが削除された事に伴い、scrubber_datadircleanup_scrubbercleanup_scrubber_time 設定オプションは削除されました。

OpenStack Shared File System (Manila)

新機能

  • アベイラビリティゾーンに対応しました。
  • インスタンスを共用するための管理者 API コンポーネントを追加しました。
  • プールウェイトを追加し、Manila スケジューラが新しい共有を既存の共有サーバを持つプール上に配置できるようになりました。
  • あるホストプールから別のホストプールへの共有マイグレーションに対応しました。(実験的)
  • 汎用ドライバーで共有の容量拡張機能を追加しました。
  • 一貫性グループに対応しました。これにより、複数のファイルシステム共有のスナップショットを同時に作成できるようになります。(実験的)
  • NetApp cDOT ドライバーと汎用ドライバーで一貫性グループに対応しました。
  • シンプロビジョニングでオーバーサブスクリプション (容量超過) に対応しました。
  • 新しい Windows SMB ドライバー:
    • Windows サービスインスタンスと SMB 共有の公開に対応しました。
  • Manila API サービスのトータルのスループットを向上する新しい osapi_share_workers 設定オプションを追加しました。
  • 共有フック機能を追加しました。これにより、ドライブ共有メソッド呼出しの前後、N秒ごとに呼び出される追加の定期実行フック、ドライバーのアクション結果の更新でアクションを実行する事ができるようになります。
  • NetApp cDOT ドライバーの改善:
    • 新しい Manila 共有をバックアップする flexvol 作成用の netapp:dedup、 netapp:compression 変数を追加しました。
    • 管理/管理解除と shrink_share に対応しました。
    • extended_share API コンポーネントに対応しました。
    • ストレージアレイと通信する netapp-lib PyPI プロジェクトに対応しました。
  • HP 3PAR ドライバーの改善:
    • 重複排除、シンプロビジョニング、hp3par_flash_cache 機能のレポートに対応しました。これらは、共有タイプと CapabilitiesFilter が要求された機能を持つホスト上で共有が配置できるようにします。
    • 共有サーバ対応を追加しました。
  • Huawei Manila ドライバーの改善:
    • ストレージプール、extend_share、manage_existing、shrink_share、リードオンリー共有、smartcache、smartpartition 対応を追加しました。
    • 重複排除、シンプロビジョニング、圧縮機能のレポートに対応しました。
  • VNX Manila ドライバーでアクセスレベル対応を追加しました。
  • Manila HDS HNAS ドライバー対応を追加しました。
  • GlusterFS 専用ドライバーを追加しました。
    • GlusterFS ドライバーは今回、互換共有レイアウトの一覧を指定できるようになりました。
  • v2 API にマイクロバージョン対応を追加しました。

非推奨の機能

  • share_reset_status API コンポーネントは廃止予定となり、share_instance_reset_status で置換されました。