前面提到过openstack环境部署及创建虚拟机的完整过程,然后有时候会发现创建的虚拟机规格太小,满足不了业务需求;亦或是虚拟机规格太大,容易造成资源浪费。
于是就有了在线拉伸虚拟机规格的需求。所以,今天这里介绍下在openstack里创建vm后,怎么在线调整虚拟机(云主机)的大小?

注意一点:
openstack的虚拟机在线调整大小的原理:
其实就相当于做了一个云主机在不同宿主机(计算节点)之间的迁移,所以前提是至少需要有两个计算节点。
如果是单机部署的openstack(即控制节点和计算节点都在一台机器上),有且只有一个计算节点,那么是无法完成在线调整虚拟机大小的。

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

如上图中的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界面,在线调整云主机的大小:

选择目标flavor

点击确认修改尺寸

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

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

  1. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip

    之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...

  2. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  3. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

    在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...

  4. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(5)--问题解决

    一.[root@openstack-server ~]# nova listERROR (CommandError): You must provide a username or user id v ...

  6. 《4》CentOS7.0+OpenStack+kvm云平台部署—配置Nova

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  7. 《5》CentOS7.0+OpenStack+kvm云平台的部署—组态Horizon

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  8. 《3》CentOS7.0+OpenStack+kvm云平台部署—配置Glance

    感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免,欢迎指正. 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  9. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置

    1.OpenStack示例的架构介绍 1.1 各节点介绍 (1)控制节点(controller)控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板. ...

随机推荐

  1. Android studio 修改包名 和 版本号

  2. 你真的了解UIGestureRecognizer吗?

    一:首先查看一下关于UIGestureRecognizer的定义 //当前手势状态 typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { //尚 ...

  3. 打印frame

    NSLog(@"%@",NSStringFromCGRect(switch.frame)); 或者 CFShow(NSStringFromCGRect(switch.frame)) ...

  4. iOS iOS9.0 的CoreLocation定位

    一.简介 iOS9.0如果当前处于前台授权状态,默认是不可以后台获取用户位置. 如果在前台授权下,让其能获取到后台定位,该怎么办 可以设置以下属性为YES,就可以继续获取后台位置,但是会出现蓝条 使用 ...

  5. 最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨。

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  6. 入CTF坑必不可少的地方-保持更新

    0x00 前言 没有交易,没有买卖,没有排名,纯属分享:p 0x01 CTF介绍 CTF领域指南CTF介绍大全CTF赛事预告 0x02 CTF练习 BIN:reversingpwnableexploi ...

  7. ORACLE手工删除数据库

    很多人习惯用ORACLE的DBCA工具创建.删除数据库,这里总结一下手工删除数据库实验的步骤,文中大量参考了乐沙弥的手动删除ORACLE数据库这篇博客的内容,当然还有Oracle官方相关文档.此处实验 ...

  8. pentaho cde 选择性的显示多列数据

    在业务需求中,有时候会有这种需要,就是查出来可多列数据,而我只想画出来其中的一列或者说某一列,而pentaho会默认画出查出来的所有数据,而不断的更改数据源又太麻烦,这时就要用到resders方法了. ...

  9. Open Auth辅助库(使用ImitateLogin实现登录)

    网络上越来越多的公司进行着自己的平台化策略,其中绝大多数都已Web API的方式对外提供服务,为了方便的使用这些服务,你不得不引用许多相关的类库,但是API的本质其实仅仅是一些约定的网络请求,我们大多 ...

  10. python基础(六)循环

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 循环用于重复执行一些程序块.从上一讲的选择结构,我们已经看到了如何用缩进来表示程序 ...