kvm遷移


一、遷移簡介

遷移:
      系統的遷移是指把源主機上的操作系統和應用程序移動到目的主機,並且能夠在目的主機上正常運行。在沒有虛擬機的時代,物理機之間的遷移依靠的是系統備份和恢復技術。在源主機上實時備份操作系統和應用程序的狀態,然后把存儲介質連接到目標主機上,最后在目標主機上恢復系統。隨着虛擬機技術的發展,系統的遷移更加靈活和多樣化。

最終我們遷移的目的就是:
    簡化系統維護管理
    高系統負載均衡
    增強系統錯誤容忍度
    優化系統電源管理

二、熱遷移 ---Live Migration
KVM 虛擬機的熱遷移 ---Live Migration:

      服務器虛擬化技術是當前的熱點,而虛擬機的“熱遷移( Live Migration )”技術則是虛擬化技術當中的熱點。

熱遷移(又叫動態遷移、實時遷移),即虛擬機保存( save ) / 恢復 (restore) :將整個虛擬機的運行狀態完整保存下來,同時可以快速的恢復到原有硬件平台甚至是不同硬件平台上。恢復以后,虛擬機仍舊平滑運行,用戶不會察覺到任何差異。

遷移的種類:
P2P :物理機之間的遷移
V2P :虛擬機遷到物理機
P2V :物理機遷到虛擬機
V2V :虛擬機遷到虛擬機

三、熱遷移的應用

1. 虛擬機的熱遷移技術最初是被用於雙機容錯或者負載均衡:當宿主機出現軟硬件故障導致服務異常時,虛擬機可漂移到另外主機上,或者在集群中依據工作負載量的大小,選擇更換宿主機與否來保證自身良好的服務提供性。

2. 系統硬件維護:當前很多操作系統都能夠穩定支持 7×24 運行,但是硬件卻需要定期的進行維護。如果使用虛擬機的動態遷移技術,將虛擬機從需要維護的物理機器遷移到另外一主器,等維護完成后,在將其遷回到原來的物理機器。所有的系統服務和應用程序在遷移 & 恢復后仍舊正常運行,用戶不會察覺到由於硬件維護造成的中斷。最終實現了我們服務不受硬件維護干擾的 7*24 小時的工作願望。

3. 數據庫備份:對於一些大型、關鍵的數據庫應用,備份是一項重要但復雜的工作。虛擬機的保存/ 恢復可以將數據庫運行在虛擬機中,如需備份就保存虛擬機,這樣數據庫中的所有數據、狀態都做了備份。如果數據庫崩潰了,就可以通過恢復虛擬機來恢復整個數據庫。

4. 環境重現:進行性能測試或程序調試時,都需要重現當時復雜龐大並且與實時完全一致的網絡環境 , 不僅僅是重啟、配置軟件,而且常常需要一定的運行時間。我們可以將各服務安裝到獨立的各個虛擬機,然后利用各個獨立虛擬機部署我們所需的工作環境,可以大大縮短環境重現時間。

5. 計算機共享: 在一些公共場合用戶需要共享計算機,但是由於不同的系統配置和軟件需要花費大量的時間來配置和恢復。這時使用虛擬機的保存 /恢復可以很好地解決這個問題。或者也可以,在物理機上運行多個邏輯虛擬機幫助我們分配給每一個需要者一個獨立,安全,穩定的環境。當因為宿主機出現問題影響虛擬機使用時,我們可以讓該虛擬機漂移到其他宿主機以此來保持正常工作。

 

四、熱遷移的優勢
1. 首先是可伸縮性比較強, IT 管理者可以在合理時間段讓運行某些關鍵業務的服務器適當減少工作量,以便進行更新操作系統,給應用程序打補丁等。而到了服務高峰期,又可以彈性地進行大負載量的運算。虛擬機遷移過程完全透明,幾乎不影響使用。


2. 其次,現在的數據中心都追求環保節能, 工作量負載大的應用程序必然會令服務器能耗增加,有了虛擬機熱遷移技術,當一台物理服務器負載過大時,系統管理員可以將其上面的虛擬機遷移到其他服務器,可有效減低數據中心服務器的總體能耗,再通過冷卻系統將數據中心的溫度保持在正常水平。

 

五、熱遷移的局限

