0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nova 19.0.0.0rc1 リリースノート抜粋

Last updated at Posted at 2019-04-07

OpenStack Stein のリリースを前に、Nova の新バージョン 19.0.0 の RC1 版が公開されました。これ以上 Stein リリースで新機能は入らないので、Nova のリリースノートのうちバグフィクス以外を意訳してみました。

なお、原文で「はじめに」の各項目は「新機能」等にも含まれており、こちらの訳でも同様にしてあります。

はじめに

  • Compute API の最新バージョンは v2.72

  • 従来 Nova リポジトリの一部であった Placement API が Nova 本体から独立したリポジトリを持つようになった。但し、独立版の Placement API に完全対応したインストールツールはまだない。詳細はインストール/アップグレードドキュメント参照。
    但し Stein リリースでは移行段階として Nova のリポジトリの中にも Placement API のソースコードが残されているが、次の Train リリースでは削除される予定。

  • サーバインスタンス作成時にボリューム作成を指示した際、ボリュームタイプを指定できるようになった(API v2.67)。

  • 複数セル環境下で、ダウンしていたり性能の低い(=レスポンスが悪い)セルに置かれたサーバの詳細情報のハンドリングが追加された(API v2.69)。

  • サーバインスタンス作成時、Neutron のネットワークポートの QoS で最小帯域を指定できるようになった(API v2.72)。

  • 運用者が Nova のオーバーコミット率(CPU/RAM/ディスク容量における仮想/物理比)を Nova の設定ファイルと Placement API のどちらかで設定できるようになった。

  • Placement API で Compute のケーパビリティ(細かな機能仕様)が Trait として公開されるようになった。

  • 設定オプション [compute]resource_provider_association_refresh で 0 を指定する事でこの機能を無効化できるようになった。大規模環境で便利。

  • VMware ドライバが VM のライブマイグレーションに対応。

  • Nova が2つのケースでネストした(=入れ子の)リソースプロバイダに対応した。

    • 最初からネストしたリソースプロバイダ上で QoS が有効なポートにインベントリや関連付けを付与できるようになる。
    • Libvirt コンピュートノードがレポートする VGPU インベントリに、子リソースプロバイダ上の VGPU インベントリと関連づけを付与する事ができる(Stein リリースの nova-compute サービスにアップグレード後)
      どちらのケースもリソースプロバイダを参照した際、シナリオに基づいて、元々は Compute サービス単位で1階層の compute ノードとして見えていた複数のプロバイダを参照する事ができる。

