一、将控制节点也作为计算节点

 
1、安装组件
# yum install openstack-nova-compute -y
 
2、修改配置文件
# vim /etc/nova/nova.conf
[default]
resize_confirm_window = 1
allow_resize_to_same_host = true
allow_migrate_to_same_host = true
 
[libvirt]
virt_type = qemu
 
[vnc]
novncproxy_base_url = http://192.168.58.100:6080/vnc_auto.html
 
3、安装并配置kvm组件
# yum -y install qemu-kvm-common-ev qemu-kvm-tools qemu-kvm-ev libvirt-daemon-kvm qemu-guest-agent qemu-img-ev libibverbs -y
 
4、启动libvirtd、nova-compute服务,并设置成开机自启动
# systemctl enable libvirtd.service openstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service
 
5、如果要支持冷迁移,还需要做nova用户免密
controller
# usermod -s /bin/bash nova 
# echo "nova" | passwd --stdin nova 
# su - nova
# ssh-keygen -t rsa
# ssh-copy-id -i controller
# ssh-copy-id -i compute01
# ssh-copy-id -i compute02
 
compute01
# su - nova
# ssh-copy-id controller
 
compute01
# su - nova
# ssh-copy-id controller
 

二、主机聚合

主机聚合(Host Aggregate) 允许将硬件进行逻辑分组,并在用户创建实例时能指定对应组。
通常将相同规格硬件计算节点归类在一个组,例如具备CPU高主频的计算节点归为一个组,然后再定义一些元数据。这样,用户在创建实例时,可以选择将实例创建CPU高主频的计算节点上。
 
1、只有计算节点才能使用主机聚合。
2、创建主机聚合时,必须要自定义一个域(可用区/可用域)或者使用默认的nova。
3、创建主机聚合时,会自动添加一个元数据availability_zone,值默认等于主机聚合名称。
4、同一个计算节点只能归属于一个可用域,即不能同时属于两个或以上可用域。
5、删除主机聚合时,必须先移除该主机聚合组下的所有计算节点,否则无法删除该主机聚合。
6、主机聚合可以让实例创建在指定的计算节点上。大部分情况,实例创建时是由调度器决定创建在哪台计算节点上,但在需要错误排查或编排服务资源分配时,
希望能够直接在指定计算节点上创建实例,就可以用到主机聚合来实现。
7、可用域(可用区)是对计算资源的逻辑隔离,用户启动实例时可以选择选择对应的可用域,如果没有自定义可用域,默认为nova域。
如果有多个可用域,则用户创建多个实例时可以指定不同的可用域,避免某一个可用域故障带来的问题。
 
 
一、在控制节点(nova-scheduler)上,修改nova.conf,添加以下行,以启用主机聚合过滤,以及其他通常启用的过滤器
# vim /etc/nova/nova.conf
[filter_scheduler]
available_filters=nova.scheduler.filters.all_filters
enabled_filters=RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter
 
# systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
 
二、创建主机聚合
管理员---计算---主机聚合---创建主机聚合---名称(gd01)、可用域(gd01)---管理聚合内的主机controller
管理员---计算---主机聚合---创建主机聚合---名称(gd02)、可用域(gd02)---管理聚合内的主机compute01、compute02
 
 
# systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-compute.service
 
3、创建实例验证
项目------计算------实例------创建实例
详情------实例名称test------可用域gd01
源------创建新卷:是、删除实例时删除卷:是------选上上传的cirros3.2镜像
实例类型------选上前面创建的test-vm1实例类型
网络------选上前面创建的网络net1
创建实例
 
 
4、修改主机聚合,把compute01放到主机聚合gd01上
 
测试冷迁移
管理员---计算---实例---迁移实例
 
测试实例升降配