调整/扩展OpenStack实例或虚拟机的大小其实很简单,OpenStack Compute是按需提供虚拟机的中央组件,它使Sysadmins可以创建具有特定硬件规格(Ram、CPU和磁盘空间)的实例。在OpenStack中,每个创建的实例都有一种风格(资源模板),它可以确定实例的大小和容量,还可以指定辅助临时存储、交换磁盘、限制使用的元数据或特殊项目访问,必须定义这些额外的属性以存储所需的值。
具体操作
先使用以下命令从命令行中检查:
$ openstack flavor list
教你调整或扩展OpenStack实例/虚拟机的大小
作为OpenStack管理员,你很可能会遇到必须根据新兴的计算需求升级或降级服务器的情况,例如,你部署一台具有2GB Ram的服务器,并希望将其升级到4GB Ram。
我有一个在以下硬件规格的OpenStack Stein平台上运行的Debian 10服务器(参考:安装Debian 10 Buster的方法):
$ openstack server show deb10
教你调整或扩展OpenStack实例/虚拟机的大小
该服务器具有2GB的RAM和20GB的根磁盘,定义此资源的方式为m1.small,让我们用4GB RAM和40GB磁盘空间进行升级。
对于此任务,我们使用openstack server resize命令,这会将服务器扩展到新的风格,这是通过创建新服务器并将原始磁盘的内容复制到新服务器中来实现的:
$ openstack server resize --flavor m1.medium deb10
No valid host was found. No valid host found for resize (HTTP 400) (Request-ID: req-b1c22b58-cb3b-4869-80dd-29b300459f5b)
如何解决未找到有效的主机,找不到有效的主机来调整大小
在第一次调整大小的尝试中,我收到一条错误消息“No valid host was found. No valid host found for resize”,这是因为在我的设置中,我有一台计算主机,要解决此问题,请在nova配置文件中将allow_resize_to_same_host参数设置为true:
$ sudo vi /etc/nova/nova.conf
将行添加到[DEFAULT]部分,如下:
[DEFAULT] allow_resize_to_same_host = True state_path = /var/lib/nova enabled_apis = osapi_compute,metadata log_dir = /var/log/nova use_neutron = True linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver vif_plugging_is_fatal = True vif_plugging_timeout = 300 resume_guests_state_on_host_boot = True
可以添加相同的设置:
sudo openstack-config –set /etc/nova/nova.conf DEFAULT allow_resize_to_same_host True
显示设置的值:
$ openstack-config –get /etc/nova/nova.conf DEFAULT allow_resize_to_same_host
True
重新启动OpenStack Nova服务:
for service in compute api scheduler; do sudo systemctl restart openstack-nova-${service}.service done
重试实例大小调整:
openstack server resize –flavor m1.medium deb10
第一个是执行调整大小,第二个是确认(验证)成功并释放旧服务器,或者声明还原以释放新服务器并重新启动旧服务器。
确认服务器调整大小已完成:
openstack server resize --confirm deb10
如果要在调整大小之前恢复服务器状态,请使用:
openstack server resize --revert deb10
通过Horizon UI调整OpenStack实例的大小
对于UI调整大小,请导航至“项目”>“计算”>“实例”>“实例名称”>“调整实例大小”(Project > Compute > Instances >Instancename > Resize Instance):
教你调整或扩展OpenStack实例/虚拟机的大小
选择一种新风格,然后单击调整大小按钮(Resize):
教你调整或扩展OpenStack实例/虚拟机的大小
让我们确认更改:
$ openstack server show deb10
教你调整或扩展OpenStack实例/虚拟机的大小
我们可以确认风格已更改为m1.medium,并且OS-EXT-STS:vm_state设置为active,在VM终端上可以看到相同的结果,运行free -h、lscpu、lsblk,如下:
教你调整或扩展OpenStack实例/虚拟机的大小
至此,操作成功并全部完成了。