新機能

  • 下記バージョン付通知に instance_name フィールドを追加。

    • instance.create.start
    • instance.create.end
    • instance.create.error
  • 新ポリシールール os_compute_api:servers:allow_all_filters 追加。ユーザがサーバ一覧表示で全てのフィルタを使えるかどうかを制御する。

  • volume_type オプションパラメータ追加(API v2.67)

  • Libvirt network ボリュームドライバ使用時、接続状態の RBD ボリュームの拡張に対応。

  • GET /servers, GET /servers/detail, GET /servers/{server_id}, GET /os-services にて、セルがダウンしている間に不足したキーを含めるよう変更。

  • [compute]/max_concurrent_disk_ops 設定パラメータ追加。nova-compute 単位でディスク I/O を伴う操作の最大同時実行数を設定可能に。デフォルト値は 0(制限しない)。

  • Libvirt ドライバでイメージプロパティ hypervisor_type=qemu 設定時、x86 ゲストで HPET が利用可能に。イメージプロパティ hw_time_hpet=True で有効。デフォルトは False (無効)。

  • [compute]/max_disk_devices_to_attach オプション追加。単一サーバへ同時接続するボリュームの最大数を定義できるように。デフォルトは -1 (無制限)

  • [compute]resource_provider_association_refresh オプションで、0 (無効)が設定可能に。Placement サーバへの通信削減に有用。

  • Placement API の traits 経由で Compute ドライバがサーバの capabilities を公開可能に。capabilities は os-traits プロジェクト内で定義されている必要がある。現時点で対応している capabilities は以下の通り。

    • COMPUTE_NET_ATTACH_INTERFACE
    • COMPUTE_DEVICE_TAGGING
    • COMPUTE_NET_ATTACH_INTERFACE_WITH_TAG
    • COMPUTE_VOLUME_ATTACH_WITH_TAG
    • COMPUTE_VOLUME_EXTEND
    • COMPUTE_VOLUME_MULTI_ATTACH
    • COMPUTE_TRUSTED_CERTS
  • クエリのバッチ化によりセル横断のサーバ一覧操作が効率的に。

  • [ironic]/partition_key パラメータ追加。Ironic 環境において compute サービスが同パラメータ値と一致する conductor_group を持つ Ironic ノード群の一部(サブセット)のみを管理可能に。また、[ironic]/peer_list パラメータでこのサブセットの管理を compute サービス間で分散可能に。
    ironic-conductor と nova-compute が同居している構成で障害の影響を最小限にする事ができる。

  • [libvirt]/live_migration_timeout_action パラメータ追加。デフォルト値の abort と force_complete のいずれかを設定可能。
    live_migration_completion_timeout で設定されたライブマイグレーションの制限時間を越えた場合の挙動を設定。force_complete は post-copy が利用可能な場合は post-copy、それ以外の場合は VM を一時停止してライブマイグレーションを強行する。

  • Compute API 2.70 で、接続されたボリュームや仮想インターフェースのタグを公開可能に。

    • GET /servers/{server_id}/os-volume_attachments (list)
    • GET /servers/{server_id}/os-volume_attachments/{volume_id} (show)
    • POST /servers/{server_id}/os-volume_attachments (attach)
    • GET /servers/{server_id}/os-interface (list)
    • GET /servers/{server_id}/os-interface/{port_id} (show)
    • POST /servers/{server_id}/os-interface (attach)
  • nova.conf 内で設定されたフィルタスケジューラの設定を Aggregate のメタデータを使用して上書き可能に。

  • Placement API 1.30 で POST /reshaper に対応。これにより、親子リソースプロバイダ間など、リソースプロバイダ間でいくつかのインベントリを移動する際、そのインベントリと関連割当をアトミックにマイグレーション可能に。

  • [api]/local_metadata_per_cell オプション追加。セル単位で nova-api-metadata サービスを実行可能に。詳細はこちら

  • Compute API 2.71 で以下の API のレスポンスボディの server_groups パラメータで各サーバが所属するサーバグループを表示するように。

    • GET /servers/{server_id}
    • PUT /servers/{server_id}
    • POST /servers/{server_id}/action (rebuild)
  • Compute API 2.72 で、リソース要求付きの Neutron ポート(QoS 最小帯域ルール付き等)付きのサーバ作成に対応。但し以下は出来ない。

    • QoS最小帯域ルールのある Neutron ネットワークとポート付きサーバの作成
    • QoS最小帯域ルールのある Neutron ネットワークとポートの接続
    • リソース要求付きポートを持つサーバの移動(リサイズ、コールド/ライブマイグレーション、エバキュエート、shelve オフロード後の unshelve)
  • [libvirt]/live_migration_with_native_tls パラメータ追加。Libvirt ドライバでライブマイグレーション時の QEMU ネイティブ TLS 転送に対応。

  • Compute API 2.66 で、以下の API に changes-before フィルタパラメータ追加。リソースの最終更新が指定した日時以前のリソースのみ取得可能に。

    • GET /servers
    • GET /servers/detail
    • GET /servers/{server_id}/os-instance-actions
    • GET /os-migrations
  • Nova のバージョン付通知インターフェースが完成し、旧インターフェースと互換性を確保。

  • VMware vCenter ドライバで、VM イメージのビデオ RAM 設定用パラメータ hw_video_ram を追加。フレーバーの hw_video:ram_max_mb で指定された最大許容 RAM サイズに対してチェックされる。

  • VMware compute ドライバがライブマイグレーションに対応。複数 compute ノードで vMotion が有効化された同一の vCenter と ESX ホストを管理する必要がある。

  • vrouter VIF タイプに対する direct virtio-forwarder VNIC タイプを追加。VNIC 使用の為、ハードウェア対応と同様、インストールされた OpenContrail, Contrail, Tungsten Fabric のバージョン対応が必要。

既知の問題

  • [compute]/max_disk_devices_to_attach は現在ボリュームが接続されたサーバで最多のボリューム数より大きくなければならない。でないとサーバのリビルドに失敗する。また、コールドマイグレーション時、接続ボリューム数は転送先ホストでチェックされない。また、この制限は shelve offload されたサーバには適用されない為、この制限を付与する事によりサーバが unshelve できなくなるケースがある。

  • 以下の操作中、定期処理で migration_uuid が同時に変更される事でリソース割当が保持される場合、Nova の Placement におけるリソース割当がリークする。

    • POST /servers/{server_id}/action (revertResize Action)
    • POST /servers/{server_id}/action (confirmResize Action)
    • POST /servers/{server_id}/action (os-migrateLive Action)
  • 接続された QoS 最小帯域ルール付ポートがサーバから論理的に削除される前に Neutron がポートを削除した場合、Nova の帯域リソースがリークする。
    これを避ける為には、Neutron 側でポート削除する前に Nova 側でサーバからポートをデタッチしておく必要がある。Nova API によるポートデタッチが不可能な場合、帯域リソースはサーバ削除時にリリースされる。

