検索

7.6. ホストアグリゲートの作成と管理

download PDF

クラウド管理者は、パフォーマンスおよび管理目的で、コンピュートのデプロイメントを論理グループに分割することができます。Red Hat OpenStack Platform (RHOSP) では、論理グループへの分割に以下のメカニズムを使用することができます。

ホストアグリゲート

ホストアグリゲートとは、ハードウェアやパフォーマンス特性などの属性に基づいてコンピュートノードを論理的なユニットにグループ化したものです。コンピュートノードを 1 つまたは複数のホストアグリゲートに割り当てることができます。

ホストアグリゲートでメタデータを設定してフレーバーおよびイメージをホストアグリゲートにマッピングし、続いてフレーバーの追加スペックまたはイメージのメタデータ属性をホストアグリゲートのメタデータにマッチングすることができます。必要なフィルターが有効な場合、Compute スケジューラーはこのメタデータを使用してインスタンスのスケジューリングを行うことができます。ホストアグリゲートで指定するメタデータは、ホストの使用をフレーバーまたはイメージで指定するメタデータと同じメタデータのインスタンスに限定します。

ホストアグリゲートのメタデータで xxx_weight_multiplier 設定オプションを定義することで、それぞれのホストアグリゲートに重みの乗数を設定することができます。

ホストアグリゲートを使用して、負荷分散の処理、物理的な分離または冗長性の適用、共通の属性を持つサーバーのグループ化、ハードウェアのクラス分け等を行うことができます。

ホストアグリゲートを作成する際に、ゾーン名を指定することができます。この名前は、クラウドユーザーが選択することのできるアベイラビリティーゾーンとして提示されます。

アベイラビリティーゾーン

アベイラビリティーゾーンは、ホストアグリゲートのクラウドユーザー側のビューです。クラウドユーザーは、アベイラビリティーゾーンに属するコンピュートノードやアベイラビリティーゾーンのメタデータを把握することはできません。クラウドユーザーは、アベイラビリティーゾーンの名前を見ることしかできません。

それぞれのコンピュートノードは、1 つのアベイラビリティーゾーンにしか割り当てることができません。デフォルトのアベイラビリティーゾーンを設定することができます。クラウドユーザーがゾーンを指定しない場合、インスタンスはこのアベイラビリティーゾーンにスケジューリングされます。特定の機能を持つアベイラビリティーゾーンを使用するように、クラウドユーザーに指示することができます。

7.6.1. ホストアグリゲートでのスケジューリングの有効化

特定の属性を持つホストアグリゲートにインスタンスをスケジュールするには、Compute スケジューラーの設定を更新し、ホストアグリゲートのメタデータに基づく絞り込みを有効にします。

手順

  1. Compute 環境ファイルを開きます。
  2. NovaSchedulerEnabledFilters パラメーターにまだ以下の値がなければ、値を追加します。

    • AggregateInstanceExtraSpecsFilter: フレーバーの追加スペックに一致するホストアグリゲートメタデータでコンピュートノードを絞り込むには、この値を追加します。

      注記

      このフィルターが想定どおりに機能するには、extra_specs キーに aggregate_instance_extra_specs: 名前空間の接頭辞を指定して、フレーバーの追加スペックのスコープを定義する必要があります。

    • AggregateImagePropertiesIsolation: イメージメタデータ属性に一致するホストアグリゲートメタデータでコンピュートノードを絞り込むには、この値を追加します。

      注記

      イメージメタデータ属性を使用してホストアグリゲートのメタデータを絞り込むには、ホストアグリゲートメタデータキーが有効なイメージメタデータ属性と一致する必要があります。有効なイメージメタデータ属性に関する情報は、イメージ設定パラメーター を参照してください。

    • AvailabilityZoneFilter: インスタンスの起動時にアベイラビリティーゾーンで絞り込むには、この値を追加します。

      注記

      Compute スケジューラーサービスのフィルター AvailabilityZoneFilter を使用する代わりに、Placement サービスを使用してアベイラビリティーゾーンの要求を処理することができます。詳細は、Filtering by availability zone using the Placement service を参照してください。

  3. 更新内容を Compute 環境ファイルに保存します。
  4. その他の環境ファイルと共に Compute 環境ファイルをスタックに追加して、オーバークラウドをデプロイします。

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/<compute_environment_file>.yaml

