女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]簡介:?虛擬機(jī)的遷移使資源配置更加靈活,尤其是在線遷移技術(shù),提高了虛擬服務(wù)器的可用性和可靠性。本文是虛擬機(jī)遷移技術(shù)漫談系列的第二部分,詳細(xì)介紹 KVM 虛擬機(jī)在物理主機(jī)之間的靜態(tài)遷移和在線遷移特性,而

簡介:?虛擬機(jī)的遷移使資源配置更加靈活,尤其是在線遷移技術(shù),提高了虛擬服務(wù)器的可用性和可靠性。本文是虛擬機(jī)遷移技術(shù)漫談系列的第二部分,詳細(xì)介紹 KVM 虛擬機(jī)在物理主機(jī)之間的靜態(tài)遷移和在線遷移特性,而且包括基于數(shù)據(jù)塊的在線遷移實現(xiàn)。

前言

虛擬機(jī)的遷移技術(shù)為服務(wù)器的虛擬化提供簡便的方法。目前流行的虛擬化產(chǎn)品 VMware,Xen,Hyper-V,KVM 都提供各自的遷移工具。其中 Linux 平臺上開源的虛擬化工具 KVM 發(fā)展迅速,基于 KVM 的虛擬機(jī)的遷移特性也日趨完善。本文全面介紹 KVM 虛擬機(jī)在不同的應(yīng)用環(huán)境下的靜態(tài)遷移(離線遷移)和動態(tài)遷移(在線遷移),并且在最新發(fā)布的 Suse Linux Enterprise Edition 11 SP1 上分別演示如何應(yīng)用 libvirt/virt-manager 圖形化工具和基于命令行的 qemu-kvm 工具進(jìn)行遷移操作。

V2V 虛擬機(jī)遷移的介紹

V2V 虛擬機(jī)的遷移是指在 VMM(Virtual Machine Monitor)上運(yùn)行的虛擬機(jī)系統(tǒng),能夠被轉(zhuǎn)移到其他物理主機(jī)上的 VMM 上運(yùn)行。VMM 對硬件資源進(jìn)行抽象和隔離,屏蔽了底層硬件細(xì)節(jié)。而遷移技術(shù)的出現(xiàn),使得操作系統(tǒng)能在不同的主機(jī)之間動態(tài)的轉(zhuǎn)移,進(jìn)一步解除軟,硬件資源之間的相關(guān)性。本系列的第一篇文章“虛擬機(jī)遷移技術(shù)漫談”中,介紹了 V2V 遷移的三種方式,本文將更加詳細(xì)的說明三種方式的不同和實現(xiàn)方法。

V2V 遷移方式的分類

靜態(tài)遷移

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

共享存儲的動態(tài)遷移

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

目前主流的動態(tài)遷移工具,VMware 的 VMotion,Citrix 的 XenMotion,他們都依賴于物理機(jī)之間采用 SAN(storage area network)或 NAS(network-attached storage)之類的集中式共享外存設(shè)備,因而在遷移時只需要進(jìn)行虛擬機(jī)系統(tǒng)內(nèi)存執(zhí)行狀態(tài)的遷移,從而獲得較好的遷移性能。


圖 1. 共享存儲的動態(tài)遷移示意圖


?

如圖 1 中所示的動態(tài)遷移,為了縮短遷移時間和服務(wù)中斷時間,源主機(jī)和目的主機(jī)共享了 SAN 存儲。這樣,動態(tài)遷移只需要考慮虛擬機(jī)系統(tǒng)內(nèi)存執(zhí)行狀態(tài)的遷移,從而獲得較好的性能。

本地存儲的動態(tài)遷移

動態(tài)遷移基于共享存儲設(shè)備,為的是加速遷移的過程,盡量減少宕機(jī)時間。但是在某些情況下需要進(jìn)行基于本地存儲的虛擬機(jī)的動態(tài)遷移,這就需要存儲塊動態(tài)遷移技術(shù),簡稱塊遷移。

