Openstackのaffinityについて
Icehouseからaffinityをサポートしているので、動作を確認。
Affinity/Anti-affinityはFilterとして実装されており、動作は以下の通り。
Affinityは同じサーバ上にVMを作成する
Anti-affinityは異なるサーバ上にVMを作成する
どのホストにも同じグループのVMが存在し、作成できない場合にはErrorとなる
有効化はnova.conf
からscheduler_default_filters
にAffinityFilter
を追加
nova.conf
nova/nova.conf:scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
Affinity用のサーバグループの作成は以下のコマンド
# nova server-group-create --policy affinity test-affinity
+--------------------------------------+---------------+---------------+---------+----------+
| Id | Name | Policies | Members | Metadata |
+--------------------------------------+---------------+---------------+---------+----------+
| 979912fe-a558-46e5-b3d2-1022104cd5b8 | test-affinity | [u'affinity'] | [] | {} |
+--------------------------------------+---------------+---------------+---------+----------+
Anti-affinity用のサーバグループの作成は以下のコマンド
# nova server-group-create --policy anti-affinity test-anti-affinity
+--------------------------------------+--------------------+--------------------+---------+----------+
| Id | Name | Policies | Members | Metadata |
+--------------------------------------+--------------------+--------------------+---------+----------+
| dacf95e9-e1d5-4ec9-ae6a-c45ea87f417d | test-anti-affinity | [u'anti-affinity'] | [] | {} |
+--------------------------------------+--------------------+--------------------+---------+----------+
作成したサーバグループの確認は以下のコマンド
# nova server-group-list
+--------------------------------------+--------------------+--------------------+---------+----------+
| Id | Name | Policies | Members | Metadata |
+--------------------------------------+--------------------+--------------------+---------+----------+
| 979912fe-a558-46e5-b3d2-1022104cd5b8 | test-affinity | [u'affinity'] | [] | {} |
| dacf95e9-e1d5-4ec9-ae6a-c45ea87f417d | test-anti-affinity | [u'anti-affinity'] | [] | {} |
+--------------------------------------+--------------------+--------------------+---------+----------+
NovaのVM作成コマンドは以下の通り
# nova boot --flavor m1.tiny --image ubuntu --hint group=test-anti-affinity ubuntu-test