7.6.2. ホストアグリゲートの作成

クラウド管理者は、ホストアグリゲートを必要なだけ作成することができます。

手順

  1. ホストアグリゲートを作成するには、以下のコマンドを入力します。

    (overcloud)# openstack aggregate create <aggregate_name>

    <aggregate_name> をホストアグリゲートに割り当てる名前に置き換えてください。

  2. ホストアグリゲートにメタデータを追加します。

    (overcloud)# openstack aggregate set \
     --property <key=value> \
     --property <key=value> \
     <aggregate_name>
    • <key=value> はメタデータのキー/値のペアに置き換えてください。AggregateInstanceExtraSpecsFilter フィルターを使用している場合、キーは任意の文字列 (例: ssd=true) にすることができます。AggregateImagePropertiesIsolation フィルターを使用している場合は、キーは有効なイメージメタデータ属性と一致する必要があります。有効なイメージメタデータプロパティーの詳細は、イメージ設定パラメーター を参照してください。
    • <aggregate_name> をホストアグリゲートの名前に置き換えてください。
  3. コンピュートノードをホストアグリゲートに追加します。

    (overcloud)# openstack aggregate add host \
     <aggregate_name> \
     <host_name>
    • <aggregate_name> は、コンピュートノードを追加するホストアグリゲートの名前に置き換えます。
    • <host_name> は、ホストアグリゲートに追加するコンピュートノードの名前に置き換えてください。
  4. ホストアグリゲート用のフレーバーまたはイメージを作成します。

    • フレーバーを作成します。

      (overcloud)$ openstack flavor create \
        --ram <size_mb> \
        --disk <size_gb> \
        --vcpus <no_reserved_vcpus> \
        host-agg-flavor
    • イメージの作成

      (overcloud)$ openstack image create host-agg-image
  5. フレーバーまたはイメージに、ホストアグリゲートのキー/値のペアに一致するキー/値のペアを 1 つまたは複数設定します。

    • フレーバーにキー/値のペアを設定するには、スコープ aggregate_instance_extra_specs を使用します。

      (overcloud)# openstack flavor set \
       --property aggregate_instance_extra_specs:ssd=true \
       host-agg-flavor
    • イメージにキー/値のペアを設定するには、有効なイメージメタデータ属性をキーとして使用します。

      (overcloud)# openstack image set \
       --property os_type=linux \
       host-agg-image

7.6.3. アベイラビリティーゾーンの作成

クラウド管理者は、クラウドユーザーがインスタンスを作成する際に選択できるアベイラビリティーゾーンを作成することができます。

手順

  1. アベイラビリティーゾーンを作成するには、新しいアベイラビリティーゾーンホストアグリゲートを作成するか、既存のホストアグリゲートをアベイラビリティーゾーンにすることができます。

    1. 新しいアベイラビリティーゾーンホストアグリゲートを作成するには、以下のコマンドを入力します。

      (overcloud)# openstack aggregate create \
       --zone <availability_zone> \
       <aggregate_name>
      • <availability_zone> をアベイラビリティーゾーンに割り当てる名前に置き換えてください。
      • <aggregate_name> をホストアグリゲートに割り当てる名前に置き換えてください。
    2. 既存のホストアグリゲートをアベイラビリティーゾーンにするには、以下のコマンドを入力します。

      (overcloud)# openstack aggregate set --zone <availability_zone> \
        <aggregate_name>
      • <availability_zone> をアベイラビリティーゾーンに割り当てる名前に置き換えてください。
      • <aggregate_name> をホストアグリゲートの名前に置き換えてください。
  2. オプション: アベイラビリティーゾーンにメタデータを追加します。

    (overcloud)# openstack aggregate set --property <key=value> \
      <aggregate_name>
    • <key=value> をメタデータのキー/値のペアに置き換えてください。キー/値の属性は、必要なだけ追加することができます。
    • <aggregate_name> をアベイラビリティーゾーンホストアグリゲートの名前に置き換えてください。
  3. コンピュートノードをアベイラビリティーゾーンホストアグリゲートに追加します。

    (overcloud)# openstack aggregate add host <aggregate_name> \
      <host_name>
    • <aggregate_name> は、コンピュートノードを追加するアベイラビリティーゾーンホストアグリゲートの名前に置き換えてください。
    • <host_name> は、アベイラビリティーゾーンに追加するコンピュートノードの名前に置き換えてください。