比如某些服務(wù)器沒有使用 SAN 存儲,而且遷移的頻率很小,虛擬機(jī)上的服務(wù)對遷移時間的要求不嚴(yán)格,則可以使用存儲塊動態(tài)遷移技術(shù);另一方面,SAN 存儲的價格比較高,盡管 SAN 存儲能夠提高遷移性能和系統(tǒng)的穩(wěn)定性,對于中小企業(yè)僅僅為了加快遷移速度而配置昂貴的 SAN 存儲,性價比不高。

在集中式共享外部存儲的環(huán)境下,基于共享存儲的動態(tài)遷移技術(shù)無疑能夠工作得很好。但是,考慮到目前一些計算機(jī)集群并沒有采用共享式外存,而是各自獨立擁有本地外存的物理主機(jī)構(gòu)成?;诠蚕泶鎯Φ倪w移技術(shù)在這種場合下受到限制,虛擬機(jī)遷移到目的主機(jī)后,不能訪問其原有的外存設(shè)備,或者需要源主機(jī)為其外存訪問提供支持。

為了拓寬動態(tài)遷移技術(shù)的應(yīng)用范圍,有必要實現(xiàn)一個包括虛擬機(jī)外存遷移在內(nèi)的全系統(tǒng)動態(tài)遷移方案。使得在采用分散式本地存儲的計算機(jī)集群環(huán)境下,仍然能夠利用遷移技術(shù)轉(zhuǎn)移虛擬機(jī)環(huán)境,并且保證遷移過程中虛擬機(jī)系統(tǒng)服務(wù)的可用性。


圖 2. 本地存儲的動態(tài)遷移示意圖

?


相比較基于共享存儲的動態(tài)遷移,數(shù)據(jù)塊動態(tài)遷移的需要同時遷移虛擬機(jī)磁盤鏡像和虛擬機(jī)系統(tǒng)內(nèi)存狀態(tài),延長了遷移時間,在遷移性能上打了折扣。

KVM 虛擬機(jī)的管理工具

準(zhǔn)確來說,KVM 僅僅是 Linux 內(nèi)核的一個模塊。管理和創(chuàng)建完整的 KVM 虛擬機(jī),需要更多的輔助工具。

QEMU-KVM:在 Linux 系統(tǒng)中,首先我們可以用 modprobe 系統(tǒng)工具去加載 KVM 模塊,如果用 RPM 安裝 KVM 軟件包,系統(tǒng)會在啟動時自動加載模塊。加載了模塊后,才能進(jìn)一步通過其他工具創(chuàng)建虛擬機(jī)。但僅有 KVM 模塊是遠(yuǎn)遠(yuǎn)不夠的,因為用戶無法直接控制內(nèi)核模塊去做事情,還必須有一個用戶空間的工具。關(guān)于用戶空間的工具,KVM 的開發(fā)者選擇了已經(jīng)成型的開源虛擬化軟件 QEMU。QEMU 是一個強(qiáng)大的虛擬化軟件,它可以虛擬不同的 CPU 構(gòu)架。比如說在 x86 的 CPU 上虛擬一個 Power 的 CPU,并利用它編譯出可運(yùn)行在 Power 上的程序。KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 內(nèi)核模塊的用戶空間工具 QEMU-KVM。所以 Linux 發(fā)行版中分為 kernel 部分的 KVM 內(nèi)核模塊和 QEMU-KVM 工具。這就是 KVM 和 QEMU 的關(guān)系。

