はじめに
2018年2月末にリリース予定の OpenStack Queens における Nova の新機能と廃止機能、廃止予定機能について調べてみました。
参考:https://docs.openstack.org/releasenotes/nova/unreleased.html
新機能
ハイパーバイザ関連
KVM/QEMU (Libvirt)
- 1ボリュームを複数のインスタンス (=VM) で同時アタッチ可能に (qemu<2.10 又は libvirt>3.10)
- 仮想 GPU 付インスタンス作成に対応
- StorPool ボリューム用クライアントドライバ追加
XenServer
- 仮想 GPU 付インスタンス作成に対応
VMware
- インスタンスの OSシャットダウンに対応
- コンソールログ対応
- インスタンスのファームウェアを UEFI, BIOS から選択可能に (VMイメージ
のメタデータ hw_firmware_type で指定)
Nova API
- インスタンスのコールドマイグレーション API: 停止中インスタンスの移動先ホスト指定に対応 (地味に嬉しい)
- インスタンスマイグレーション API: ページネーション、日時フィルタリング対応、他
- インスタンス操作履歴 API: ページネーション対応
- インスタンス再構築 API: key_name, user_data パラメータ追加
- フレーバ API: description パラメータ追加
Cells v2 関連
Placement API
- ボディを持つ GET/PUT/POST 応答に last-modified ヘッダを追加。
- リソースプロバイダのツリー構造に対応
- GET /resource_providers: 応答の links セクションへの
/resource_providers/{rp_uuid}/allocations リンク追加 - GET /allocation_candidates: 応答中のエントリ数制限、エントリのランダム化
- POST /allocations: 1要求で複数 consumer UUID の設定/設定解除に対応
- PUT /allocations/{consumer_uuid}: JSON リクエストボディで key-value 型構造を使用するよう変更
(GET /allocations/{consumer_uuid} のレスポンスボディに合わせた)
Cells 管理コマンド
- nova-manage cell_v2 delete_cell コマンド: あるセルに削除すべきインスタンスマッピングが存在するが、そのセルの全インスタンスが既に削除されている場合、終了コード 4 を返すように変更
- nova-manage cell_v2 list_hosts コマンド追加。1セル又は全セル中のホスト一覧を表示
- nova-manage cell_v2 delete_host コマンド追加。1セルから1ホストを削除
その他
- スケジューラ: 同スコアのホスト一覧のランダム化に対応
- スケジューラ: PCI デバイスの NUMA affinity ポリシーに対応。Nova の設定ファイル中でデバイス単位(又はデバイスエイリアス単位)の要求レベルを required(必須), legacy(可能なら必須), preferred(推奨) から選択可能に。
- インスタンス操作履歴: 記録される操作の種類を追加 (ボリューム関連操作、ロック操作、バックアップ関連操作)
- VNC コンソール: VeNCrypt (VNC プロトコルの TLS 拡張) に対応
- ネットワーク: Neutron で IP アドレスの部分フィルタリング拡張が利用可能な場合、Nova はIPv4/6 フィルタ付のインスタンス一覧を Neutron に送信
- 通知: サービス (=Nova 中の各主要プロセス) 作成/削除通知に対応
- 通知: instalce.snapshot.{start, end} notification に snapshot_image_id を追加。
廃止予定機能
- Windows / Hyper-V 2012 Server サポート (←訂正しました)
- monkey_patch。コード改変無しで特定メソッドに Python のデコレータメソッドをつける機能だったが、テストされておらず互換性上の問題になっていた。
- nova-manage cell コマンド。Cells V1 用のコマンドだった。
- Nova 標準のリソースクラス (VCPU、メモリ、ディスク) による Ironic ノードのスケジューリング機能。代わりにカスタムリソースクラスを使用する事。
- Pike で廃止された Nova API 拡張機能関連 ACL。
- その他、細々とした設定ファイルのパラメータの廃止・変更
廃止機能
- Nova API
- インスタンス作成/再構築 API: personality パラメータ削除
- GET /limits API: 応答中の maxPersonality, maxPersonalitySize を廃止
- クォータ API: ファイル挿入系クォータを廃止
- nova-manage の以下のサブコマンド:
- quota
- shell
- project
- account
- logs
- host
- agent
- TrustedFilter スケジューリングフィルタ
- Nova API v2.1 で機能しなくなった api.fault 通知関連の設定パラメータ
- nova-idmapshift バイナリ
- その他、細々とした設定ファイルのパラメータの廃止・変更
まとめ
Nova の更なるスケーラビリティ強化の為に最近導入された Nova Cells v2 関連強化、物理マシン管理サービス Ironic 用スケジューリング機能改革が続く一方で、1ボリュームの複数インスタンス接続や仮想 GPU 対応など、興味深い機能の追加もあります。Nova は OpenStack の最古参のコンポーネントの1つですが、今後も活発に開発が続くでしょう。