進行虛擬機的熱遷移也有不少的限制。例如, 
      VMotion 在進行遷移之前,管理軟件會檢測目標服務器的 X86 架構是否與原服務器兼容。包括存儲設備以及處理器,虛擬機必須放到共享的存儲里CPU 的類型也要一樣,不僅不能一個是英特爾,一個是 AMD ,甚至相同廠商不同產品線的CPU 也不行,比如英特爾至強和奔騰

 

六、衡量虛擬機遷移的效率

 1. 整體遷移時間:從源主機中遷移操作開始到目的主機上客戶機服務處於不可用狀態的時間,此時源主機上客戶機已經暫停服務,目的主機上的客戶機還未恢復服務。

2. 服務器停機時間:在遷移過程中,源主機和目的主機上的客戶機都處於不可用狀態的時間,此時源主機上客戶機已暫停,目的目的主機上客戶還未恢
復服務。

3. 對服務的性能影響:不僅包括遷移后的客戶機中應用程序的性能與遷移前相對比是否有所降低,還包括遷移后對目的主機上的其他服務的性能影響。

 

Kvm 動態遷移,也有如下幾個建議和注意事項


1. 源宿主機和目的宿主機直接盡量用網絡共享的存儲系統來保存客戶機磁盤鏡像。例如 NFS , ISCSI , Glusterfs 等。

2. 為了提高動態遷移的成功率,盡量在同類型 cpu的主機上面進行動態遷移,盡管 kvm 動態遷移也支持從 Intel 平台遷移到 amd 平台。  但,從安全性,穩定度考慮不建議這樣去操作!!!

3. 64 位的客戶機只能運行在 64 宿主機之間的遷移,而 32 位客戶機可以在 32 宿主機和 64 位宿主機之間遷移

4. 在進行動態遷移時,被遷移客戶機的名稱是唯一的,在目的宿主機上不能有與源宿主機被遷移客戶機同名的客戶機存在。

5. 目的宿主機和源宿主機的軟件盡可能的相同。也就是同為 Vmware , KVM , Xen 等。

 

遷移的類型:靜態遷移和動態遷移

遷移虛擬機的方式有兩種:一種是動態遷移,一種是靜態遷移。

靜態遷移

靜態遷移:也叫做常規遷移、離線遷移(Offline Migration)。就是在虛擬機關機或暫停的情況下從一台物理機遷移到另一台物理機。因為虛擬機的文件系統建立在虛擬機鏡像上面,所以在虛擬機關機的情況下,只需要簡單的遷移虛擬機鏡像和相應的配置文件到另外一台物理主機上;如果需要保存虛擬機遷移之前的狀態,在遷移之前將虛擬機暫停,然后拷貝狀態至目的主機,最后在目的主機重建虛擬機狀態,恢復執行。這種方式的遷移過程需要顯式的停止虛擬機的運行。從用戶角度看,有明確的一段停機時間,虛擬機上的服務不可用。這種遷移方式簡單易行,適用於對服務可用性要求不嚴格的場合。

動態遷移

動態遷移(Live Migration):也叫在線遷移(Online Migration)。就是在保證虛擬機上服務正常運行的同時,將一個虛擬機系統從一個物理主機移動到另一個物理主機的過程。該過程不會對最終用戶造成明顯的影響,從而使得管理員能夠在不影響用戶正常使用的情況下,對物理服務器進行離線維修或者升級。與靜態遷移不同的是,為了保證遷移過程中虛擬機服務的可用,遷移過程僅有非常短暫的停機時間。遷移的前面階段,服務在源主機的虛擬機上運行,當遷移進行到一定階段,目的主機已經具備了運行虛擬機系統的必須資源,經過一個非常短暫的切換,源主機將控制權轉移到目的主機,虛擬機系統在目的主機上繼續運行。對於虛擬機服務本身而言,由於切換的時間非常短暫,用戶感覺不到服務的中斷,因而遷移過程對用戶是透明的。動態遷移適用於對虛擬機服務可用性要求很高的場合。

動態遷移需要將原有的虛擬機鏡像放在采用 SAN(storage area network)或 NAS(network-attached storage)之類的集中式共享外存設備,這樣遷移的時候,不是遷移整個硬盤鏡象,而是遷移內存的信息.所以遷移起來,速度比較快,停頓時間少。