Libvirt、virsh、virt-manager:盡管 QEMU-KVM 工具可以創(chuàng)建和管理 KVM 虛擬機(jī),RedHat 為 KVM 開發(fā)了更多的輔助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt 是一套提供了多種語言接口的 API,為各種虛擬化工具提供一套方便、可靠的編程接口,不僅支持 KVM,而且支持 Xen 等其他虛擬機(jī)。使用 libvirt,你只需要通過 libvirt 提供的函數(shù)連接到 KVM 或 Xen 宿主機(jī),便可以用同樣的命令控制不同的虛擬機(jī)了。Libvirt 不僅提供了 API,還自帶一套基于文本的管理虛擬機(jī)的命令—— virsh,你可以通過使用 virsh 命令來使用 libvirt 的全部功能。但最終用戶更渴望的是圖形用戶界面,這就是 virt-manager。他是一套用 python 編寫的虛擬機(jī)管理圖形界面,用戶可以通過它直觀地操作不同的虛擬機(jī)。Virt-manager 就是利用 libvirt 的 API 實現(xiàn)的。

以上這些就是 Linux 系統(tǒng)上 KVM 虛擬化技術(shù)的大致架構(gòu)了。本文正是演示了如何使用這些工具實現(xiàn)了 KVM 虛擬機(jī)的遷移操作。

本文的實驗環(huán)境介紹

本文中的 KVM 虛擬機(jī)軟件基于 Novell 公司的 Suse Linux Enterprise Server 11 Service Pack 1 發(fā)行版。SLES11 SP1 發(fā)布于 2010 年 5 月 19 日,基于 Linux 內(nèi)核 2.6.32.12,包含了 kvm-0.12.3,libvirt-0.7.6,virt-manager-0.8.4,全面支持 KVM 虛擬機(jī)。本文中的物理服務(wù)器和外部共享存儲配置如下表:


表 1. 硬件配置

物理主機(jī)

硬件配置

Host OS

Host Name

IP Address

源主機(jī)?

Source Host

Xeon(R) E5506 x 4 core

MEM: 10GB

SLES11 SP1

vicorty3

192.168.0.73

目的主機(jī)?

Destination Host

Xeon(R) E5506 x 8 core

MEM: 18GB

SLES11 SP1

victory4

192.168.0.74

NFS Server

Pentium(R) D x 2 core

MEM: 2G

SLES11 SP1

server17

192.168.0.17


創(chuàng)建 KVM 虛擬機(jī)

遷移虛擬機(jī)之前,我們需要創(chuàng)建虛擬機(jī)。創(chuàng)建虛擬機(jī)可以使用 QEMU-KVM 命令或者通過 virt-manager 圖形化管理工具。

QEMU-KVM 創(chuàng)建虛擬機(jī)鏡像文件:見本文的參考資源“KVM 虛擬機(jī)在 IBM System x 上應(yīng)用”。

virt-manager 創(chuàng)建虛擬機(jī):參考 virt-manager 幫助手冊。

KVM 虛擬機(jī)靜態(tài)遷移

靜態(tài)遷移由于允許中斷虛擬機(jī)的運(yùn)行,所以相對簡單。首先在源主機(jī)上關(guān)閉虛擬機(jī),然后移動虛擬機(jī)的存儲鏡像和配置文件到目的主機(jī),最后在目的主機(jī)上啟動虛擬機(jī),恢復(fù)服務(wù)。根據(jù)虛擬機(jī)鏡像存儲方式的不同,靜態(tài)遷移的實現(xiàn)方法稍有不同。

虛擬機(jī)之間使用共享存儲

如果源主機(jī)和目的主機(jī)都能夠訪問虛擬機(jī)的鏡像,則只需要遷移虛擬機(jī)配置文件。比如在本例中的 SLES11 SP1 系統(tǒng),virt-manager 管理的虛擬機(jī)配置文件在 /etc/libvirt/qemu/”your vm name.xml”??截?XML 配置文件到目的主機(jī)的相同目錄后,進(jìn)行適當(dāng)?shù)男薷?,比如:與源主機(jī)相關(guān)的文件或路徑等。無論你何時在 /etc/libvirt/qemu/ 中修改了虛擬機(jī)的 XML 文件,必須重新運(yùn)行 define 命令,以激活新的虛擬機(jī)配置文件。


