openstack高可用集群12-openstack相關優化和配置虛擬機類型動態調整(熱遷移)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM