实例的升降配置与实例冷迁移
前提:需要配置计算节点之间nova用户ssh对等性,即互相访问免密码密钥
nova用户在安装nova软件包时就已经创建,只是限制了登录,需要修改允许登录,这个可以在/etc/passwd中查看
compute01
# usermod -s /bin/bash nova
# echo "nova" | passwd --stdin nova
# su - nova
# ssh-keygen -t rsa
# ssh-copy-id -i compute01
# ssh-copy-id -i compute02
compute02
# usermod -s /bin/bash nova
# echo "nova" | passwd --stdin nova
# su - nova
# ssh-keygen -t rsa
# ssh-copy-id -i compute01
# ssh-copy-id -i compute02
一、实例升降配
1、定义实例规格时,不建议定义根磁盘大小。如果定义,则将所有规格对磁盘大小定义设置为相同。
例如:
定义test-vm1 1vcpu 128MB内存 磁盘大小为 1G
定义test-vm2 2vcpu 256MB内存 磁盘大小为 1G
①实例升降配时均会重启
②实例升降配时需要手动确认,若需要自动确认,需要在计算节点[DEFAULT]部分增加,如下配置
# vi /etc/nova/nova.conf
[DEFAULT]
resize_confirm_window = 1
重启计算节点nova服务
#systemctl restart libvirtd.service openstack-nova-compute.service
2、实例升降配会出现实例迁移(当前所在计算节点资源不够时),所以还需要添加如下参数,同时要配置支持冷迁移或热迁移
# 允许迁移到本机
# 默认为 False
# vi /etc/nova/nova.conf
[DEFAULT]
allow_resize_to_same_host = true
allow_migrate_to_same_host = true
重启计算节点nova服务
#systemctl restart libvirtd.service openstack-nova-compute.service
3、假设升配时需调整根磁盘大小,分为两种情况
①实例不创建新卷,实例数据保存在计算节点,升配扩大根磁盘时会自动调整磁盘大小,但需要注意,降配调整根磁盘大小有风险
②实例创建新卷,实例数据保存在存储节点,升配不会动态的扩大卷的大小,需要手动去调整,例如:
查看所有的卷
# openstack volume list
指定卷进行调整
# cinder extend 卷ID 2
二、实例冷迁移
即关闭虚拟机、数据迁移。需要迁移的只有系统盘数据、数据盘数据,而无需迁移内存数据,使用块迁移方式。
好处:操作简单,迁移方式灵活,虚拟机不产生动态数据,所以数据丢失率小。
缺点:运行在虚拟机之上的业务被中断。
1、修改配置文件,在实例的升降配实验中已经配置
# vi /etc/nova/nova.conf
[DEFAULT]
allow_resize_to_same_host = true
allow_migrate_to_same_host = true
2、保证源计算节点和目的计算节点的 nova 用户可以进行 SSH 免密登录,关闭 SELinux,因为 nova-compute.service 默认是由 nova 用户启动的,
该服务进程会在源计算节点和目的计算节点之间使用 scp 指令进行数据拷贝,否则就会报错,在实例的升降配实验中已经配置
compute01
# usermod -s /bin/bash nova
# echo "nova" | passwd --stdin nova
# su - nova
# ssh-keygen -t rsa
# ssh-copy-id -i compute01
# ssh-copy-id -i compute02
compute02
# usermod -s /bin/bash nova
# echo "nova" | passwd --stdin nova
# su - nova
# ssh-keygen -t rsa
# ssh-copy-id -i compute01
# ssh-copy-id -i compute02
3、会将实例迁移到其他极端节点上
管理员---计算---实例---救援云主机旁边的按钮---迁移实例