清單 1. 激活虛擬機(jī)配置文件


?# virsh define /etc/libvirt/qemu/”your vm name.xml”


虛擬機(jī)鏡像使用本地存儲

本地存儲是指虛擬機(jī)的文件系統(tǒng)建立在本地硬盤上,可以是文件或者磁盤分區(qū)。

本地文件存儲:如果虛擬機(jī)是基于鏡像文件,直接從源主機(jī)拷貝鏡像文件和 XML 配置文件到目的主機(jī)中,然后對 XML 進(jìn)行適當(dāng)?shù)男薷牟⒓せ睢?/p>

本地磁盤分區(qū):如果虛擬機(jī)使用了磁盤分區(qū)(物理分區(qū)或者邏輯分區(qū))為存儲設(shè)備,首先用 dump 工具把磁盤分區(qū)轉(zhuǎn)換成鏡像文件再拷貝到目的主機(jī)。在目的主機(jī)恢復(fù)虛擬機(jī)時,把鏡像文件恢復(fù)到目的主機(jī)的磁盤分區(qū)中去。對于虛擬機(jī)系統(tǒng)使用了多個磁盤分區(qū)的,需要每個分區(qū)單獨 dump 成鏡像文件。例如使用“/dev/VolGroup00/lv001” LVM 邏輯卷作為存儲設(shè)備,可以使用下面的命令輸出成鏡像文件:


清單 2. 轉(zhuǎn)換邏輯卷為鏡像文件


?dd if=/dev/VolGroup00/lv001 of=lv001.img bs=1M?


保存虛擬機(jī)的運(yùn)行狀態(tài)

靜態(tài)遷移虛擬的過程中,虛擬機(jī)系統(tǒng)處于關(guān)機(jī)狀態(tài),這樣虛擬機(jī)關(guān)機(jī)前的運(yùn)行狀態(tài)不會保留。如果希望保留遷移前的系統(tǒng)狀態(tài),并且在遷移后能夠恢復(fù),需要對虛擬機(jī)做快照備份或者以休眠的方式關(guān)閉系統(tǒng),詳細(xì)內(nèi)容和實現(xiàn)方法將在本系列文章的第五部分介紹。

基于共享存儲的動態(tài)遷移

本文前面“V2V 遷移方式的分類”小節(jié)中介紹過,跟據(jù)虛擬機(jī)連接存儲方式的不同,動態(tài)遷移分為基于共享存儲的動態(tài)遷移和基于本地存儲的存儲塊遷移。本小節(jié)實現(xiàn)了目前使用最廣泛的基于共享存儲的動態(tài)遷移。實現(xiàn)這種實時遷移的條件之一就是把虛擬機(jī)存儲文件存放在公共的存儲空間。因此需要設(shè)定一個共享存儲空間,讓源主機(jī)和目的主機(jī)都能夠連接到共享存儲空間上的虛擬媒體文件,包括虛擬磁盤、虛擬光盤和虛擬軟盤。否則,即使遷移完成以后,也會因為無法連接虛擬設(shè)備,導(dǎo)致無法啟動遷移后的虛擬機(jī)。

設(shè)置實驗環(huán)境

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


圖 3. 共享存儲的動態(tài)遷移實驗配置圖



?

. 確保網(wǎng)絡(luò)連接正確,源主機(jī)、目的主機(jī)和 NFS 服務(wù)器之間可以互相訪問。

. 確保源主機(jī)和目的主機(jī)上的 VMM 運(yùn)行正常。

. 設(shè)置 NFS 服務(wù)器的共享目錄。本文的 NFS 服務(wù)器也安裝了 SLES11 SP1 操作系統(tǒng)。


清單 3. 配置 NFS 服務(wù)


修改 /etc/exports 文件,添加

?/home/image *(rw,sync,no_root_squash)?


