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

リリースの概要

Grizzly リリースサイクルでは、非常に幅広い改善がありました。ユーザーエクスペリエンスの全面的な改良、安定性の大幅な向上、ネットワーク、インスタンス管理、イメージ管理などの多くの機能、長く懸案となっていたアーキテクチャー上のクリーンアップ、コミュニティーの拡大などです。詳細は続けて下を読んでください。

ハイライト

新機能

ネットワーク

Quantum には Grizzly で非常に多くの新機能が追加されました。 L3 (ルーター) 対応、ロードバランサー、ネットワークトポロジー表示、 Nova ネットワーク API との互換性の向上 (インスタンス起動時の VNIC の順序指定、セキュリティーグループや Floating IP の連携)、表示情報のさまざなな改善などが挙げられます。

Glance へのイメージの直接アップロード

Horizon 経由でユーザーのハードディスクから直接イメージファイルをアップロードできるようになりました (ただし、さまざまなデプロイメント面やセキュリティー面での影響はあります)。数 GB のイメージの場合には、これまで通り Glance CLI を使ってアップロードを行うことを強く推奨します。将来のリリースでこの機能のさらなる改善が行われる予定です。

フレーバーの追加スペックのサポート

Folsom で、フレーバーの「追加スペック」(extra specs) のサポートが Nova に追加されました。「追加スペック」は追加のメタデータで、カスタムスケジューラーは適切なインスタンスのスケジューリングを行うのにこの情報を使うことができます。 Grizzly リリースでは、 Horizon から任意のフレーバーに対する追加スペックの読み書きがサポートされました。

インスタンスのマイグレーション

管理者が、管理ダッシュボードのインスタンスパネルを使って、現在のホストから他のホストへインスタンスをマイグレーションできるようになりました。

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

「権限なし」でログアウトされてしまう問題

OpenStack を初めてデプロイするユーザーが驚くほど多く直面していた問題を一言でまとめると、「すべてを設定したと思ったのに、ダッシュボードにログインしようとしたら、すぐにログアウトされてしまった」という問題でした。その根本的な原因は、セキュリティーを可能な限り強化するために、あらゆるサービス API から返される 401 または 403 応答はいずれも、Horizon で許可されていない部分にアクセスを試みるのと同じように扱われるためにユーザーが即時にログアウトされ、情報や理由についてはほとんどあるいは全く表示されないことにありました。

Grizzly では、ユーザーをログアウトさせる代わりに、サービス API の 401 および 403 エラーを、Horizon でアクセスが制限されている部分への不正アクセスを試みた場合よりも若干低い重大度として扱うことによって、この問題を改善する方法を選択しました。これには、3 つの理由があります。

  1. 悪意のあるユーザーでない場合には、これらのエラーは、ほぼ 100% 設定ミスが原因なので、デバッグが可能となります。

  2. 悪意の有るユーザーは、特別な権限が付与されていないので、CLI で実行できる「承認されていない」要求は、ダッシュボードから実行できるのと全く同じです。

  3. API エラーは、プロジェクトの管理範囲外の外部システムから生成されます。それらのエラーを軽視せずに適切な措置を取るように試みる必要がありますが、そのために極端な対応や破壊的となる可能性のある措置は取るべきではありません。

今後は、ユーザーはログアウトされなくなりましたが、ページには情報は表示されず、アクセスを試みたデータに対するアクセスする権限がない旨を示したエラーメッセージが表示されます。

パネルの構成の見直し

長年残っていたユーザーにとって分かりづらかった点が Grizzly でいくつか修正されました。

1 つは、 API アクセスパネル (ユーザーの API エンドポイント、 RC ファイル、 EC2 認証情報が置かれているパネル) が、設定からプロジェクトダッシュボードの「アクセスとセキュリティー」に移動されました。

2 つめは、デフォルトクォータとサービスのパネル (どちらも情報を参照するだけのパネル) が、 1 枚のシステム情報パネルのタブにまとめられました。これにより、これらのパネルが互いに関係性があることが分かりやすくなり、今後このような情報を参照するだけの表示を集めていく場所が用意されました。

1 クリック Floating IP 管理

Floating IP を関連付ける操作では、大半のユーザーには知識や関心がないような項目を何回もクリックして選択する必要があったため、ユーザーからの不満の声が多くあがっていました。このため、1 回のクリックで「簡単に」Floating IP を関連付けするオプションが実装されました。Floating IP プールが 1 つしかないデプロイメントでは、この新しいオプションにより、ユーザーは明示的な Floating IP 管理を無視して、ボタンを 1 つクリックするだけで、Floating IP をインスタンスに関連付け/関連付け解除することができます。

イメージの整理

イメージのテーブルに新たな機能が追加されました。事前定義済みのフィルターで自分のイメージ、自分と共有されているイメージ、パブリックのイメージ を表示することができます。この新機能により、イメージの検索をはるかに簡単に行うことができるようになり、操作が楽になりました。

セキュリティーグループのルール編集の改善

セキュリティーグループのルールを編集する操作は、予てから非常に複雑で、多数のオプションと非常に専門的な用語が単に提示されていました。また、OpenStack Dashboard で採用しているテーブルとフォームを組み合わせたアプローチは、ユーザーエクスペリエンス面ですでに問題がある操作をさらに難しくするだけでした。

Grizzly では、この操作手順はすべて改変され、大幅に簡素化されました。また、可能な限り多くのコンテキストヘルプが提供され、効率的に操作を実行できるようになりました。

アイコン!

ダッシュボードをより一目で見て使いやすくする活動の一環として、ダッシュボード全体で共通的に使われているアクションボタンのほとんどにアイコンを追加しました。

