大規模環境のためのCells V2の改良と新しい形式の通知機能実装の振り返り

Open Infrastructure Summit Denver 2019参加報告 その2

Takashi Natsume
nttlabs
7 min readMay 16, 2019

--

NTTソフトウェアイノベーションセンタの夏目です。参加報告その1でお伝えしたとおり、私はOpen Infrastructure Summit Denver 2019に参加しました。参加報告その1では会場の様子や雰囲気をお伝えしましたが、今回はOpen Infrastructure Summit Denver 2019の講演やフォーラムについて見て行きたいと思います。

写真1. デンバーの街並

Cells V2

Cells V2に関しては「What’s new in Nova Cellsv2?」(講演者はCERNのSurya SeetharamanさんとHuaweiのMatt Riedemannさん)という講演があり、まず、先月(2019年4月)にリリースされたSteinリリースで追加された機能が紹介されました。追加された機能とはセルにあるデータベースがダウンした場合に、仮想サーバ一覧取得APIなどで以前はデフォルトでは無視(省略)して結果を返していましたが、ダウンしたセルの情報をAPIデータベースにある情報を利用して一部の情報を返却するようにした機能(API マイクロバージョン2.69)です。

また、現在作業が進められている「Cross-cell resize」についての説明がありました。「Cross-cell resize」の機能とは、現在セルをまたがったリサイズやコールド・マイグレーションの操作は実行できませんが、それをセルをまたがって実行できるようにする、つまり別のセルに仮想サーバを移動させることができるようにする機能です。(ちなみにライブ・マイグレーションもセルをまたがって実行できない制約があります。)

「Cross-cell resize」の実装パッチは多くのパッチに分割されて提案されています。多くのパッチがあり、多くの処理が追加されますが、その処理のフローについては、きちんと設計されており、講演ではその説明がありました(写真2)。

写真2. クロスセル・リサイズのフロー(「What’s new in Nova Cellsv2?」の投影資料より)

筆者(夏目)は以前API マイクロバージョン2.56でコールド・マイグレーションにおける宛先ホスト指定の機能を実装しました。そのため、コールド・マイグレーションに関連する機能の動向について注目していますが、この機能が実装されることは運用上役に立つ機能だと考えているので、非常に期待しています。

バージョンド・ノーティフィケーション(Versioned notifications)

新しい形式のノーティフィケーション(通知)機能に関する「Nova versioned notifications — the result of a 3 year journey」の講演がありました(講演者はEricssonのBalazs Gibizerさん)。この講演では約3年に及ぶ新しいノーティフィケーション機能の実装に関して話があり、まず、なぜ新しい形式のノーティフィケーション機能を実装することになったのかについて説明がありました。その理由とはまず彼のモニタリング・ツールがいつ管理者が計画的なメンテナンスのためにnova-computeサービスを無効(disable)にしたのかを知る必要があり、そのノーティフィケーションを追加しようとしましたが、旧型式のノーティフィケーションは受け取って利用する側とって、いろいろと問題があったためです。例えば、ノーティフィケーションのインターフェース(形式)に統一性がないことやNova内部のオブジェクトの定義が変更されるとそれに合わせてノーティフィケーションに含まれる情報(フィールド)も変更されてしまうことなどです。そこで、それらを解決するために新しい形式のノーティフィケーションであるバージョンド・ノーティフィケーションの実装が始まりました。

講演のなかでは特に言及されませんでしたが、旧型式のノーティフィケーションのバージョンド・ノーティフィケーションへの変換については筆者(夏目)も協力しました(Swap volumeのノーティフィケーション追加QueensリリースRockyリリースSteinリリース)。そして、ついにSteinリリースで変換作業が完了しました。

今後は旧型式のノーティフィケーションの廃止(削除)の作業を行うことができるのかという点については、旧型式のノーティフィケーションを利用しているコンポーネント(プロジェクト)がバージョンド・ノーティフィケーションを利用するように変更されるまでは難しいとのことでした。

Placement

NovaからのPlacementの分離については「Update on placement extraction from nova」のフォーラムが開催されました。しかし、Steinリリースでほとんどの作業が完了しており、あとはNovaにあるPlacementのコードの削除(既にパッチが提出されており、まだマージされていない)とTripleOなどのデプロイメント・プロジェクトでの対応が残されているだけでしたので、時間が40分の予定されていたところ20分程度で終了してしまいました。現在のところ特に問題等はないので、あとは残作業を粛々と進めて行くだけとなりました。

その他のセッションやフォーラム

他にはCyborgというアクセラレータ(GPUやFPGA等)を管理するコンポーネントであるCyborgとNovaの連携に関するフォーラムである「Nova-Cyborg Integration Updates and Next Steps」やnova CLIのopenstack CLIへの移行に関するフォーラムである「Closing compute API feature gaps in the openstack CLI」が開催され、議論が行われました。詳しい内容はここでは省略しますが、全体的な開発の方向性としてNova-Cyborg連携とOpenstack CLIへの移行(nova CLIの廃止)の2つの方向性は重要事項として押さえておく必要があります。

最後に

Summit開催期間中の月曜日(4月29日)になんと雪が降って来て、驚きました。以前、2018年2月下旬から3月上旬にかけてアイルランドで開催されたPTG(Project Teams GatheringというOpenStack開発者の会議)に参加したときにアイルランドでは数十年ぶりに大雪があり、飛行機が遅れて帰国が1日遅れになった出来事を思い出しました。しかし、今回はアイルランドほどは雪は積もりませんでした。

写真3. 雪景色 その1
写真4. 雪景色 その2

さて、ここではNovaとPlacementにフォーカスしてお伝えしましたが、それら以外にも多くのテーマで講演や議論が行われました。それらは私の同僚が報告してくれるはずです。NTTソフトウェアイノベーションセンタのエンジニアブログを引き続きご覧ください。

なお、次はOpen Infrastructure Summitに引き続き開催されたPTG(Project Teams Gathering)についてNovaおよびPlacementの観点から報告します。それでは、またお会いしましょう!

--

--