OpenStack虛擬機器的Live Migration和調整大小
OpenStack icehouse虛擬機器的Live Migration和調整大小
一、雲機的動態遷移
OpenStack雲平臺基本部署完成後,為了實現系統的高可用和負載均衡等,接下來就可以開始部署虛擬機器的動態遷移工作,OpenStack虛擬機器的動態遷移方式有三種,分別為:
-Blocklive migration without shared storage(基於塊的動態遷移)
-Sharedstorage based live migration(基於共享儲存的動態遷移)
-Volumebacked VM live migration(基於卷後端的動態遷移)
前一種塊遷移,不需要共享儲存區,遷移時不僅要遷移虛擬機器的記憶體狀態,同時還要遷移虛擬機器的映象檔案,所以遷移時間比較長;後倆種遷移方式都是基於共享儲存塊的遷移方式,只是基於卷後端動態遷移的虛擬機器是從邏輯卷引導的,倆者的遷移操作幾乎差不多,遷移時只需要遷移虛擬的記憶體狀態即可,所以遷移速度會比基於塊的遷移方式快的多,一般在幾秒內就能完成遷移工作,可靠性很高。下面要講的就是基於共享塊的動態遷移方式的部署:
配置方案:
既然是基於共享儲存區的遷移方式,當然,遷移前提是有共享儲存區,虛擬機器的啟動映象應該存放在共享儲存區且可以正常啟動,我們使用的是Glustefs作為計算節點虛擬機器的共享儲存區,glusterfs的配置方式請參考相應的glusterfs配置安裝文件,安裝完成後,掛載共享區,再編輯計算節點的配置檔案。
1、修改nova.conf檔案,Icehouse版本已經不需要做這一步了:
新增:
live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_UNSAFE
修改:
vncserver_listen=0.0.0.0
2、修改計算節點的hosts解析檔案,參與的計算節點hostname都能ping通,同時注意:auth_tcp=none 是個漏洞,遷移完成後應該註釋掉該行,解析檔案格式如下:
10.9.32.8 R420-3.kedard.com R420-3 (Havana版本)
10.9.32.8 R420-3 (Icehouse版本)
3、修改計算節點上/etc/libvirt/libvirtd.conf:
before : #listen_tls = 0
after : listen_tls = 0
before : #listen_tcp = 1
after : listen_tcp = 1
add: auth_tcp = "none"
4、調整 /etc/default/libvirt-bin配置檔案:
before :libvirtd_opts="-d"
after :libvirtd_opts="-l"
5、重啟libvirt-bin服務:
service libvirt-bin restart
6、檢視libvirt-bin是否按要求啟動:
ps -ef | grep libvirt
root 1145 1 0 Nov27 ? 00:00:03/usr/sbin/libvirtd -d –l
7、對於Icehouse版本,還需要修改CPU模式,預設模式下不允許遷移,方法如下:
修改:/usr/share/libvirt/cpu_map.xml檔案,註釋掉以下幾行:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<!-- <feature name='invtsc' migratable='no'>
<cpuid function='0x80000007'edx='0x00000100'/>
</feature> -->
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8、重啟計算節點上nova服務;
service nova-compute restart
備註:
1、由於雲機之前沒有配置線上遷移,在遷移虛機之前,需要重啟虛機。
2、如果雲機已經掛載了volume磁碟卷,遷移前應該先行解除安裝,卷遷移除外。
二、調整雲機大小
調整雲機大小本質上也是虛擬機器遷移,不過要實現雲機大小可調整的話,還需要在遷移的基礎上再修改如下倆點:
1、 計算節點的root使用者之間能免密碼登入;
2、 計算節點的nova使用者之間能免密碼登入;