?rw:可讀寫的權(quán)限;

?ro:只讀的權(quán)限;

?no_root_squash:登入到 NFS 主機(jī)的用戶如果是 ROOT 用戶,他就擁有 ROOT 權(quán)限,此參數(shù)很不安全,建議不要使用。

?sync:資料同步寫入存儲器中。

?async:資料會先暫時存放在內(nèi)存中,不會直接寫入硬盤。?


重新啟動 nfsserver 服務(wù)

?# service nfsserver restart?


使用 virt-manager 進(jìn)行動態(tài)遷移

virt-manager 是基于 libvirt 的圖像化虛擬機(jī)管理軟件,請注意不同的發(fā)行版上 virt-manager 的版本可能不同,圖形界面和操作方法也可能不同。本文使用了 SLES11 SP1 發(fā)行版上的 virt-manager-0.8.4。

首先在源主機(jī)和目的主機(jī)上添加共享存儲。這里以源主機(jī)為例,目的主機(jī)做相同的配置。

添加 NFS 存儲池到源主機(jī)和目的主機(jī)的 vit-manager 中。點擊 Edit menu->Host Details->Storage tab。?圖 4. 存儲池配置圖?

添加一個新的存儲池。點擊左下角的“+”號,彈出一個新的窗口。輸入以下參數(shù):

Name:存儲池的名字。

Type:選擇 netfs:Network Exported Directory。因為本文使用了 NFS 作為共享存儲協(xié)議。?圖 5. 添加共享存儲池?

點擊“Forward”后,輸入以下參數(shù):

Target Path:共享存儲在本地的映射目錄。本文中這個目錄在源主機(jī)和目的主機(jī)上必須一致。

Format:選擇存儲類型。這里必須是 nfs。

Host Name:輸入共享存儲服務(wù)器,也就是 NFS 服務(wù)器的 IP 地址或 hostname。

Source Path:NFS 服務(wù)器上輸出的共享目錄。?圖 6. 存儲池設(shè)置?

點擊”Finish”后,共享存儲添加成功。此時在物理機(jī)上查看 Linux 系統(tǒng)的文件系統(tǒng)列表,可以看到共享存儲映射的目錄。

源主機(jī)上創(chuàng)建基于共享存儲的 KVM 虛擬機(jī)。

選擇共享存儲池,點擊”New Volume”創(chuàng)建新的存儲卷。

輸入存儲卷參數(shù)。本例為虛擬機(jī)創(chuàng)建了大小為 10G,格式為 qcow2 的存儲卷。?圖 7. 添加存儲卷?

在這個共享存儲卷上創(chuàng)建虛擬機(jī)。本文創(chuàng)建了一個基于 Window 2008 R2 系統(tǒng)的虛擬機(jī)。創(chuàng)建虛擬機(jī)的具體步驟見本文前面“創(chuàng)建 KVM 虛擬機(jī)“小節(jié)。

連接遠(yuǎn)程物理主機(jī)上的 VMM。這里以源主機(jī)為例,目的主機(jī)做相同的配置。

在源主機(jī)上打開 virt-manager 應(yīng)用程序,連接 localhost 本機(jī)虛擬機(jī)列表。點擊 File->Add Connection,彈出添加連接窗口,輸入以下各項:

Hypervisor:選擇 QEMU。

Connection:選擇連接方式 。本文選擇 SSH 連接。

Hostname:輸入將要連接的主機(jī)名或 IP 地址,這里填寫目的主機(jī)名 victory4。?圖 8. 添加遠(yuǎn)程 VMM 連接?

點擊 Connect,輸入 SSH 連接的密碼后,將顯示源主機(jī)和目的主機(jī)上的虛擬機(jī)列表。?圖 9. 管理遠(yuǎn)程 VMM?

從源主機(jī)動態(tài)遷移 KVM 虛擬機(jī)到目的主機(jī)。