「その他のアクション」の改善

「その他のアクション」のドロップダウンメニュー (各行で多数のアクションが利用できるテーブル向け) が新しいユーザーにはわかりにくく、またクリックしにくいというフィードバックが数多く寄せられていました。

このメニューは改善されて、メニューを開くためのボタンには、はっきりとしたラベルが付けられ、またクリックできる範囲もかなり大きくなりました。

コミュニティー

ドキュメント、ドキュメント、ドキュメント!

多数の新規のドキュメントが Grizzly サイクル中に追加されました。主なものとしては、 Horizon および OpenStack Dashboard で利用可能な全設定が書かれた節、セキュリティーおよびデプロイメント時の考慮事項、 OpenStack Dashboard のカスタマイズに関する詳しいガイド、があります。

IRC ミーティング

Grizzly サイクル中に、Horizon チームは IRC での週次のプロジェクトミーティングを開始しました。このミーティングは、プロジェクトの拡大と進歩に極めて有用でした。具体的な情報は OpenStack Meetings wiki page を確認してください。

Horizon 内部の変更

従来のダッシュボード名とコード分離

Grizzly サイクルの非常に早い段階で、永らく懸案だったクリーンアップとリファクタリングを行うことができました。 "nova" ダッシュボードは "project" に、 "syspanel" ダッシュボードは "admin" に名前が変更され、それぞれの目的をより反映した名前になりました。

さらに、Horizon フレームワークの中核のコード (OpenStack に直接関係のないコード) と OpenStack Dashboard のコードの分離がよりきれいに行われました。現時点では、 OpenStack に関連する すべての コードが OpenStack Dashboard ディレクトリーに置かれるようになり、 Horizon フレームワークは 完全に OpenStack を意識しない作りで、再利用可能な Django アプリケーションとなっています。

Object Storage の区切り文字と疑似フォルダーオブジェクト

最初に Horizon の Object Storage インターフェースが追加された当時、 Swift のドキュメントでは、コンテナー内の疑似フォルダーを表現するのに、特別なコンテンツ種別を持つ 0 バイトのオブジェクトを追加する方法が推奨されていました。その後、 Swift プロジェクトは、この方法を推奨方法から外し、疑似フォルダーはオブジェクト名内の区切り文字 (通常は "/") で区切ること、を決定しました。

Horizon は、内部ではこの新しい方法を使用するように更新されました。これにより、多くのデプロイメントでの Object Storage の使用方法に合致した状態になりました。

その他の改良と修正

  • Keystone PKI トークンのサポート

  • フレーバーの編集の安定性が大幅に改善されました。

  • セキュリティーグループを実行中のインスタンスに追加できるようになりました。

  • ボリュームのクォータが、 Cinder が有効になっているかに応じて、適切なサービスで処理されるようになりました。

  • パスワード確認ボックスでの、パスワード一致の確認がクライアント側で行われるようになり、より迅速なフィードバックが行われます。

  • 概要ページで表示されるインスタンスとボリュームの情報量が増え、より良い情報が表示されるように数々の修正が行われました。

  • Object Storage パネルでの Unicode サポートが改善されました。

  • 再生攻撃 (replay attack) などを回避するため、ログアウト時に、現在のセッションに関連付けられたトークンの削除を試みるようになりました。

  • ブラウザーの互換性とレンダリングに関する数々の修正。

  • その他、数え切れないほどのバグ修正と改善。 Grizzly で行われた変更の完全なリストは Launchpad で確認してください。

既知の問題と制限

フレーバーの編集での API エラーで、フレーバーが削除されてしまう

Nova が行うフレーバーの編集/置換の方法の制限のため、変更後のフレーバーを作成する前に以前のフレーバーを削除する必要があります。そのため、変更後のフレーバーを作成時に API エラーが発生した場合、新しいフレーバーは作成されずに古いフレーバーだけが失われる可能性があります。

高度なネットワークトポロジーの作成

いくつかの Quantum の機能は追加されたのが Grizzly サイクルのリリース直前であったため、 OpenStack Dashboard 経由では複雑なネットワーク構成を作成することができません。将来のリリースでは機能が強化されていくことでしょう。

ロードバランサー機能

最後の最後で、ロードバランサー機能が Quantum と Horizon に実装されました。できる限りのテストを行いましたが、まだ見つかっていないバグがあるかもしれません。 Grizzly リリースにおいては、この機能は「ベータ」扱い、「実験的機能」と考えた方がよいでしょう。

Quantum Brocade プラグインにおける制限事項

Quantum の Brocade プラグインは、 Horizon の中心的な機能である Floating IP アドレス API をサポートしていません。そのため、Horizon の Grizzly リリースの Quantum 連携機能とは組み合わせて使用することはできません。

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

「全選択」チェックボックスを使って大量のリソースを API 経由で削除した場合、ネットワークタイムアウトが発生することがあります (設定に依存します)。 API 自身は bulk delete (一括削除) に対応しておらず、その結果 Horizon がリソース単位に削除要求を送信しているからです。

後方互換性

Grizzly リリースの Horizon は、他の OpenStack コアプロジェクト (Nova, Swift など) の Grizzly と Folsom の両方のバージョンと完全な互換性があるはずです。背後で使用するサービスでのバグ修正などがあるため、機能によってはすべて Grizzly バージョンの構成の方がかなり良く動作するものもあるでしょうが、機能が動作するかどうかという観点では制限事項はありません。

全体としては、多くの努力の結果、これまでに Horizon を利用したアプリケーションを作成している third-party 開発者に対する互換性が維持されています。