• 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
     
     
  • 相关阅读:
    学习进度条第十周
    学习进度条第九周
    结巴分词python
    竞品分析
    学期总结(一)------文献挖掘
    分类结果评估
    scrapy 爬虫怎么写入日志和保存信息
    Python 安装 imread报错
    Python爬虫爬中文却显示Unicode,怎样显示中文--问题解答
    Python网络数据采集二
  • 原文地址:https://www.cnblogs.com/biangbiang/p/3039814.html
Copyright © 2020-2023  润新知