バージョンアップ時の注意

  • ARMv7 アーキテクチャ用 QEMU マシンタイプのデフォルトが vexpress-a15 から virt に変更された。virt ボードは仮想マシン用に設計された ARMv7 用マシンタイプの推奨デフォルトである。
  • 以下のパラメータが追加された。

    • initial_cpu_allocation_ratio デフォルト値=16.0
    • initial_ram_allocation_ratio デフォルト値=1.5
    • initial_disk_allocation_ratio デフォルト値=1.0
      これらの新オプションは新しく nova-compute ノードが DB に登録される際にのみ使用される。
      一方、cpu_allocation_ratio, ram_allocation_ratio, disk_allocation_ratio 設定パラメータのデフォルト値が 0.0 から None になった。DB 上の既存の nova-compute ノード情報でこれらの値が 0.0 または None の場合、nova-compute がアクセスする際か、nova-manage db online_data_migrations コマンド実行時にマイグレーションされる。
  • virt ドライバ get_info メソッドに use_cache パラメータが追加された。ベンダドライバはこの変更に対応したほうが良い。

  • 新パラメータ [compute]/max_disk_devices_to_attach のデフォルト値は -1 (無制限)である。Libvirt ドライバを使用している場合、Stein にアップグレードした上で非 IDE ディスクバスは 26 から無制限に変更すべきである。ideディスクバスは1サーバ4接続デバイスに制限される。

  • ポリシールール os_compute_api:servers:create:zero_disk_flavor のデフォルト値が rule:admin_or_owner から rule:admin_api に変更される。これにより、admin ロールのないユーザはボリューム付きサーバでない限り disk=0 のフレーバを使用してサーバを作成する事ができなくなる。

  • Libvirt ドライバ使用時、NUMA トポロジを持つインスタンスのライブマイグレーションがデフォルトで無効化された。これには CPU pinning や hugepage を持つインスタンスのライブマイグレーションも含まれる。

  • Newton リリースで追加されたオンラインデータマイグレーション migrate_instances_add_request_spec が今回削除された。nova-api DB における request_specs エントリに一致しない古いインスタンス用の Controller サービスにおける互換コードも同様に削除された。Nova Stein リリースにアップグレードする前に nova-status upgrade check コマンドで Request Spec Migration を必ずチェックする事。

  • nova-manage db online_data_migrations コマンドは Newton リリース以前に作成されたインスタンスの virtual_interfaces レコードを補完するようになった。

  • フレーバーの extra-spec とイメージ属性の検証機能追加により、サーバ作成/リサイズ/再作成用 Compute API はこれらの値が適切にフォーマットされていないか互換性がない場合に 400 エラーを返すようになった。

  • resource_class フィールドが設定されている Ironic ノードのみスケジュールされるようになった。CPU, RAM, ディスクはリソーストラッカーにレポートされない。Stein へのアップグレード前に Ironic ノードに resource_class フィールドを設定する必要がある。

  • Libvirt ドライバは、nova-compute サービス再起動時に VGPU インベントリと割当を reshape する。これにより、VGPU インベントリと関連する割当はルート compute ノードリソースプロバイダから、ツーリー中の子リソースプロバイダに移動される。これは Stein において起動時に1会だけ実施され、エンドユーザからは認識されない。

  • [libvirt]/live_migration_progress_timeout は Ocata リリースで廃止予定になり、Stein で削除された。また、現在のライブマイグレーション関連コードで進捗情報を元に post-copy を自動的に行う部分も削除された。

  • [compute]/live_migration_wait_for_vif_plug 設定オプションのデフォルト値が True に変更された。このオプションが True に設定されていると、いくつかのネットワークバックエンドは機能しなくなるが、OVS, linuxbridge は機能する。

  • maximum_instance_delete_attempts 設定オプションの最小値が制限され、1 未満の場合はエラーが出るようになった。

  • vrouter VIF plug/unplug コードが contrail-nova-vif-driver と呼ばれるパッケージに分離された。このパッケージは Neutron プラグインとして Contrail, OpenContrail, Tungsten Fabric の使用時に Compute ノードにインストールする必要がある。このパッケージは現在 OpenContrail 側でホスティングされているが、将来 Tungsten Fubric に移管されると見られる。

  • nova-manage db online_data_migrations コマンドは最後のバッチ試行でいくつかのマイグレーションが失敗し(例外が発生)、他に成功したマイグレーションがない場合に終了ステータス 2 を返すようになった。

  • nova-status upgrade check コマンドは nova-consoleauth サービス使用をチェックし、使用していればライブ/ローリングアップグレード実行中に [workarounds]enable_consoleauth = True を設定する為の警告を出力するよう変更された。

  • [libvirt]/sysinfo_serial 設定パラメータの設定値(選択肢)に unique 値を追加した。これはゲストのシリアルナンバーに instance.uuid を設定する。今回この値がデフォルトとなった。この値は、インスタンスがホスト間をマイグレーションした際にゲストのシリアルが同一である事を保証する。

  • Pike リリースで廃止予定になった caching_scheduler スケジューラドライバが今回削除された。nova-manage placement heal_allocations コマンドで CacheSchedulerを FilterScheduler にマイグレーションできる。いまだに USES_ALLOCATION_CANDIDATES = False を設定して Placement サービスを回避している独自のスケジューラを使用している場合、openstack-dev ML か Freenode IRC の #openstack-nova チャネルで Nova 開発チームに連絡をとってほしい。

  • Queens リリースで廃止予定になった以下のポリシールールが削除された。

    • os_compute_api:os-config-drive
    • os_compute_api:os-extended-availability-zone
    • os_compute_api:os-extended-status
    • os_compute_api:os-extended-volumes
    • os_compute_api:os-keypairs
    • os_compute_api:os-server-usage
    • os_compute_api:os-security-groups (only from /servers APIs)
    • os_compute_api:os-flavor-rxtx
    • os_compute_api:os-flavor-access (only from /flavors APIs)
    • os_compute_api:image-size
  • Pike リリースで廃止予定になった以下のポリシールールが削除された。

    • os_compute_api:flavors
    • os_compute_api:os-server-groups
  • Pike リリースで廃止予定になった以下のポリシールールが削除された。

    • os_compute_api:os-flavor-manage
      代わりに以下のルールを使用する事。
    • os_compute_api:os-flavor-manage:create
    • os_compute_api:os-flavor-manage:delete
  • ライブマイグレーションと evacuation で移行先ホストを強制する機能が廃止された。理由は、複雑なリソース割当付きのサーバでこうしたリクエストをサポートできないからである。移行先ホスト指定のライブマイグレーションと evacuation リクエストは可能で、スケジューラにより検証される。

  • Queens リリースで廃止予定になった quota グループの以下の設定オプションが削除された。

    • reservation_expire
    • until_refresh
    • max_age
  • Pike リリースで廃止予定になった chance_scheduler が削除された。同様のスケジューリングが必要な場合、filter_schedulerAllHostsFilter を有効にし、[filter_scheduler]/host_subset_size を調整する事で同様の動作が実現される。

  • [filter_scheduler]/soft_affinity_weight_multiplier, [filter_scheduler]/soft_anti_affinity_weight_multiplier 設定オプションは最小値が 0.0 になった。また、廃止予定の [DEFAULT] グループへのエイリアスが削除された。このため、これらのオプションは [filter_scheduler] グループに含まれていなければならない。

  • Rocky リリースから nova-consoleauth サービスが廃止予定になり、新しいコンソールは nova-consoleauth バックエンドの DB に加えて セル DB にも認証トークンが保存される。これにより、コンソールプロキシーはセル単位で動かす必要がある。

廃止予定

  • config_drive_format 設定オプションが廃止予定になった。これは Libvirt 1.2.17 移行における問題を回避する為のものである。

  • CoreFilter, DiskFilter, RamFilter が廃止予定になった。filter_scheduler ドライバ使用時、VCPU, DISK_GB, MEMORY_MB フィルタリングは Placement サービスを使用して処理される。caching_scheduler ドライバは以前これらのフィルタに依存するが、caching_scheduler ドライバ自体が廃止予定である。

  • [workarounds] disable_libvirt_livesnapshot 設定オプションが廃止予定になった。これは Libvirt 1.2.2 の問題を回避する為のものであり、Nova は既にこのバージョンをサポートしていない。

  • nova-consoleauth サービスが廃止予定になった。コンソールトークン認証ストレージは Rocky リリースで nova-consoleauth サービスバックエンドから DB バックエンドへの移行が始まった。Stein リリースでは DB バックエンドのみが使用される。

  • nova-xvpvncproxy サービスは Xen 専用であるため廃止予定になった。この機能は noVNC と nova-novncproxy サービスで代替される。

  • nova-network サービスのみが使用していた [DEFAULT]defer_iptables_applynova-network と同様廃止予定にあった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?