在源主機(jī)上啟動虛擬機(jī) Windwos 2008 R2。

在虛擬機(jī)中,開啟實時網(wǎng)絡(luò)服務(wù)(用來驗證遷移過程中服務(wù)的可用性)。

開啟遠(yuǎn)程連接服務(wù) remote access,在其他主機(jī)上遠(yuǎn)程連接此虛擬機(jī)。

開啟網(wǎng)絡(luò)實時服務(wù)。例如打開瀏覽器并且播放一個實時網(wǎng)絡(luò)視頻。

準(zhǔn)備動態(tài)遷移,確保所有的虛擬存儲設(shè)備此時是共享的,包括 ISO 和 CDROM。

在源主機(jī)的 virt-manager 窗口中,右鍵點擊等待遷移的虛擬機(jī),選擇“Migrate ”。

New host:選擇目的主機(jī)的 hostname。

Address:填入目的主機(jī)的 IP 地址。

Port and Bandwith:指定連接目的主機(jī)的端口和傳輸帶寬,本文中沒有設(shè)定,使用默認(rèn)設(shè)置。

圖 10. 虛擬機(jī)遷移設(shè)置?

點擊“Migrate”和“Yes”開始動態(tài)遷移虛擬機(jī)。?圖 11. 虛擬機(jī)遷移進(jìn)度?

動態(tài)遷移的時間與網(wǎng)絡(luò)帶寬、物理主機(jī)的性能和虛擬機(jī)的配置相關(guān)。本實驗中的網(wǎng)絡(luò)連接基于 100Mbps 的以太網(wǎng),整個遷移過程大約耗時 150 秒。使用 RDC(Remote Desktop Connection)遠(yuǎn)程連接虛擬機(jī)在遷移過程中沒有中斷;虛擬機(jī)中播放的實時網(wǎng)絡(luò)視頻基本流暢,停頓的時間很短,只有 1 秒左右。如果采用 1000Mbps 的以太網(wǎng)或者光纖網(wǎng)絡(luò),遷移時間將會大大減少,而虛擬機(jī)服務(wù)停頓的時間幾乎可以忽略不計。

遷移完成后,目的主機(jī)的 VMM 中自動創(chuàng)建了一個同名的 Windows 2008 R2 虛擬機(jī),并且繼續(xù)提供遠(yuǎn)程連接服務(wù)和播放在線視頻。源主機(jī)上的虛擬機(jī)變?yōu)闀和顟B(tài),不再提供服務(wù)。至此,動態(tài)遷移勝利完成。

基于數(shù)據(jù)塊的動態(tài)遷移

從 qemu-kvm-0.12.2 版本,引入了 Block Migration (塊遷移)的特性。上一小節(jié)“基于共享存儲的動態(tài)遷移”中,為了實現(xiàn)動態(tài)遷移,源主機(jī)和目的主機(jī)需要連接共享存儲服務(wù)。有了塊遷移技術(shù)以后,可以在動態(tài)遷移過程中,把虛擬磁盤文件從源主機(jī)遷移至目的主機(jī)。QEMU-KVM 有了這個特性以后,共享存儲不再是動態(tài)遷移的必要條件,從而降低了動態(tài)遷移的難度,擴(kuò)大了動態(tài)遷移的應(yīng)用范圍。SLES11 SP1 集成了 kvm-0.12.3,支持塊遷移特性。但是 SLES11 SP1 上的 libvirt-0.7.6、virt-manager-0.8.4 暫時沒有引入塊遷移的功能。所以本文下面的塊遷移實驗僅基于 QEMU-KVM 的命令行模式。

設(shè)置實驗環(huán)境

塊遷移過程中,虛擬機(jī)只使用本地存儲,因此物理環(huán)境非常簡單。只需要源主機(jī)和目的主機(jī)通過以太網(wǎng)連接,如”圖 2. 本地存儲的動態(tài)遷移示意圖”所示。

