如何调整OpenStack实例/虚拟机的大小
调整大小/成长openstack实例或者虚拟机的大小是多么容易?
OpenStack Compute是提供根据需求的虚拟机的中央组件。
它使Sysadmins能够创建具有特定硬件规范的实例 - RAM,CPU和磁盘空间。
在OpenStack中,每个创建的实例都有一种风格(资源模板),它决定了实例的大小和容量。
Flavors还可以指定二次暂时存储,交换磁盘,元数据来限制使用,或者特殊项目访问。
必须定义这些额外的属性以存储所需的值。
我们可以使用命令从命令行检查可用的flavor:
$openstack flavor list +----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+-----------+-------+------+-----------+-------+-----------+ | 0 | m1.tiny | 1024 | 10 | 0 | 1 | True | | 1 | m1.small | 2048 | 20 | 0 | 1 | True | | 2 | m1.medium | 4096 | 20 | 0 | 2 | True | | 3 | m1.large | 8192 | 40 | 0 | 4 | True | | 4 | m1.xlarge | 16384 | 40 | 0 | 4 | True | +----+-----------+-------+------+-----------+-------+-----------+
作为OpenStack管理员,我们很可能会遇到基于新兴计算需求的服务器升级或者降级服务器的方案。
例如,我们可以使用2GB的RAM部署服务器,并希望将其升级为4GB的RAM。
我有一个Debian 10服务器在OpenStack Stein平台上运行,具有以下硬件规格。
$openstack server show deb10 +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | server1.theitroad.com | | OS-EXT-SRV-ATTR:hypervisor_hostname | server1.theitroad.com | | OS-EXT-SRV-ATTR:instance_name | instance-00000024 | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | OS-SRV-USG:launched_at | 2019-09-17T16:34:03.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | private=10.10.1.104 | | config_drive | | | created | 2019-09-17T16:33:58Z | | flavor | m1.small (1) | | hostId | da0a05ef20a03e97f301563551bab9b669ef04adbce232d941519946 | | id | 04ed473d-c889-40c2-9204-3a4544e419dc | | image | Debian-10 (f0ac705b-ee73-4de8-95f7-4e06569f0f5c) | | key_name | mykey1 | | name | deb10 | | progress | 0 | | project_id | 06bcc3c56ab1489282b65681e782d7f6 | | properties | | | security_groups | name='default' | | status | ACTIVE | | updated | 2019-09-17T16:34:57Z | | user_id | 336acbb7421f47f8be4891eabf0c9cc8 | | volumes_attached | | +-------------------------------------+----------------------------------------------------------+
此服务器具有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)
如何解决如何解决任何有效的主机。找不到调整大小的有效主张
在First调整大小试验中,我收到错误消息"未找到有效的主机。
找不到调整大小的有效主机"。
这是因为在我的设置中我有一个计算主机。
解决这个问题,设置 allow_resize_to_same_host
参数到 true
在Nova配置文件中。
$sudo vi /etc/nova/nova.conf
将行添加到[默认]部分。
[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
从Horizo n UI调整OpenStack实例大小
对于UI调整大小导航到Project> Compute>实例> InstanceName> Resize实例。
选择新的味道,然后单击"调整大小"按钮。
让我们确认更改。
$openstack server show deb10 +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | server1.theitroad.com | | OS-EXT-SRV-ATTR:hypervisor_hostname | server1.theitroad.com | | OS-EXT-SRV-ATTR:instance_name | instance-00000024 | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | OS-SRV-USG:launched_at | 2019-09-17T17:24:01.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | private=10.10.1.104 | | config_drive | | | created | 2019-09-17T16:33:58Z | | flavor | m1.medium (2) | | hostId | da0a05ef20a03e97f301563551bab9b669ef04adbce232d941519946 | | id | 04ed473d-c889-40c2-9204-3a4544e419dc | | image | Debian-10 (f0ac705b-ee73-4de8-95f7-4e06569f0f5c) | | key_name | mykey1 | | name | deb10 | | progress | 0 | | project_id | 06bcc3c56ab1489282b65681e782d7f6 | | properties | | | security_groups | name='default' | | status | VERIFY_RESIZE | | updated | 2019-09-17T17:24:02Z | | user_id | 336acbb7421f47f8be4891eabf0c9cc8 | | volumes_attached | | +-------------------------------------+----------------------------------------------------------+
我们可以确认风味已更改为M1.medium和OS-EXT-STS:VM_STATE设置为Active。
在VM终端上可以看出相同的相同。
Hyman@theitroad:~$free -h total used free shared buff/cache available Mem: 3.9Gi 50Mi 3.7Gi 6.0Mi 80Mi 3.6Gi Swap: 4.0Gi 0B 4.0Gi Hyman@theitroad:~$lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 39 bits physical, 48 bits virtual CPU(s): 2 ... $lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 254:0 0 20G 0 disk └─vda1 254:1 0 20G 0 part / vdb 254:16 0 4G 0 disk [SWAP]