7.6.4. ホストアグリゲートの削除

ホストアグリゲートを削除するには、まずホストアグリゲートからすべてのコンピュートノードを削除します。

手順

  1. ホストアグリゲートに割り当てられたすべてのコンピュートノードのリストを表示するには、以下のコマンドを入力します。

    (overcloud)# openstack aggregate show <aggregate_name>
  2. ホストアグリゲートから割り当てられたすべてのコンピュートノードを削除するには、それぞれのコンピュートノードで以下のコマンドを入力します。

    (overcloud)# openstack aggregate remove host <aggregate_name> \
      <host_name>
    • <aggregate_name> は、コンピュートノードを削除するホストアグリゲートの名前に置き換えてください。
    • <host_name> は、ホストアグリゲートから削除するコンピュートノードの名前に置き換えてください。
  3. ホストアグリゲートからすべてのコンピュートノードを削除したら、以下のコマンドを入力してホストアグリゲートを削除します。

    (overcloud)# openstack aggregate delete <aggregate_name>

7.6.5. プロジェクト分離ホストアグリゲートの作成

特定のプロジェクトでのみ利用可能なホストアグリゲートを作成することができます。ホストアグリゲートに割り当てたプロジェクトだけが、ホストアグリゲートでインスタンスを起動することができます。

注記

プロジェクト分離では、Placement サービスを使用して各プロジェクトのホストアグリゲートを絞り込みます。このプロセスは、AggregateMultiTenancyIsolation フィルターの機能に優先します。したがって、AggregateMultiTenancyIsolation フィルターを使用する必要はありません。

手順

  1. Compute 環境ファイルを開きます。
  2. プロジェクト分離ホストアグリゲートでプロジェクトインスタンスをスケジュールするには、Compute 環境ファイルの NovaSchedulerLimitTenantsToPlacementAggregate パラメーターを True に設定します。
  3. オプション: ホストアグリゲートに割り当てたプロジェクトだけがクラウド上でインスタンスを作成できるようにするには、NovaSchedulerPlacementAggregateRequiredForTenants パラメーターを True に設定します。

    注記

    NovaSchedulerPlacementAggregateRequiredForTenants のデフォルト値は False です。このパラメーターが False の場合、ホストアグリゲートに割り当てられていないプロジェクトは、任意のホストアグリゲートでインスタンスを作成することができます。

  4. 更新内容を Compute 環境ファイルに保存します。
  5. その他の環境ファイルと共に Compute 環境ファイルをスタックに追加して、オーバークラウドをデプロイします。

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/<compute_environment_file>.yaml \
  6. ホストアグリゲートを作成します。
  7. プロジェクト ID のリストを取得します。

    (overcloud)# openstack project list
  8. filter_tenant_id<suffix> メタデータキーを使用して、プロジェクトをホストアグリゲートに割り当てます。

    (overcloud)# openstack aggregate set \
     --property filter_tenant_id<ID0>=<project_id0> \
     --property filter_tenant_id<ID1>=<project_id1> \
     ...
     --property filter_tenant_id<IDn>=<project_idn> \
     <aggregate_name>
    • <ID0><ID1>、および <IDn> までのすべての ID を、作成する各プロジェクトフィルターの一意の値に置き換えてください。
    • <project_id0><project_id1>、および <project_idn> までのすべてのプロジェクト ID を、ホストアグリゲートに割り当てる各プロジェクトの ID に置き換えてください。
    • <aggregate_name> をプロジェクト分離ホストアグリゲートの名前に置き換えてください。

      たとえば、プロジェクト 78f19d3t、および aa29 をホストアグリゲート project-isolated-aggregate に割り当てるには、以下の構文を使用します。

      (overcloud)# openstack aggregate set \
       --property filter_tenant_id0=78f1 \
       --property filter_tenant_id1=9d3t \
       --property filter_tenant_id2=aa29 \
       project-isolated-aggregate
      ヒント

      filter_tenant_id メタデータキーの接尾辞を省略することで、単一の特定プロジェクトでのみ利用可能なホストアグリゲートを作成することができます。

      (overcloud)# openstack aggregate set \
       --property filter_tenant_id=78f1 \
       single-project-isolated-aggregate

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.