QEMU 的控制終端和遷移命令

QEMU 控制終端的開啟,可以在 QEMQ-KVM 的命令中加參數(shù)“-monitor”。

-monitor stdio: 輸出到文本控制臺。

-monitor vc: 輸出到圖形控制臺。

圖形控制臺和虛擬機(jī) VNC 窗口的切換命令是:

Ctrl+Alt+1: VNC window

Ctrl+Alt+2: monitor console

Ctrl+Alt+3: serial0 console

Ctrl+Alt+4: parallel0 console

QEMU-KVM 提供了的“-incoming”參數(shù)在指定的端口監(jiān)聽遷移數(shù)據(jù)。目的主機(jī)上需要此參數(shù)接收來自源主機(jī)的遷移數(shù)據(jù)。


清單 4. 遷移相關(guān)的 QEMU 命令


?(qemu) help migrate?

?migrate [-d] [-b] [-i] uri -- migrate to URI (using -d to not wait for completion)?

?? ? ? ? ? ? ? ? -b for migration without shared storage with full copy of disk?

?? ? ? ? ? ? ? ? -i for migration without shared storage with incremental copy of disk?

?? ? ? ? ? ? ? ? ? ? ? (base image shared between src and destination)?


使用 QEMU-KVM 進(jìn)行數(shù)據(jù)塊動態(tài)遷移

在源主機(jī)上創(chuàng)建和啟動虛擬機(jī)。

在本地磁盤上創(chuàng)建虛擬機(jī)鏡像文件。本文創(chuàng)建了大小為 10G,qcow2 格式的本地鏡像文件。?清單 5. 源主機(jī)上創(chuàng)建虛擬機(jī)


victory3:~ # qemu-img create -f qcow2 /var/lib/kvm/images/sles11.1ga/disk0.qcow2 10G



在鏡像文件上安裝虛擬機(jī)。本文在虛擬機(jī)中安裝了 SLES11SP1 系統(tǒng)。?清單 6. 源主機(jī)上安裝虛擬機(jī)


victory3:~ #? /usr/bin/qemu-kvm -enable-kvm -m 512 -smp 4 -name sles11.1ga?

? ? -monitor stdio -boot c -drive file=/var/lib/kvm/images/sles11.1ga/disk0.qcow2,?

? ? if=none,id=drive-virtio-disk0,boot=on -device virtio-blk-pci,bus=pci.0,?

? ? addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive?

? ? file=/media/83/software/Distro/SLES-11-SP1-DVD-x86_64-GM-DVD1.iso,?

? ? if=none,media=cdrom,id=drive-ide0-1-0 -device ide-drive,bus=ide.1,?

? ? unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -device virtio-net-pci,vlan=0,?

? ? id=net0,mac=52:54:00:13:08:96 -net tap -vnc 127.0.0.1:3?



虛擬機(jī)安裝完畢后,以下列命令啟動虛擬機(jī)。添加了“-monitor stdio”是為了開啟文本控制臺;去掉了虛擬光驅(qū)中的 ISO 文件是為了保證遷移時,源主機(jī)和目的主機(jī)上虛擬設(shè)備的一致性。如果你在目的主機(jī)的相同路徑下存在相同名字的 ISO 文件,則可以在遷移時保留 ISO 文件參數(shù)。?清單 7. 源主機(jī)上啟動虛擬機(jī)


victory3:~ #? /usr/bin/qemu-kvm -enable-kvm -m 512 -smp 4 -name sles11.1ga?

-monitor stdio -boot c -drive file=/var/lib/kvm/images/sles11.1ga/disk0.qcow2,?

if=none,id=drive-virtio-disk0,boot=on -device virtio-blk-pci,bus=pci.0,addr=0x4,?

drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,?

id=drive-ide0-1-0 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,?

id=ide0-1-0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:13:08:96?

-net tap -vnc 127.0.0.1:3?



