注:在缩减之前,将宿主机上的虚机全部热迁移完成后直接关闭宿主机,会比较省事儿,不用在需要关闭服务。
一、关闭和踢出 nova-compute 服务
1、关闭服务:WEB 界面 | 管理员 | 系统 | 虚拟机管理器 | 计算主机 | 找到对应的服务点击“关闭服务”
当然,使用命令行也是可以关闭的:
# openstack compute service list # 查看服务列表和名称
# openstack compute service set --disable host service
2、踢出服务
二、剔除网络节点
1、查看
# openstack network agent list
2、关闭服务
# openstack network agent set --disable ID
3、踢出服务
#
三、踢出 块存储 服务
注: 在关闭和踢出 块存储服务 之前,首先确保此服务上没有 卷存在。如果有,需要先迁移走,否则后期虚机无法进行迁移(热迁移和冷迁移)。
1、查看是否还有卷存在此服务上
被使用的卷无法进行迁移。解决办法看博客结尾 附文。
2、查看和关闭服务
#openstack volume service list
#openstack volume service set --disable host Binary
3、在数据库中清除服务
cinder 数据库 的 services表
drop from services where host="和要踢出的服务相关的名称';
附文:
迁移卷,前提我是使用的dokcer 进行openstack部署的。 卷的驱动文件都保存在服务对应的 docker _data 文件里。
1、在数据库cinder,表volumes 中找到对应服务所关联的 卷ID
select * from cinder.volumes where host="compute-3.ops.ft1@rbd-1#RBD" # 我以compute-3.ops.ft1@rbd-1#RBD 为例。
2、在 宿主机 compute-3 的 /var/lib/docker/volumes/cinder/_data 中找到 和 获取到的ID相关的文件,然后拷贝至目标主机 A(如下是前移到了compute-12 主机)。
scp /var/lib/docker/volumes/cinder/_data/cinder-'fe24213a-f380-4b13-9a7d-d66ce6b1a942* compute-12:/var/lib/docker/volumes/cinder/_data/
3、修改数据库记录:
# update volumes set host='compute-12.ops.ft1@rbd-1#RBD' where id='fe24213a-f380-4b13-9a7d-d66ce6b1a942';
结束