GNU/Linux >> Linux の 問題 >  >> Linux

OpenStackでアフィニティおよびアンチアフィニティポリシーを作成する方法

OpenStackが存在する組織 は積極的に使用されるため、このような組織では、アプリケーションチームとデータベースチームは、アプリケーションとデータベースのインスタンスが同じコンピューティングノードで起動する必要があるという要件を考え出すことができます。 (ハイパーバイザー)または異なる計算ノード。

したがって、OpenStackのこの要件は、サーバーグループを介して満たされます。 親和性 および非親和性 ポリシー。サーバーグループは、openstackインスタンスをスケジュールするための制御アフィニティおよび非アフィニティルールに使用されます。

アフィニティサーバーグループを使用して仮想マシンをプロビジョニングしようとすると、すべての仮想マシンが同じ計算ノードで起動されます。 VMがant-affinityサーバーグループでプロビジョニングされると、すべてのVMが異なる計算ノードで起動されます。この記事では、AffinityおよびAnti-Affinityルールを使用してOpenStackサーバーグループを作成する方法を示します。

まず、OpenStackセットアップがアフィニティおよびアンチアフィニティポリシーをサポートしているかどうかを確認し、コントローラーノードから次のgrepコマンドを実行します。

# grep -i "scheduler_default_filters" /etc/nova/nova.conf

出力は次のようになります

ご覧のとおり、AffinityおよびAnt-Affinityフィルターは有効になっていますが、これらが有効になっていない場合は、これらのフィルターを /etc/nova/nova.confに追加してください。 「scheduler_default_filters」の下にあるコントローラーノードのファイル 」パラメータ。

# vi /etc/nova/nova.conf
………………
scheduler_default_filters=xx,xxx,xxx,xxxxx,xxxx,xxx,xxx,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,xx,xxx,xxxx,xx
………………

ファイルを保存して終了します

上記の変更を有効にするには、次のサービスを再起動します

# systemctl restart openstack-nova-scheduler
# systemctl restart openstack-nova-conductor

それでは、アフィニティポリシーとアンチアフィニティポリシーを使用してOpenStackサーバーグループを作成しましょう

アフィニティポリシーを使用したサーバーグループ

アフィニティポリシーの「app」という名前のサーバーグループを作成するには、コントローラーノードから次のopenstackコマンドを実行します。

構文:

#openstack server group create –policyアフィニティ

または

#novaserver-group-createアフィニティ

注: openstackコマンドの実行を開始する前に、プロジェクトクレデンシャルファイルをソースしていることを確認してください。私の場合、プロジェクトクレデンシャルファイルは「 openrc」です。 」

例:

# source openrc
# openstack server group create --policy affinity app

非アフィニティポリシーを使用するサーバーグループ

アンチアフィニティポリシーを使用してサーバーグループを作成するには、コントローラーノードから次のopenstackコマンドを実行します。サーバーグループ名は「データベース」であると想定しています。

構文:

#openstack server group create –policy anti-affinity

または

#novaserver-group-createアンチアフィニティ

例:

# source openrc
# openstack server group create --policy anti-affinity database

サーバーグループのIDとポリシーを一覧表示する

novaコマンドまたはOpenstackコマンドのいずれかを実行して、サーバーグループのIDとそのポリシーを取得します

# nova server-group-list | grep -Ei "Policies|database"
Or
# openstack server group list --long | grep -Ei "Policies|app|database"

出力は次のようになります

アフィニティポリシーを使用して仮想マシン(VM)を起動する

アフィニティポリシーを使用して4つのVMを起動するとし、次の「 openstack server create」を実行します。 ”コマンド

構文:

#openstack server create –image –flavor –security-group –nic net-id = –hint group = –max

例:

# openstack server create --image Cirros --flavor m1.small --security-group default --nic net-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c --hint group="a9847c7f-b7c2-4751-9c9a-03b117e704ff" --max 4 affinity-test

上記のコマンドの出力

VMが同じ計算ノードで起動されているかどうかを確認し、次のコマンドを実行します

# openstack server list --long -c Name -c Status -c Host -c "Power State" | grep -i affinity-test

これにより、すべてのVMが同じ計算ノードで起動されるため、アフィニティポリシーが正常に機能していることが確認されます。

それでは、非アフィニティポリシーをテストしましょう

アンチアフィニティポリシーを使用して仮想マシン(VM)を起動する

アンチアフィニティポリシーでは、4つのVMを起動します。上記の「openstackserver create」コマンドで、アンチアフィニティサーバーグループのIDを置き換える必要があります。この例では、データベースサーバーグループIDを使用します。

次のopenstackコマンドを実行して、非アフィニティポリシーを使用して異なるコンピューティングで4つのVMを起動します。

# openstack server create --image Cirros --flavor m1.small --security-group default --nic net-id=37b9ab9a-f198-4db1-a5d6-5789b05bfb4c --hint group="498fd41b-8a8a-497a-afd8-bc361da2d74e" --max 4 anti-affinity-test

出力

以下のopenstackコマンドを使用して、VMが異なるコンピューティングノードで起動されているかどうかを確認します

# openstack server list --long -c Name -c Status -c Host -c "Power State" | grep -i anti-affinity-test

上記の出力は、非アフィニティポリシーも正常に機能していることを確認しています。

注: サーバーグループのデフォルトの割り当ては、テナントごとに10です。つまり、プロジェクト内に最大10台のサーバーグループを作成でき、10台を超えるVMを管理できます。

以下のコマンドを使用して、特定のテナントのサーバーグループクォータを表示し、セットアップに適したテナントIDを置き換えます

# openstack quota show f6852d73eaee497a8a640757fe02b785 | grep -i server_group
| server_group_members | 10      |
| server_groups        | 10      |
#

サーバーグループクォータを更新するには、次のコマンドを実行します

# nova quota-update --server-group-members 15 f6852d73eaee497a8a640757fe02b785
# nova quota-update --server-groups 15  f6852d73eaee497a8a640757fe02b785

次に、openstackquotaコマンドを再実行してサーバーグループのクォータを確認します

# openstack quota show f6852d73eaee497a8a640757fe02b785 | grep -i server_group
| server_group_members | 15     |
| server_groups        | 15     |
#

これで、テナントのサーバーグループクォータが正常に更新されました。これで記事も終わりです。技術的な友達と共有することを躊躇してください。


Linux
  1. バックアップを作成する方法

  2. Webサーバーとは何ですか?Webサーバーはどのように機能しますか?

  3. Linuxでユーザーグループを作成および削除する方法

  1. Nginx仮想ホスト(サーバーブロック)を作成する方法

  2. OpenStack用のWindowsイメージを作成する方法

  3. OpenStackMitakaのアフィニティ/アンチアフィニティグループポリシーを理解する

  1. OpenStackでクラウドイメージをアップロードおよびダウンロードする方法

  2. コマンドラインを介してOpenStackでインスタンスを作成する方法

  3. Linux サーバーに CVS をインストールして CVS リポジトリを作成する方法