在目的主機(jī)上創(chuàng)建和啟動虛擬機(jī)。

在目的主機(jī)上為遷移后的系統(tǒng)創(chuàng)建鏡像文件,文件的大小必須大于或等于源主機(jī)的鏡像文件大小。?清單 8. 目的主機(jī)上創(chuàng)建虛擬機(jī)


victory4:~ #? qemu-img create -f qcow2 dest.img 20G?

Formatting 'dest.img', fmt=qcow2 size=21474836480 encryption=off cluster_size=0?



使用與源主機(jī)上相同的 qemu-kvm 參數(shù),更改鏡像文件為目的主機(jī)上創(chuàng)建的鏡像文件,加上 -incoming 參數(shù)指定動態(tài)遷移所使用的協(xié)議、IP 地址和端口號。因為 -incoming 參數(shù)的作用是監(jiān)聽端口,所以目的主機(jī)上的虛擬機(jī)一啟動就處于 paused 狀態(tài),等待源主機(jī)上虛擬機(jī)開始遷移。本例中塊遷移使用 TCP 協(xié)議,目的主機(jī)上的監(jiān)聽端口是 8888 端口。?清單 9. 目的主機(jī)上的遷移命令


victory4:~ # /usr/bin/qemu-kvm -enable-kvm -m 512 -smp 4 -name sles11.1ga?

-monitor stdio -boot c -drive file=/root/dest.img,if=none,id=drive-virtio-disk0,?

boot=on -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,?

id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-1-0 -device ide-drive,?

bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -device virtio-net-pci,vlan=0,?

id=net0,mac=52:54:00:13:08:96 -net tap -vnc 127.0.0.1:8 -incoming tcp:0:8888?

QEMU 0.12.3 monitor - type 'help' for more information?

(qemu) info status?

VM status: paused?



遷移源主機(jī)上的虛擬機(jī)到目的主機(jī)。

回到源主機(jī)上,在等待遷移的虛擬機(jī)中開啟一些實時服務(wù)以驗證動態(tài)遷移不會中斷服務(wù)的運(yùn)行。本例中在虛擬機(jī)的終端窗口中用“top -d 1“命令開啟 TOP 服務(wù),每秒刷新一次系統(tǒng)進(jìn)程的信息。?圖 12. 等待遷移的虛擬機(jī)中開啟 TOP 服務(wù)?

在源主機(jī)的 QEMU 控制臺中輸入以下遷移命令,遷移開始。?清單 10. 源主機(jī)遷移命令


(qemu) migrate -d -b tcp:victory4:8888?


-d 可以在遷移的過程中查詢遷移狀態(tài),否則只能在遷移結(jié)束后查詢。

-b 遷移虛擬機(jī)存儲文件

tcp:ivctory4:8888 數(shù)據(jù)遷移的協(xié)議、目的主機(jī)和端口。協(xié)議和端口必須和目的主機(jī)上虛擬機(jī)的 -incoming 參數(shù)一致。



動態(tài)遷移期間,源主機(jī)的虛擬機(jī)繼續(xù)運(yùn)行,TOP 服務(wù)沒有中斷。同時可以在源主機(jī)的 QEMU 控制臺查詢遷移的狀態(tài)。目的主機(jī)的虛擬機(jī)處于 paused 狀態(tài),從目的主機(jī)的 QEMU 控制臺可以看到遷移進(jìn)度的百分比。?清單 11. 監(jiān)視虛擬機(jī)遷移過程


源主機(jī) QEMU 控制臺顯示正在遷移的數(shù)據(jù)

(qemu) info migrate?

Migration status: active?

transferred ram: 52 kbytes?

remaining ram: 541004 kbytes?

total ram: 541056 kbytes?

transferred disk: 2600960 kbytes?

remaining disk: 5787648 kbytes?

total disk: 8388608 kbytes?


<p style="font-size:18px;font-family:'Heiti TC Light';color:rg

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