openstack中的aggregate az, cell, region ( by 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
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 =
2, host aggregates是az概念的一个延伸,例如有些机器的GPU好,在创建实例时要求往这些机器上放。这时候,管理员:
2.1 nova.conf中要配置:scheduler_default_filters=AggregateInstanceExtraSpecsFilter,AvailabilityZoneFilter,RamFilter,
2.2, 可以创建aggreates, nova aggregate-create
2.3, 将这些高配机器加到该aggreates, nova aggregate-add-host
2.4, 为这个aggreates定义一些元数据,nova aggregate-set-metadata
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
http://blog.csdn.net/tantexian/article/details/44653833