1.openstack 相关优化:
1.1:配置虚拟机自启动:
控制端和计算节点的/etc/nova/nova.conf的[DEFAULT]进行以下配置:
resume_guests_state_on_host_boot=true
1.2:配置CPU 超限使用:
默认为16,即允许开启16倍于物理CPU的虚拟CPU个数。
cpu_allocation_ratio=16
1.3:配置内存超限使用:
配置允许1.5倍于物理内存的虚拟内存
ram_allocation_ratio=1.5
1.4:配置硬盘超限使用:
磁盘尽量不要超限,可能会导致数据出现丢失
disk_allocation_ratio=1.0
1.5:配置保留磁盘空间:
即会预留一部分磁盘空间给系统使用
reserved_host_disk_mb=20480
1.6:配置预留内存给系统使用:
预留一定的内存给系统使用
reserved_host_memory_mb=4096
2.配置虚拟机类型动态调整:
在有些时候,创建完成的虚拟机因业务需求需要变更内存或CPU或磁盘,因此需要配置允许后期类型调整。
allow_resize_to_same_host=true
baremetal_enabled_filters=RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ExactRamFilter,ExactDiskFilter,ExactCoreFilter
改完这些配置后重启控制节点和计算节点的nova服务
控制节点
systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
计算节点
systemctl restart libvirtd.service openstack-nova-compute.service
2.1:各计算节点配置nova用户:
将shell改为/bin/bash
# usermod nova -s /bin/bash
2.2:配置nova登录密码:
# echo xxxx | passwd --stdin nova
2.3:切换至nova用户获取秘钥:
[root@node3 ~]# su - nova
-bash-4.2$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
或者直接ssh-keygen并连续敲空格
-bash-4.2$ ssh-keygen
然后将秘钥相互copy至各个计算节点(包括自身所在的节点):
-bash-4.2$ ssh-copy-id -i .ssh/id_dsa.pub nova@x.x.x.x
或者直接
-bash-4.2$ ssh-copy-id x.x.x.x
-bash-4.2$ ssh 10.20.119.25 #必须确认可以正常登录到对对端节点
2.4:执行并验证虚拟机类型变更:
2.4.1:选择要调整的虚拟机:
选择好虚拟机之后点击调整大小


2.4.2:调整大小:


2.4.3:虚拟机类型调整中:




2.4.4:查看同步日志:
[root@
node3 ~]# tail -f /var/log/nova/nova-compute.log
2020-01-01 17:18:34.340 3724 INFO nova.virt.libvirt.driver [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Instance shutdown successfully after 4 seconds.
2020-01-01 17:18:34.346 3724 INFO nova.virt.libvirt.driver [-] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Instance destroyed successfully.
2020-01-01 17:18:36.601 3724 WARNING nova.compute.manager [req-ba983e3c-ddc4-4987-a5ce-6ffd165bd592 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-unplugged-f736c917-db6f-4141-adcc-444b60cbe37b for instance with vm_state active and task_state resize_migrating.
2020-01-01 17:18:36.824 3724 WARNING nova.compute.manager [req-b3f273b9-1ca9-413a-a2a0-431dfa8f6405 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-unplugged-a1677f9b-5b28-4c1c-ab9a-4b9cb15796c2 for instance with vm_state active and task_state resize_migrating.
2020-01-01 17:18:44.445 3724 WARNING nova.compute.manager [req-b76c94cd-9865-4d23-8536-c05b5c309bdb 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-plugged-f736c917-db6f-4141-adcc-444b60cbe37b for instance with vm_state resized and task_state None.
2020-01-01 17:18:46.501 3724 WARNING nova.compute.manager [req-f5c5ab62-75cb-4c65-8d48-9455ddd7bfc0 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-plugged-a1677f9b-5b28-4c1c-ab9a-4b9cb15796c2 for instance with vm_state resized and task_state None.
2020-01-01 17:18:48.959 3724 INFO nova.compute.manager [-] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0]
VM Stopped (Lifecycle Event)
[root@
node4 ~]# tail -n 100 /var/log/nova/nova-compute.log
2020-01-01 17:18:29.060 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Attempting claim on node node4: memory 2024 MB, disk 40 GB, vcpus 1 CPU
2020-01-01 17:18:29.060 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Total memory: 8191 MB, used: 3584.00 MB
2020-01-01 17:18:29.061 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] memory limit not specified, defaulting to unlimited
2020-01-01 17:18:29.061 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Total disk: 199 GB, used: 80.00 GB
2020-01-01 17:18:29.061 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] disk limit not specified, defaulting to unlimited
2020-01-01 17:18:29.062 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Total vcpu: 4 VCPU, used: 3.00 VCPU
2020-01-01 17:18:29.062 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] vcpu limit not specified, defaulting to unlimited
2020-01-01 17:18:29.063 3718 INFO nova.compute.claims [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Claim successful on node node4
2020-01-01 17:18:29.131 3718 INFO nova.compute.resource_tracker [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] Updating from migration 5061c6fe-bcab-405d-beb2-56e12f0ec9b0
2020-01-01 17:18:29.207 3718 INFO nova.compute.manager [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Migrating
2020-01-01 17:18:36.614 3718 WARNING nova.compute.manager [req-ba983e3c-ddc4-4987-a5ce-6ffd165bd592 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-unplugged-f736c917-db6f-4141-adcc-444b60cbe37b for instance with vm_state active and task_state resize_migrating.
2020-01-01 17:18:36.838 3718 WARNING nova.compute.manager [req-b3f273b9-1ca9-413a-a2a0-431dfa8f6405 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-unplugged-a1677f9b-5b28-4c1c-ab9a-4b9cb15796c2 for instance with vm_state active and task_state resize_migrating.
2020-01-01 17:18:37.794 3718 INFO nova.network.neutronv2.api [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Updating port a1677f9b-5b28-4c1c-ab9a-4b9cb15796c2 with attributes {'device_owner': u'compute:nova', 'binding:host_id': u'node4'}
2020-01-01 17:18:39.537 3718 INFO nova.network.neutronv2.api [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Updating port f736c917-db6f-4141-adcc-444b60cbe37b with attributes {'device_owner': u'compute:nova', 'binding:host_id': u'node4'}
2020-01-01 17:18:41.971 3718 INFO nova.virt.libvirt.driver [req-0a4e50ea-0611-4ece-8aba-cd3487245afe 51ffe09d0ed342f4bf4e443e454055cc 75aed7016c86445198356e78dddde4ba - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Creating image
2020-01-01 17:18:42.678 3718 INFO nova.compute.manager [req-8142550e-c66d-4ae7-8b7a-a9d521a3121e - - - - -] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] VM Resumed (Lifecycle Event)
2020-01-01 17:18:42.689 3718 INFO nova.virt.libvirt.driver [-] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Instance running successfully.
2020-01-01 17:18:42.785 3718 INFO nova.compute.manager [req-8142550e-c66d-4ae7-8b7a-a9d521a3121e - - - - -] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] During sync_power_state the instance has a pending task (resize_finish). Skip.
2020-01-01 17:18:42.786 3718 INFO nova.compute.manager [req-8142550e-c66d-4ae7-8b7a-a9d521a3121e - - - - -] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0]
VM Started (Lifecycle Event)
2020-01-01 17:18:44.465 3718 WARNING nova.compute.manager [req-b76c94cd-9865-4d23-8536-c05b5c309bdb 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-plugged-f736c917-db6f-4141-adcc-444b60cbe37b for instance with vm_state resized and task_state None.
2020-01-01 17:18:46.515 3718 WARNING nova.compute.manager [req-f5c5ab62-75cb-4c65-8d48-9455ddd7bfc0 0d8b8f757573495a95be11c4e458d0ad 15897818eb0a42a382b75bbeefb14983 - d84340dbe16341f48681b8ea3e22e6da d84340dbe16341f48681b8ea3e22e6da] [instance: 5061c6fe-bcab-405d-beb2-56e12f0ec9b0] Received unexpected event network-vif-plugged-a1677f9b-5b28-4c1c-ab9a-4b9cb15796c2 for instance with vm_state resized and task_state None.
2.4.5:确认大小调整:




2.4.6:验证调整大小后的虚拟机CPU:


2.4.7:验证内存:


我们发现上面的实验虚拟机已经从node3迁移到了node4
补充:热迁移操作




或者


确认迁移




我们看到云主机又从node4迁移回了node3
控制节点配置示例:
[root@node1 ~]# grep -v '^$\|^#' /etc/nova/nova.conf
[DEFAULT]
cpu_allocation_ratio=8
ram_allocation_ratio=2
disk_allocation_ratio=2
resume_guests_state_on_host_boot=true
reserved_host_disk_mb=20480
resume_guests_state_on_host_boot=true
baremetal_enabled_filters=RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ExactRamFilter,ExactDiskFilter,ExactCoreFilter
my_ip = 10.30.1.201
transport_url = rabbit://openstack:openstack@10.30.1.208
auth_strategy = keystone
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
[api]
[api_database]
connection = mysql+pymysql://nova:nova@10.30.1.208/nova_api
[barbican]
[cache]
[cells]
[cinder]
[compute]
[conductor]
[console]
[consoleauth]
[cors]
[crypto]
[database]
connection = mysql+pymysql://nova:nova@10.30.1.208/nova
[ephemeral_storage_encryption]
[filter_scheduler]
[glance]
api_servers = http://10.30.1.208:9292
[guestfs]
[healthcheck]
[hyperv]
[ironic]
[key_manager]
[keystone]
[keystone_authtoken]
auth_uri = http://10.30.1.208:5000
auth_url = http://10.30.1.208:35357
memcached_servers = 10.30.1.208:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova
[libvirt]
[matchmaker_redis]
[metrics]
[mks]
[neutron]
url = http://10.30.1.208:9696
auth_url = http://10.30.1.208:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = neutron
service_metadata_proxy = true
metadata_proxy_shared_secret = syscloud.cn
[notifications]
[osapi_v21]
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[pci]
[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://10.30.1.208:35357/v3
username = placement
password = placement
[quota]
[rdp]
[remote_debug]
[scheduler]
[serial_console]
[service_user]
[spice]
[trusted_computing]
[upgrade_levels]
[vendordata_dynamic_auth]
[vmware]
[vnc]
enabled = true
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[workarounds]
[wsgi]
[xenserver]
[xvp]
作者:Dexter_Wang 工作岗位:某互联网公司资深云计算与存储工程师 联系邮箱:993852246@qq.com