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

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

Novaサービスは、OpenStackクラウド環境内でインスタンスが開始される場所を制御します。つまり、 nova-scheduler どのハイパーバイザーが特定のインスタンスを実行するかを決定し、この動作は2つのフィルター(アフィニティ/非アフィニティグループポリシー)を使用して制御されます。つまり、 ServerGroupAntiAffinityFilter およびServerGroupAffinityFilter ServerGroupAffinityFilter ユーザーが同じハイパーバイザー/ホストとServerGroupAntiAffinityFilterでインスタンスのグループを実行できるようにします 要求されたすべてのインスタンスが異なるハイパーバイザー/ホストで開始されるようにします。

これらのフィルターは、 /etc/nova/nova.confでデフォルトで有効になっています。 以下に示すように:

 scheduler_driver_task_period =60scheduler_driver =nova.scheduler.filter_scheduler.FilterSchedulerscheduler_available_filters =nova.scheduler.filters.all_filtersscheduler_default_filters =RetryFilter、AvailabilityZoneFilter、RamFilter、ComputeFilter、ComputeCapabilitiesFilter、 

これらのフィルターが見つからない場合は、 nova.confを編集してください。 、上記の行を追加して、 nova-schedulerを再起動します およびnova-conductor サービス。

#/etc/init.d/nova-scheduler restart 
#/etc/init.d/nova-conductor restart 

nova-schedulerを再起動します 一部のバージョンのOpenStackではサービスだけで十分ですが、OpenStack Mitakaでは、 nova-conductorを再起動する必要があります。 サービスも。

これらのフィルターを使用するには、ユーザーはサーバーグループを作成し、グループにポリシーを割り当て、そのグループにインスタンスを追加する必要があります。

:以下のコマンドは、OpenStackMitakaのセットアップで実行されました。

ServerGroupAffinityFilterポリシーの使用方法

ステップ1 :サーバーグループを作成する

#novaserver-group-createアフィニティ
#novaserver-group-createアフィニティホストアフィニティ+-------------------------------------- + -------------- + ----------------------- --------- + ---------------------------------- + -------------- -+ --------- + ----------- + | Id |名前|プロジェクトID|ユーザーID|ポリシー|メンバー|メタデータ|+-------------------------------------- + -------- ------ + ------------------------- --------- + -------- -------------------------- + --------------- + ------- -+ ----------- + | 565948b0-076e-4de0-97dd-11d58862b64e |アフィニティホスト| 9563fa5bb6dd479aa9f18048 cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'アフィニティ']| [] | {} | + -------------------------------------- + ------- ------- + ------------------------- --------- + ------- --------------------------- + --------------- + ------ --- + ---------- + 

次のコマンドを使用してグループが作成されていることを確認します。

#nova s​​erver-group-get 565948b0-076e-4de0-97dd-11d58862b64e + ------------------------------- ------- + -------------- + ------------------------------------------- ------- + ---------------------------------- + ------- -------- + --------- + ---------- + | Id |名前|プロジェクトID|ユーザーID|ポリシー|メンバー|メタデータ|+-------------------------------------- + -------- ------ + ---------------------------------- + -------- -------------------------- + --------------- + ------- -+ ---------- + | 565948b0-076e-4de0-97dd-11d58862b64e |アフィニティホスト| 9563fa5bb6dd479aa9f18048cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'アフィニティ']| [] | {} | + -------------------------------------- + ------- ------- + ---------------------------------- + ------- --------------------------- + --------------- + ------ --- + ---------- + 

ステップ2 :手順1で作成したグループ内のインスタンスを起動します

#nova boot --flavor 1 --image cirros --security-groups default --nic net-id =9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group =565948b0-076e-4de0-97dd-11d58862b64e --最大4アフィニティVM

–ヒントグループに注意してください Idのオプション 手順1で作成したグループの。また、上記のコマンドは、 –maxを使用して4つのVMを要求します。 オプション。

ステップ3 :要求されたすべてのVMが同じホストで起動されているかどうかを確認します。

for i in `seq 1 4`> do> openstack server show affinityVM-${i} -c hostId -f shell> done hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d "

上記のコマンドは、すべてのVMが同じホストで起動されたことを示しています。

それでは、アンチアフィニティグループポリシーを使用してみましょう。

使用方法ServerGroupAntiAffinityFilter ポリシー?

ServerGroupAntiAffinityFilter、を使用する ユーザーは、VMが異なるハイパーバイザーで開始されていることを確認できます。たとえば、ホストマシンの障害がすべてのサービスに影響を与えるため、すべてのサービスを同じマシンでホストしたくない状況を考えてみます。 ServerGroupAntiAffinityFilterを使用すると、すべてのサービスが異なる物理ホストで確実に妨害されます。

ステップ1 :Antiaffinityポリシーを使用してグループを作成する

#nova s​​erver-group-create anti-affinityHost anti-affinity + --------------------------------- ----- + ------------------- + ------------------------ ---------- + ---------------------------------- + ---- ---------------- + --------- + ---------- + | Id |名前|プロジェクトID|ユーザーID|ポリシー|メンバー|メタデータ| + -------------------------------------- + ---------- --------- + ---------------------------------- + ----- ----------------------------- + -------------------- + --------- + ---------- + | a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 | anti-affinityHost | 9563fa5bb6dd479aa9f18048cd35ca36 | d4053faa2c374045bd37d96ccb7f1b6c | [u'反親和性']| [] | {} | + -------------------------------------- + ---------- --------- + ---------------------------------- + ----- ----------------------------- + -------------------- + --------- + ---------- + 

ステップ2 :アンチアフィニティグループ内でインスタンスを起動します。

#nova boot --flavor 1 --image cirros --security-groups default --nic net-id =9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group =a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 --最大3つのanti-affinityVM

-ヒントグループに注意してください Idのオプション 手順1で作成したグループの例。また、 –max 3つのVMを要求し、すべてが異なるホストで起動されると予想されます。

ステップ3 :VMがさまざまなホスト/ハイパーバイザーで起動されていることを確認します。

#for i in `seq 1 3`; openstack server show anti-affinityVM-$ {i} -c hostId -f shell; hostid ="09fac9c46a3dc5f6219e2af3e3a7da6dad7de843cfba7d8d4feb9054" hostid ="1148bff316258766a721cef177307ce597d80b0e2d95b7603bbfb16d" hostid ="4e488190b3d18a501dd719c05 

上記のコマンドは、3つのVMすべてが異なるホストで起動されたことを確認します。

場合によっては、反親和性を満たすために利用できるリソースがない場合 ポリシー、次に nova boot コマンドは次のエラーメッセージで失敗します:

#nova boot --flavor 1 --image cirros --security-groups default --nic net-id =9381abae-e0c5-4844-b605-da6b04ce9a36 --hint group =a1c8220a-275f-4ff1-8ce1-6fbb54f7cf46 anti-affinityVM 

出力例:

「有効なホストが見つかりませんでした。使用できるホストが不足しています。」

私のセットアップには3つの計算ホストしかないため、上記のコマンドは新しいVMを起動するための有効なホストを見つけることができません。


Linux
  1. AnsibleのYAMLを理解する

  2. Ifsを理解していますか?

  3. Linuxのグループのメンバーを一覧表示する

  1. パスワードポリシーの管理

  2. ログローテーションユーティリティを理解する

  3. Linux での SELinux ポリシーについて

  1. MySQL 権限について

  2. grep:グループ キャプチャ

  3. C で所有者とグループを変更しますか?