虛擬機器遷移原理

2021-10-12 01:12:12 字數 1031 閱讀 6992

我們常常遇到需要遷移虛擬機器的問題,比如需要維護某台裝置,會將裝置上的一切應用遷移到另一台裝置。但是如何將虛擬機器進行遷移呢?好比說,虛擬機器中正在執行乙個程式,這個程式有源源不斷的資料訪問,怎麼使得在不影響這些訪問的情況下把虛擬機器遷移到領一台伺服器上呢?

尤其是當遠端遷移的時候,怎麼在虛擬機器不崩潰的情況下遷移走所有的狀態?

記憶體是最難處理的,因為它一直在變化。記憶體實時讀寫,導致我們沒有辦法擷取某一時刻對記憶體進行拷貝。這就形成了兩種處理方法:

pre-copy

將當前時刻所有的記憶體狀態複製併發送到遠端伺服器,先不管實時更新的記憶體狀態;

將新時刻的已改變的記憶體複製併發送到遠端伺服器:

(1).vmm會對所有的頁進行寫保護,當有資料改變時,標記該頁為「贓頁」;

(2).vmm將所有「贓頁」拷貝進緩衝區,將緩衝區通過網路傳送到遠端伺服器;

(3). 由於相關聯的記憶體的區域性性,贓頁的數目很小,先設為dt(

m)

d_dt

(m)​

,t為時刻,m為記憶體大小

(4).要求傳送記憶體的時間ti=

t(dt

i−1)

≤ti−

1t_i = t(d_})\leq t_

ti​=t(

dti−

1​​)

≤ti−

1​重複步驟2,直到dti

d_}dt

i​​足夠小

(1).決定於可容忍的宕機時間

(2).遷移10mb的頁僅僅需要宕機幾毫秒

如果贓頁太多,到達了閾值,停止虛擬機器,複製剩餘的贓頁,vcpu和記憶體狀態

遠端重啟虛擬機器。

這樣的話,只要宕機時間小於客戶端的網路超時時間(通常設定為10s),就可以不丟失訪問資料。

post-copy

先將vcpu狀態複製到遠端主機

虛擬機器操作將會導致頁錯誤

一旦遠端主機可以被訪問,直接將錯誤頁拷貝到遠端主機

優點:新伺服器可以直接啟動

缺點:剩餘頁將會在原主機儲存很久,原主機的虛擬機器是停止的,但是記憶體仍在讀取資料。

KVM虛擬機器遷移原理分析

kvm虛擬機器在不同主機之間的遷移,是個複雜的問題,有非常多的解決方案,但是不同的解決方案都有其優點和缺點,下面來分析下當前幾種可用的kvm虛擬機器遷移的方案。1.虛擬機器遷移過程中資料的傳輸 磁碟映象和記憶體資料 通常有兩種常用的資料傳輸方式 基於hypervisor的傳輸機制,即通過host之間...

虛擬機器的遷移

v2v 遷移是在虛擬機器之間移動作業系統和資料,照顧主機級別的差異和處理不同的虛擬硬體。虛擬機器從乙個物理機上的 vmm 遷移到另乙個物理機的 vmm,這兩個 vmm 的型別可以相同,也可以不同。如 vmware 遷移到 kvm,kvm 遷移到 kvm。可以通過多種方式將虛擬機器從乙個 vm hos...

虛擬機器的遷移

虛擬機器的遷移 冷遷移 靜態遷移 伺服器需要關閉 kvm01 192.168.1.100 kvm02 192.168.1.200 兩台機器防火牆全部關閉,禁用selinux root localhost lsmod grep kvm 檢視是否支援kvm root localhost systemct...