前面提到过openstack环境部署及创建虚拟机的完整过程,然后有时候会发现创建的虚拟机规格太小,满足不了业务需求;亦或是虚拟机规格太大,容易造成资源浪费。

于是就有了在线拉伸虚拟机规格的需求。所以,今天这里介绍下在openstack里创建vm后,怎么在线调整虚拟机(云主机)的大小?

注意一点:

openstack的虚拟机在线调整大小的原理:

其实就相当于做了一个云主机在不同宿主机(计算节点)之间的迁移,所以前提是至少需要有两个计算节点。

如果是单机部署的openstack(即控制节点和计算节点都在一台机器上),有且只有一个计算节点,那么是无法完成在线调整虚拟机大小的。

同时要注意的是:

要在相关迁移云主机间进行无密码访问,由于OpenStack是由Nova组件来管理云主机,所以需要对Nova用户进行无密码访问。

完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小_bash


完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小_bash_02



如上图中的centos-004这台云主机的规格采用的是名为kvm001类型,即2核CPU、4G内容,现在需要将这台云主机的规格降为1核2G,即kvm002类型。操作流程如下:

1)修改控制节点和节点节点的nova.conf文件,添加下面两行内容:

allow_resize_to_same_host=True

scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter

2)控制节点上重启nova相关服务

[root@linux-node1 src]# systemctl restart openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

3)计算节点上重启nova服务

[root@linux-node1 nova]# systemctl restart openstack-nova-compute

4)nova账号的ssh双向认证关系

下面的操作在云主机所在计算节点和其他相关迁移云主机的计算节点上操作。

要清楚的是:

计算节点可能有多台,但是我们只需要在要调整大小的云主机所在的计算节点和其他的另外一台或多台计算几点上操作就行,并不是要求所有的计算节点都要操作(全部计算节点都操作也是可以的)

将nova账号的shell类型改为/bin/bash,即可以使用nova账号登陆

[root@linux-node1 ~]# cat /etc/passwd|grep nova

nova:x:162:162:OpenStack Nova Daemons:/var/lib/nova:/bin/bash

然后在nova账号下产生公私钥

[root@linux-node2 ~]# su - nova

Last login: Thu Nov 17 17:32:54 CST 2016 from linux-node2.openstack on pts/11

-bash-4.2$ ssh-keygen -t rsa

-bash-4.2$ pwd

/var/lib/nova

-bash-4.2$ cd .ssh/

-bash-4.2$ ls

id_rsa id_rsa.pub

将id_rsa.pub拷贝为authorized_keys

-bash-4.2$ cp id_rsa.pub authorized_keys

然后将id_rsa.pub公钥内容拷贝到其他相关迁移云主机的计算节点上的/var/lib/nova/.ssh/authorized_keys文件内,同时也要讲对方的公钥内容拷贝过来,做成双向信任关系(即双方在nova账号下ssh登陆时都不需要输入密码)

同时,还要在各计算节点上做nova和root账号的双向信任关系。

修改权限

[root@linux-node1 ~]# cd /var/lib/nova/.ssh/

[root@linux-node1 .ssh]# ll

total 16

-rw-------. 1 nova nova 816 Nov 17 17:32 authorized_keys

-rw-------. 1 nova nova 1679 Nov 17 17:12 id_rsa

-rw-r--r--. 1 nova nova 408 Nov 17 17:12 id_rsa.pub

修改sudo权限

[root@linux-node1 ~]# visudo

.....

nova ALL=(ALL) NOPASSWD: ALL

最后测试nova账号间的信任连接,确认ssh无密码连接!

5)接下来登陆dashboard界面,在线调整云主机的大小:

完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小_linux_03

 选择目标flavor 

完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小_云主机_04

点击确认修改尺寸 

完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小_bash_05

待调整后,再查询虚拟机新的大小规格,就会发现已经更新了。 


*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************