现在的位置: 首页 > 综合 > 正文

openstack中的aggregate az, cell, region ( by quqi99 )

2014年02月04日 ⁄ 综合 ⁄ 共 2209字 ⁄ 字号 评论关闭

openstack中的aggregate az, cell, region ( by quqi99 )

作者:张华  发表于:2013-03-18
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

( http://blog.csdn.net/quqi99 )

1)一个地理区域region包含多个可用区域az (availability zone)
2) region是物理概念,客户端连接时需指定region,例如北京设一个region, 武汉设一个region,做容灾之用。horizon也只能配一个region,多个region需配多个horizon。

3)az是物理隔离的,一个az挂了不会影响到其他的az。创建实例时,若没指定az,nova-schedule会从region中选择一个, 如果指定了az就用它。

     nova boot --flavor 1 --image <image-id> --availability-zone <zone>:<compute host> test

4)   aggregate是比az更小一点的逻辑概念,可以通过调度让某些物理请求尽量的往某些hosts上去。
5) cell有自己的DB和MQ,是树状结构,顶层是APC cell,子cell无nova-api服务,各cell之间通过nova-cell通信。
      有时候不想用复杂的DB和MQ集群技术,cell就有用武之地了。

下面,进一步看4种情况的用法,加深理解它。

用法:
关于az与aggregate
1, az是在每一台计算结点的nova.conf中配置的,它是动态的逻辑上的概念。

     default_availability_zone =
<name of zone>

     internal_service_availability_zone = <name of internal zone>
2, host aggregates是az概念的一个延伸,例如有些机器的GPU好,在创建实例时要求往这些机器上放。这时候,管理员:

   2.1  nova.conf中要配置:scheduler_default_filters=AggregateInstanceExtraSpecsFilter,AvailabilityZoneFilter,RamFilter,
   2.2, 可以创建aggreates,           nova aggregate-create <name-for-pool> <availability-zone> (aggreates创建在某一个az
   2.3, 将这些高配机器加到该aggreates, nova aggregate-add-host <aggregate-id> <compute-host-name>
   2.4, 为这个aggreates定义一些元数据,nova aggregate-set-metadata <aggregate-id> ssd=true
   2.5 创建一flavor,并同时为这个flavor定义相同的元数据,
      nova flavor-create ssd.large 6 8192 80 4
      nova-manage instance_type set_key --name=ssd.large  --key=ssd --value=true
   2.5, 这样,在用该flavor来部署虚机时,实例就会往这些管理员要求的机器上放了。所以说,az是面向用户的,aggreate是面向管理员的。

关于cell,如果不想用DB和MQ的集群的话,可以用cell,因为每个cell都有自己的DB和MQ.
即cell自己间的通信用一个MQ,每一个子cell再用它自己的MQ
1, 首先nova-api打开cell功能,打开之后nova-api将不会直接发请求到nova-schedule了,而是通过nova-api与nova-schedul所在机器上的nova-cell来中转。
   compute_api_class=nova.compute.cells_api.ComputeCellsAPI
   [cells]
   name=api
   enable=true
2, 在计算节点上打开cell功能,
   [DEFAULT]
   quota_driver=nova.quota.NoopQuotaDriver
   [cells]
   enable=True
   name=cell1
3,创建cell,设置你子关系,为cell设置单独的MQ(如10.0.0.10, 10.0.1.10)
nova-manage cell create --name=api --cell_type=parent --username=api1_user --password=api1_passwd --hostname=10.0.0.10 --port=5672 --virtual_host=api_vhost --woffset=1.0 --wscale=1.0
nova-manage cell create --name=cell1 --cell_type=child --username=cell1_user --password=cell1_passwd --hostname=10.0.1.10 --port=5673 --virtual_host=cell1_vhost --woffset=1.0 --wscale=1.0

【上篇】
【下篇】

抱歉!评论已关闭.