動態遷移實際上是把虛擬機的配置封裝在一個文件中,然后通過高速網絡,把虛擬機配置和內存運行狀態從一台物理機迅速傳送到另外一台物理機上,期間虛擬機一直保持運行狀態。現有技術條件下,大多虛擬機軟件如 VMware、Hyper-V、Xen 進行動態遷移都需要共享存儲的支持。典型的共享存儲包括 NFS 和 SMB/CIFS 協議的網絡文件系統,或者通過 iSCSI 連接到 SAN 網絡。選用哪一種網絡文件系統,需要根據具體情況而定。本文的實驗采用了 NFS 文件系統作為源主機和目的主機之間的共享存儲。

 

 

 

v2v實驗

准備工作:
1)兩台宿主機,一台做服務端,另一台做客戶端

2)關閉防火牆

 

服務端工作:

第一步:安裝組件

[root@localhost ~]# yum -y install rpcbind nfs-utils

 

二:配置域名解析

root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.253.165 aa      165為服務端地址
192.168.253.160 bb

 

三:創建一個共享目錄

mkdir /haha

 

四:更改nfs配置文件

將/haha目錄共享給所有ip,有讀寫和同步權限

[root@localhost ~]# cat /etc/exports
/haha *(rw,sync)

 

五:發送密鑰

[root@localhost ~]# ssh-keygen
[root@localhost ~]# ssh-copy-id 192.168.253.160

 

六:重啟服務

[root@localhost ~]# systemctl restart nfs 
[root@localhost ~]# systemctl restart rpcbind

 

七:將xiao這個虛擬機的配置文件和磁盤鏡像復制到共享目錄里

[root@localhost ~]# cp /var/lib/libvirt/images/xiao.qcow2 /haha
[root@localhost ~]# cp /etc/libvirt/qemu/xiao.xml /haha

 

八:更改xiao.xml的配置文件的device路徑

<devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/haha/xiao.qcow2'/>  

 

九:更改/haha目錄的權限

[root@localhost haha]# chmod -R 777 /haha/

 

十:啟動xiao虛擬機

 virsh start xiao

 

客戶端工作:

一:下載nfs-utils組件

[root@localhost ~]# yum -y install nfs-utils

 

二:查看服務端發的共享目錄

[root@localhost ~]# showmount -e 192.168.253.165
Export list for 192.168.253.165:
/haha *

 

三:創建目錄當作共享目錄的掛載點

[root@localhost ~]# mkdir /haha
[root@localhost ~]# mount -t nfs 192.168.253.165:/haha /haha

 

四:給改hostname主機名

hostname  bb              #臨時改變hostname,這是因為熱遷移的宿主機主機名不能相同

 

然后去到圖形化界面:

1)將兩台宿主機建立遠程連接

 

 2)將磁盤鏡像的原路徑改成之前配置文件更改的/haha/xiao.qcow2

 

 

3)開始進行熱遷移

 

 

libvirt 的一些報錯總結

出現Permission denied

error: internal error process exited while connecting to monitor: qemu-system-x86_64: -drive file=/home/d/shixun/vm/vdisk.img,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /home/d/shixun/vm/vdisk.img: Permission denied

解決方案:

更改/etc/libvirt/qemu.conf,取消下面兩行的注釋

user = "root" 

group = "root"

 

libvirtd無法重啟

這是因為qemu.conf或者libvirtd.conf等文件配置被更改或者程序被占用

查看運行進程

ps aux | grep libvirtd

 

然后嘗試恢復文件配置,執行:

service libvirtd restart

 

libvirtd的運行日志

在運行libvirtd的時候,我們需要獲得lbivirtd的運行信息.所以我們需要找到他的日志文件.一般情況下,它是在/var/log/libvirt/libvirtd.log路徑下.

可能在這個目錄下沒有發現這個的日志文件.那么就要配置一些libvitd的參數了.

編輯文件/etc/libvirt/libvirtd.conf

修改下面兩處:

設置日志級別   log_level = 1  指定日志輸出名稱   log_outputs="1:file:/var/log/libvirt/libvirtd.log"

 然后查看 tail  -f  /var/log/libvirt/libvirtd.log

 


免責聲明!

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



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