Havana バージョンのリリースノート

リリースの概要

Havana リリースでは、 3 つの新しいプロジェクトがサポートされ、既存のプロジェクトにも重要な機能が追加されました。 さらに、エンドユーザーにとっても、管理者にとっても、多くの面でユーザーエクスペリエンスの改善が行われました。 コミュニティーは成長し続けています。 Havana は OpenStack Dashboard プロジェクト にとって今までで最良のリリースだと言えるでしょう。

ハイライト

新機能

Heat

OpenStack Orchestration プロジェクト Heat が Havana にてデビューしました。 Horizon は Heat スタックの管理をすべてサポートしています。特筆する点ては、 Heat テンプレートフォーマットからの動的なフォーム生成機能、スタックトポロジーの可視化、 完全なスタックリソース検査がサポートしています。

Ceilometer

Havana でデビューしたもう一つのプロジェクトが OpenStack Metering プロジェクト (Ceilometer) です。 Horizon の最初の Ceilometer サポートとして、管理者が OpenStack Dashboard から クラウドリソースの使用量を問い合わせて、システムがどのように動作し利用されているかを 理解しやすくなりました。

Keystone v3 API 対応: ドメイン、グループやその他

OpenStack Identity サービス (Keystone) v3 API は Havana リリースで十分に完成しました。 Horizon は、ドメインとグループ、ロールの管理とドメインやグループへの割り当て、 ドメインベース認証、ドメインコンテキストスイッチといった Keystone v3 API の すべての新機能をサポートします。

Trove データベース

OpenStack Database as a Service プロジェクトである Trove が Havana で インキュベーションフェーズを卒業しました。Trove データベースとバックアップ のプロビジョニング・管理を OpenStack Dashboard からできるように してくれた方々に対して感謝します。 なお、OpenStack として統合された Trove の最初のリリースは Icehouse になります。 したがって、この機能は実験的なものとみなすべきで、機能が変更される可能性もあります。

Nova の機能

Horizon でサポートされる OpenStack Compute (Nova) の機能は増え続けています。 Havana リリースでの新機能は下記のとおりです。

  • デフォルトクォータの編集

  • 管理者によるインスタンスのパスワードの再設定

  • アベイラビリティーゾーンのサポート

  • リージョンサポートの改善

  • インスタンスサイズの変更

  • ボリュームからの起動機能の改善

  • プロジェクト単位でのフレーバー機能サポート

これらの機能により、いつ、どこで、どうやってインスタンスを起動するかの制御や、 起動済みの動作中のインスタンスの管理で、より多くのことができるようになりました。

Neutron 機能

多くの重要な OpenStack Networking (Neutron) の機能が Havana で使えるようになりました。主な機能は下記のとおりです。

  • VPN as a Service

  • Firewall as a Service

  • 対話的なネットワークトポロジー編集機能

  • Neutron と Nova network 間で互換性のある、完全なセキュリティーグループとクォータのサポート

これらの機能により Neutron でクラウドで非常に柔軟に SDN を構築することができるようになります。

ユーザーエクスペリエンスの改善

ユーザーによるパスワード変更機能

Identity API v2.0 (Keystone) の変更で、ユーザーは自分のパスワードを管理者権限を要することなく変更できるように なりました。セキュリティー面で改善され、ユーザーに利便性がもたらされます。

改善された管理者情報構成

管理者向けダッシュボードの項目が並び替えが行われ、 グルーピングがより論理的になりました。 また、新たな情報が追加され、管理者がクラウド内のホストの状態を把握したり、 ホストアグリゲートやアベイラビリティーゾーンなどとの関連性を理解したりしやすくなりました。

ユーザーログアウトのメッセージ改善

予期せずログイン画面が表示された際に、なぜログアウトしたかをユーザーに通知する メッセージがいくつか追加されました。これらのメッセージにより、 ユーザーセッションが期限切れになったか、操作がなかったためタイムアウトしたか、 アクセスが認可されていないダッシュボードのページにアクセスしようとしたかが、 はっきりと分かるようになります。

セキュリティーグループテンプレート

セキュリティーグループには (SSH や ping のように) 毎回追加し直すのがうんざりするほど 非常によく使われるルールがあります。そこで、Horizon チームは よく使われるルールについてあらかじめ設定されたテンプレートを用意し、 2 クリックでセキュリティーグループを追加できるようにしました。これらのルールは SECURITY_GROUP_RULES の設定で変更できます。

コミュニティー

翻訳チーム

OpenStack 翻訳チームは Havana リリースで独立したチームとして活動するようになり、 Horizon の翻訳の品質は今までで一番よいものになっています。 もともと OpenStack Dashboard プロジェクトの一部として始まったコミュニティーの形成が 成功したことをお祝い致します。

ユーザーエクスペリエンスグループ

Havana リリースサイクルでは、OpenStack ユーザーエクスペリエンスチームが形成されました。 このチームは生まれたばかりですが、OpenStack 全体を通したユーザーエクスペリエンスの向上を ミッションとしています。このチームはすぐに OpenStack Dashboard の設計と改善において欠かせない存在となっています。

