Openstack 中的zone ,aggregates和host及其應用


 
在Openstack 實際的應用中,經常會被客戶或者Boss問到,我創建的虛擬機在后端眾多物理機上是怎么分配的。
 
這時你最好不要答“你不用考慮后面分配的細節,我們的雲會自動處理”。
 
或者這樣的:我后端的計算節點,有一批機器是新機器,特別好,一些是舊機器,性能不好,我想把關鍵應用放到新機器上,普通應用到放到舊機器上。
 
上面的場景通過Openstack的aggregate即可以解決.
 
在未應用aggregate之間,我們用nova-manage service list 來查看平台服務:
 
 
root@AuthServer:~# nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-consoleauth AuthServer                           internal         enabled    :-)   2013-04-24 02:35:39
nova-cert        AuthServer                           internal         enabled    :-)   2013-04-24 02:35:38
nova-conductor   AuthServer                           internal         enabled    :-)   2013-04-24 02:35:38
nova-scheduler   AuthServer                           internal         enabled    :-)   2013-04-24 02:35:39 nova-compute     AuthServer                           nova           enabled    :-)   2013-04-24 02:35:35 nova-compute     KVMCompute                           nova           enabled    :-)   2013-04-24 02:35:30 nova-compute     VmWareCompute                        nova           enabled    :-)   2013-04-24 02:35:34
nova-scheduler   VmWareCompute                        internal         enabled    :-)   2013-04-24 02:35:26
nova-scheduler   KVMCompute                           internal         enabled    :-)   2013-04-24 02:35:27

他們全部默認在nova Zone中(如果你沒有配置node_avalibility_zone的話),

 
在通過aggregate 配置好主機集合后,service list變成了.
 
root@AuthServer:~# nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-consoleauth AuthServer                           internal         enabled    :-)   2013-04-24 02:35:39
nova-cert        AuthServer                           internal         enabled    :-)   2013-04-24 02:35:38
nova-conductor   AuthServer                           internal         enabled    :-)   2013-04-24 02:35:38
nova-scheduler   AuthServer                           internal         enabled    :-)   2013-04-24 02:35:39 nova-compute     AuthServer                           zone52           enabled    :-)   2013-04-24 02:35:35 nova-compute     KVMCompute                           zone51           enabled    :-)   2013-04-24 02:35:30 nova-compute     VmWareCompute                        zone53           enabled    :-)   2013-04-24 02:35:34
nova-scheduler   VmWareCompute                        internal         enabled    :-)   2013-04-24 02:35:26
nova-scheduler   KVMCompute                           internal         enabled    :-)   2013-04-24 02:35:27

 

 
這樣,我們可以用過Openstack的api ,創建虛擬機,直接指定avalibility_zone,讓虛擬機指定創建到某個主機組中。
 
{
    "server":{
        "name":"server-1",
        "availability_zone":"zone52",
        "imageRef":"87589e22-fc26-4ab0-8b15-948823b00a5e",
        "flavorRef":"1"
    }
}

主機組支持一對多,可以靈活配置,具體配置可參考nova -help內容.

還可以,直接指定到某個zone中的某台主機:

 

{
    "server":{
        "name":"server-1",
        "imageRef":"87589e22-fc26-4ab0-8b15-948823b00a5e",
        "availability_zone" : "zone5153:VmWareCompute",
        "flavorRef":"1"
    }
}

 

 

 

下面是我的配置:
共創建了三個主機組,每個一台機器方便測試:
root@AuthServer:~# nova aggregate-list
+----+------+-------------------+
| Id | Name | Availability Zone |
+----+------+-------------------+
| 4  | agg1 | zone51            |
| 5  | agg2 | zone52            |
| 6  | agg3 | zone53            |
+----+------+-------------------+

root@AuthServer:~# nova aggregate-details 4
+----+------+-------------------+-----------------+-----------------------------------+
| Id | Name | Availability Zone | Hosts           | Metadata                          |
+----+------+-------------------+-----------------+-----------------------------------+
| 4  | agg1 | zone51            | [u'KVMCompute'] | {u'availability_zone': u'zone51'} |
+----+------+-------------------+-----------------+-----------------------------------+

root@AuthServer:~# nova aggregate-details 5
+----+------+-------------------+-----------------+-----------------------------------+
| Id | Name | Availability Zone | Hosts           | Metadata                          |
+----+------+-------------------+-----------------+-----------------------------------+
| 5  | agg2 | zone52            | [u'AuthServer'] | {u'availability_zone': u'zone52'} |
+----+------+-------------------+-----------------+-----------------------------------+

root@AuthServer:~# nova aggregate-details 6
+----+------+-------------------+--------------------+-----------------------------------+
| Id | Name | Availability Zone | Hosts              | Metadata                          |
+----+------+-------------------+--------------------+-----------------------------------+
| 6  | agg3 | zone53            | [u'VmWareCompute'] | {u'availability_zone': u'zone53'} |
+----+------+-------------------+--------------------+-----------------------------------+

 

最后提一下,如果主機數量比較少,不需要使用aggregate,直接使用默認的zone nova即可:
--availability-zone <availibility-zone>:<compute-host>
 
#nova boot --image aee1d242-730f-431f-88c1-87630c0f07ba --flavor 1 --availability-zone nova:nova-1 testhost

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM