專利名稱:一種適用于虛擬機(jī)遷移和容錯的共享存儲方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計算領(lǐng)域,尤其是一種適用于虛擬機(jī)遷移和容錯的共享存儲方法。
技術(shù)背景
云計算(Cloud Computing)是2007年誕生的新名詞,目前仍沒有公認(rèn)的定義。云計算是一種商業(yè)計算模型,它將計算任務(wù)分部在大量計算機(jī)構(gòu)成的資源池上,使用戶能夠按需獲取計算力、存儲空間和信息服務(wù)。而云計算操作系統(tǒng)是云計算后臺的整體管理運(yùn)營系統(tǒng),它是指構(gòu)架于服務(wù)器、存儲、網(wǎng)絡(luò)等基礎(chǔ)硬件資源和單機(jī)操作系統(tǒng)、中間件、數(shù)據(jù)庫等基礎(chǔ)軟件管理海量的基礎(chǔ)硬件、軟資源之上的云平臺綜合管理系統(tǒng)。
分布式文件系統(tǒng)(Distributed File System)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過計算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連。分布式文件系統(tǒng)的設(shè)計基于客戶機(jī)/服務(wù)器模式。一個典型的網(wǎng)絡(luò)可能包括多個供多用戶訪問的服務(wù)器。另外, 對等特性允許一些系統(tǒng)扮演客戶機(jī)和服務(wù)器的雙重角色。例如,用戶可以“發(fā)表”一個允許其他客戶機(jī)訪問的目錄,一旦被訪問,這個目錄對客戶機(jī)來說就象使用本地驅(qū)動器一樣。
云計算平臺在進(jìn)行系統(tǒng)遷移以及系統(tǒng)容錯時,傳統(tǒng)的集中式存儲系統(tǒng)存在單點(diǎn)故障,以及傳輸性能不高的現(xiàn)象。發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題在于提供一種適用于虛擬機(jī)遷移和容錯的共享存儲方法, 有效解決集中式存儲系統(tǒng)存在故障、傳輸性問題。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是
數(shù)據(jù)存儲服務(wù)器和元數(shù)據(jù)服務(wù)器分別加載網(wǎng)絡(luò)驅(qū)動模塊,由元數(shù)據(jù)服務(wù)器以固定多播組方式主動搜索網(wǎng)絡(luò)上各數(shù)據(jù)存儲服務(wù)器,各數(shù)據(jù)存儲服務(wù)器通過關(guān)鍵字信息,識別元數(shù)據(jù)服務(wù)器后,主動加入網(wǎng)絡(luò)存儲集群。
數(shù)據(jù)在數(shù)據(jù)存儲服務(wù)器上可以根據(jù)配置文件指定多個備份,同時可以指定多個元數(shù)據(jù)服務(wù)器,提供元數(shù)據(jù)服務(wù)器因網(wǎng)絡(luò)負(fù)載過高宕機(jī),或數(shù)據(jù)存儲服務(wù)器上數(shù)據(jù)讀寫錯誤等情況發(fā)生時的容錯。
具體包括如下步驟
第1步,物理服務(wù)器作為虛擬機(jī)的宿主掛載共享存儲目錄,用于存放虛擬機(jī)的鏡像文件;
第2步,在物理服務(wù)器上創(chuàng)建虛擬機(jī),并把虛擬機(jī)的鏡像文件保存在掛載的共享存儲目錄下,支持的虛擬機(jī)鏡像文件格式包括Raw和VHD等;
第3步,物理服務(wù)器上共享存儲的客戶端先訪問元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)服務(wù)器根據(jù)HASH算法統(tǒng)計的各數(shù)據(jù)存儲服務(wù)器上的分布存儲記錄,同時遵循平衡負(fù)載率的原則給虛擬機(jī)鏡像文件分配存儲空間,另外,虛擬機(jī)鏡像文件會根據(jù)配置創(chuàng)建多個備份以防止單點(diǎn)故障導(dǎo)致的數(shù)據(jù)丟失;
第4步,物理服務(wù)器根據(jù)分配的空間路徑,與數(shù)據(jù)服務(wù)器進(jìn)行IO通信,把虛擬機(jī)鏡像文件保存在數(shù)據(jù)服務(wù)器下的指定路徑下;
第5步,在虛擬機(jī)遷移和容錯的時候,原物理機(jī)先釋放掉虛擬機(jī)所占用的資源;
第6步,目標(biāo)物理機(jī)讀取共享目錄下的文件列表,找到虛擬機(jī)鏡像文件;
第7步,目標(biāo)物理機(jī)重新申請?zhí)摂M機(jī)的資源并接管虛擬機(jī)的鏡像文件。
采用本發(fā)明的方法,可以有效地提高虛擬機(jī)遷移和容錯的速度,不影響業(yè)務(wù)的運(yùn)行,提高虛擬機(jī)鏡像的可用性。
下面結(jié)合附圖對本發(fā)明進(jìn)一步說明
圖1是本發(fā)明方法示意圖2是本發(fā)明用戶實例示意圖。
具體實施方式
如圖1所示,本發(fā)明數(shù)據(jù)存儲服務(wù)器簡稱為DS,元數(shù)據(jù)服務(wù)器簡稱為MS,DS、MS分別加載該網(wǎng)絡(luò)驅(qū)動模塊,由MS以固定多播組方式主動搜索網(wǎng)絡(luò)上各DS,各DS通過關(guān)鍵字信息,識別MS后,主動加入網(wǎng)絡(luò)存儲集群。
本發(fā)明以IinuX2. 6. 38. 2內(nèi)核為共享存儲系統(tǒng)部署平臺,通過自定義操作系統(tǒng)內(nèi)核特性,并應(yīng)用虛擬化補(bǔ)丁,使系統(tǒng)支持虛擬機(jī)的網(wǎng)絡(luò)連通,I/O存儲,分布式存儲等。
本發(fā)明采用Iinux網(wǎng)絡(luò)分布式傳輸算法,基于Iinux操作系統(tǒng)開源特性,通過驅(qū)動的形式封裝網(wǎng)絡(luò)存儲各節(jié)點(diǎn)之間的通訊模塊,以適應(yīng)分布式存儲的驅(qū)動,命名為 gcloud-dnet. ko,來替換原有的系統(tǒng)驅(qū)動Inet,以支持虛擬化應(yīng)用。
本發(fā)明在修改IinuX2. 6. 38. 2內(nèi)核源碼的基礎(chǔ)上,使得分布式存儲系統(tǒng)在支持傳統(tǒng)的文件系統(tǒng)格式以外(ext2,ext3, ext4, ntfs, fat),還支持微軟推出的VHD虛擬磁盤格式。
在修改IinuX2. 6. 38. 2內(nèi)核源碼的基礎(chǔ)上,通過修改原有的分布式存儲I/O驅(qū)動, 來統(tǒng)計數(shù)據(jù)在各DS上的分布存儲記錄,通過快速分布式HASH算法,提高客戶端讀取數(shù)據(jù)效率,平衡網(wǎng)絡(luò)I/O負(fù)載率,提高存儲的整體性能。
數(shù)據(jù)存儲多點(diǎn)保障,數(shù)據(jù)在DS上可以根據(jù)配置文件指定多個備份,同時可以指定多個MS,提供MS因網(wǎng)絡(luò)負(fù)載過高宕機(jī),或DS上數(shù)據(jù)讀寫錯誤等情況發(fā)生時的容錯方案。
本發(fā)明包括以下實施步驟
第1步,物理服務(wù)器作為虛擬機(jī)的宿主掛載共享存儲目錄,用于存放虛擬機(jī)的鏡像文件;
第2步,在物理服務(wù)器上創(chuàng)建虛擬機(jī),并把虛擬機(jī)的鏡像文件保存在掛載的共享存儲目錄下,支持的虛擬機(jī)鏡像文件格式包括Raw和VHD等;
第3步,物理服務(wù)器上共享存儲的客戶端先訪問元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)服務(wù)器根據(jù)HASH算法統(tǒng)計的各DS上的分布存儲記錄,同時遵循平衡負(fù)載率的原則給虛擬機(jī)鏡像文件分配存儲空間,另外,虛擬機(jī)鏡像文件會根據(jù)配置創(chuàng)建多個備份以防止單點(diǎn)故障導(dǎo)致的數(shù)據(jù)丟失;
第4步,物理服務(wù)器根據(jù)分配的空間路徑,與數(shù)據(jù)服務(wù)器進(jìn)行IO通信,把虛擬機(jī)鏡像文件保存在數(shù)據(jù)庫服務(wù)器下的指定路徑下;
第5步,在虛擬機(jī)遷移和容錯的時候,原物理機(jī)先釋放掉虛擬機(jī)所占用的資源;
第6步,目標(biāo)物理機(jī)讀取共享目錄下的文件列表,找到虛擬機(jī)鏡像文件;
第7步,目標(biāo)物理機(jī)重新申請?zhí)摂M機(jī)的資源并接管虛擬機(jī)的鏡像文件。
具體而言,本發(fā)明方法可有多種實現(xiàn),本部分將介紹一種實現(xiàn)方式。參見圖2,本發(fā)明適用于虛擬機(jī)遷移和容錯的共享存儲方法的具體應(yīng)用步驟如下
第1步,我們使用CentOS x86_64作為宿主機(jī)的操作系統(tǒng),兩臺宿主機(jī)的IP為 192. 168. 1.6以及192. 168. 1.7,其上運(yùn)行Xen 4. 0的虛擬化內(nèi)核,192. 168. 1.6上運(yùn)行全虛擬化的虛擬機(jī)名稱為vm,id為1,并且虛擬機(jī)鏡像文件存放在/Vm這個共享目錄下,共享文件系統(tǒng)用(^Ph搭建,配置如下
<domain type='xen'> #虛擬機(jī)名稱為vm <η〇η θ>νιη</η〇η θ> <〇s>#釆用全虛擬化的模式運(yùn)行虛擬機(jī) <type>hvm</type>#虛擬機(jī)的內(nèi)核<kernel>/software/iso/vmlinuz-2.6.32-24-generic</kernel><initrd>/software/iso/initrd.img-2.6.32-24-generic</initrd><cmdline>root=/dev/vda 1 console=ttySO</cmdline></〇s><fe〇tures><acpi/></fe〇tures>#虛擬機(jī)的內(nèi)存為262144MB <memory>262144</memory> #虛擬機(jī)核數(shù)為1
<vcpu>l </vcpu> <devices><emulator>/usr/bin/qemu-dm</emulator>#虛擬機(jī)的硬盤 <disk type='file'> <source file='/vm/vm.img '/> 〈target dev='vda' bus=Virtio'/> </disk>#虛擬機(jī)的網(wǎng)卡配置 〈interface type='bridge'> <source bridge='brO'/> <mac address='d0:0d:43:BD:07:E97> <model type='virtio'/> </interface>#串口設(shè)備 〈serial type="file">〈source path=7software/iso/console.log'/><target port=T/>〈/serial〉#虛擬機(jī)的圖形化界面 〈graphics type='vnc' listen=" port=,30002, passwd='30002' /> </devices>
</d〇m〇in>
第2步,假設(shè)有兩個DS,虛擬機(jī)鏡像文件有兩個拷貝,那么分別存放在DS中,名稱為 vm. img Partl 禾口 vm. img Part2。
第3步,調(diào)用Libvirt的遷移命令進(jìn)行虛擬機(jī)遷移,
#把id為1的虛擬機(jī)遷移到IP地址為192. 168. 1. 7的宿主機(jī)上
xm migratel 192. 168. 1. 7
第4步,虛擬機(jī)vm運(yùn)行在了 192. 168. 1. 7這臺物理機(jī)上,用時約2秒,中間過程網(wǎng)絡(luò)斷開時間少于500毫秒,對業(yè)務(wù)的影響可忽略不計,證明此方法適用于虛擬機(jī)遷移和容講t曰ο
權(quán)利要求
1.一種適用于虛擬機(jī)遷移和容錯的共享存儲方法,其特征在于數(shù)據(jù)存儲服務(wù)器和元數(shù)據(jù)服務(wù)器分別加載網(wǎng)絡(luò)驅(qū)動模塊,由元數(shù)據(jù)服務(wù)器以固定多播組方式主動搜索網(wǎng)絡(luò)上各數(shù)據(jù)存儲服務(wù)器,各數(shù)據(jù)存儲服務(wù)器通過關(guān)鍵字信息,識別元數(shù)據(jù)服務(wù)器后,主動加入網(wǎng)絡(luò)存儲集群。
2.根據(jù)權(quán)利要求1所示的共享存儲方法,其特征在于數(shù)據(jù)在數(shù)據(jù)存儲服務(wù)器上可以根據(jù)配置文件指定多個備份,同時可以指定多個元數(shù)據(jù)服務(wù)器,提供元數(shù)據(jù)服務(wù)器因網(wǎng)絡(luò)負(fù)載過高宕機(jī),或數(shù)據(jù)存儲服務(wù)器上數(shù)據(jù)讀寫錯誤等情況發(fā)生時的容錯。
3.根據(jù)權(quán)利要求1或2所述的共享存儲方法,其特征在于具體包括如下步驟第1步,物理服務(wù)器作為虛擬機(jī)的宿主掛載共享存儲目錄,用于存放虛擬機(jī)的鏡像文件;第2步,在物理服務(wù)器上創(chuàng)建虛擬機(jī),并把虛擬機(jī)的鏡像文件保存在掛載的共享存儲目錄下,支持的虛擬機(jī)鏡像文件格式包括Raw和VHD等;第3步,物理服務(wù)器上共享存儲的客戶端先訪問元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)服務(wù)器根據(jù) HASH算法統(tǒng)計的各數(shù)據(jù)存儲服務(wù)器上的分布存儲記錄,同時遵循平衡負(fù)載率的原則給虛擬機(jī)鏡像文件分配存儲空間,另外,虛擬機(jī)鏡像文件會根據(jù)配置創(chuàng)建多個備份以防止單點(diǎn)故障導(dǎo)致的數(shù)據(jù)丟失;第4步,物理服務(wù)器根據(jù)分配的空間路徑,與數(shù)據(jù)服務(wù)器進(jìn)行IO通信,把虛擬機(jī)鏡像文件保存在數(shù)據(jù)服務(wù)器下的指定路徑下;第5步,在虛擬機(jī)遷移和容錯的時候,原物理機(jī)先釋放掉虛擬機(jī)所占用的資源; 第6步,目標(biāo)物理機(jī)讀取共享目錄下的文件列表,找到虛擬機(jī)鏡像文件; 第7步,目標(biāo)物理機(jī)重新申請?zhí)摂M機(jī)的資源并接管虛擬機(jī)的鏡像文件。
全文摘要
本發(fā)明涉及云計算領(lǐng)域,尤其是一種適用于虛擬機(jī)遷移和容錯的共享存儲方法。本發(fā)明數(shù)據(jù)存儲服務(wù)器和元數(shù)據(jù)服務(wù)器分別加載網(wǎng)絡(luò)驅(qū)動模塊,由元數(shù)據(jù)服務(wù)器以固定多播組方式主動搜索網(wǎng)絡(luò)上各數(shù)據(jù)存儲服務(wù)器,各數(shù)據(jù)存儲服務(wù)器通過關(guān)鍵字信息,識別元數(shù)據(jù)服務(wù)器后,主動加入網(wǎng)絡(luò)存儲集群。本發(fā)明有效解決集中式存儲系統(tǒng)存在故障、傳輸性問題;可以廣泛應(yīng)用于虛擬機(jī)遷移和容錯的存儲中。
文檔編號G06F9/455GK102521063SQ201110390549
公開日2012年6月27日 申請日期2011年11月30日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者季統(tǒng)凱, 岳強(qiáng), 莫展鵬 申請人:廣東電子工業(yè)研究院有限公司