Horizon 内部の変更

LESS コンパイルの複雑性の軽減: NodeJS が不要に

様々な人たちからの抗議の声があったことと、 Python コミュニティーの LESS サポートが大きな改善があったことから、 Horizon では NodeJS に関連する要素をすべて削除しました。 現在は lesscpy モジュールを使って LESS ファイルから最終的なスタイルシートにコンパイルしています。 これはほとんどのユーザーには全く影響はありませんが、 Horizon を使うディストリビューションなどでは扱いが楽になることでしょう。

ロールベースのアクセス制御

Horizon は、ファイルがある場合は、他の OpenStack プロジェクトの policy.json ファイルを使って ダッシュボードでのアクセス制御を行うように、移行を始めました。 これにより、アクセス制御はより細かく設定可能になり、元のプロジェクトと Horizon の間での アクセス制御が整合した状態に保つことができるようになります。 現在のところ、この機能は Keystone および Nova の一部のポリシーファイルについてのみサポートされています。 次のリリースでは完全にサポートされる予定です。 これらの機能を有効にするには、 POLICY_FILES_PATH と POLICY_FILES を設定する必要があります。

その他の改良と修正

  • Swift コンテナーとオブジェクトメタデータのサポート

  • クォータ利用の新しい表示方法

  • Neutron 利用時における Cisco N1K ルータプラグインの追加ダッシュボード

  • 自己署名もしくは他の認証 SSL 証明書のチェック機能

  • Glance イメージ種別が設定可能になりました。

  • ダッシュボードの多くの場面でのソーティング機能が改善されました。

  • API コールの効率最適化。

  • 必須項目フィールドの表示方法が改善されました。

  • セキュリティーの観点から、一定期間操作がなかった場合にユーザーをログアウトさせるセッションタイムアウトを有効にできるようになりました。

  • PEP8 とコード品質基準の遵守にむけた多数の改善が行われました。

  • 数百のバグフィックスとユーザーエクスペリエンスの細かな改善。

アップグレード時の注意

許可するホスト

プロダクション環境での Horizon のデプロイを行うには local_settings.py ファイルで ALLOWED_HOSTS 設定を追加する必要があります。この設定は Django 1.5 にて追加された重要なセキュリティー機能です。 詳しい情報は Django ドキュメントの local_settings.py.example ファイルを参照してください。

Keystone と Neutron の機能を有効にする

既存の設定ファイルで OPENSTACK_KEYSTONE_BACKEND もしくは OPENSTACK_NEUTRON_NETWORK の設定を 行っている場合、 local_settings.example を参照して追加された新しいオプションを確認した方がよいでしょう 既存の設定でそのまま動きますが、そのままでは Havana での追加された機能のいくつかを有効にするのに必要な項目がない場合があります。

既知の問題と制限

セッション生成とヘルスチェック

セッションバックエンドとしてデータベースを使っている環境で、 ホームページへの ping を行うヘルスモニタリングサービスを使用する場合、 セッション生成が過剰に行われる可能性があります。 この問題はすぐに修正される予定ですが、それまでは対策として セッションストアから期限切れのセッションを定期的に削除するジョブを作成することを推奨します。

大量のリソースの同時削除

大量のリソースを一度に削除するために 'sellect all' チェックボックスを使用すると (設定によっては) ネットワークタイムアウトを引き起こす場合があります。 これは、裏で利用している API が bulk-deletion (複数リソースのまとめての削除) を ネイティブではサポートしていないことが原因で、そのため Horizon は このような場合に内部では各リソースについてひとつひとつ削除要求を送信する 必要があるからである。

Neutron におけるセキュリティーグループ名の衝突問題

Nova Network はインスタンス起動時のセキュリティーグループの指定に セキュリティーグループ名だけを用いるのに対して、Neutron は名前でも UUID でも受け付けます。 両者に対応するため、Horizon は選択されたセキュリティーグループの名前を Nova に渡します。 しかしながら、Neutron のデータ分離に関する問題により、 管理者ユーザーがセキュリティーグループを指定しようとした際に、管理者がアクセス可能な別のプロジェクトに 同じ名前の別のセキュリティーグループがある場合に問題が発生します。 Neutron ではその名前に対してマッチするセキュリティーグループが複数見つかり、 そのインスタンスの起動に失敗してしまいます。 現時点での回避策は、管理者ユーザーから見て一意な名前をセキュリティーグループに付けることです。

後方互換性

Havana リリースの Horizon は、 他の OpenStack のコアプロジェクト (Nova, Swift など) の Havana と Grizzly の両バージョンに対して 完全な互換性があるはずです。当たり前の話ですが、他の OpenStack プロジェクトの Grizzly にはない新機能が Horizon で動作するのは、他のプロジェクトでそれらがサポートされている場合だけです。

全体的に見ると、これまで Horizon を使って機能を作ってきた 3rd party の開発者に対して 後方互換性を維持するために、大変な努力がなされました。