1 引言
服務(wù)器的虛擬化給分布式數(shù)據(jù)管理帶來了巨大的、革命性的改變。通過虛擬化手段集成服務(wù)器能夠有效減少空間和動力的消耗,提高信息服務(wù)的連續(xù)性,也能夠簡化硬件設(shè)備的管理工作。從信息服務(wù)的連續(xù)性角度分析,服務(wù)器虛擬化平臺提供了一個有效的解決方案。當(dāng)前90%的服務(wù)器關(guān)機(jī)操作是計劃內(nèi)的關(guān)機(jī),目的是進(jìn)行服務(wù)器設(shè)備維護(hù)。通過使用虛擬化平臺的動態(tài)遷移技術(shù),計劃內(nèi)的服務(wù)器關(guān)機(jī)次數(shù)能夠顯著減少,動態(tài)負(fù)載平衡使得服務(wù)器虛擬化更加強(qiáng)有力,將一些低負(fù)載的服務(wù)器進(jìn)行合并,可以使用更少的服務(wù)器來工作。從而節(jié)省電能的消耗。
近年來,服務(wù)器虛擬化獲得快速發(fā)展。在硬件方面,服務(wù)器CPU的一項(xiàng)基本功能就是支持虛擬化技術(shù),存儲設(shè)備和網(wǎng)絡(luò)設(shè)備同樣提供服務(wù)器虛擬化的支持。在軟件方面,服務(wù)器虛擬化軟件的解決方案已經(jīng)成熟。目前被廣泛
使用的企業(yè)服務(wù)器虛擬化產(chǎn)品包括VMware Server、CitrixXenServer、Microsoft Hvper-V Server以及開放源代碼的KVM(kemel-based vinual machine)。VMware是服務(wù)器虛擬化領(lǐng)域的領(lǐng)跑者,它的虛擬服務(wù)器管理軟件提供了許多有用的功能,但同時它的價格非常高。Cifrix的XenServer系統(tǒng)是VMware強(qiáng)有力的競爭者,其市場占有率成長速率很快。微軟的Hyper-V也在快速發(fā)展中,Hyper-V虛擬機(jī)管理程序被包含在了Windows Senrer 2008操作系統(tǒng)中。與這些昂貴的商業(yè)軟件相比,Linux下的開源服務(wù)器虛擬化軟件XEN hvpervisor和KVM是免費(fèi)使用的。出現(xiàn)于2007年的KVM是虛擬化市場的后來者,依靠CPU對虛擬化的支持和現(xiàn)存的Linux kemel來提供一個集成的虛擬化方法。被KVM控制的虛擬機(jī)器可以被看作一個進(jìn)程,它能夠在任何時候打開或者關(guān)閉,并且響應(yīng)時間非常短。通過使用KVM解決方案,當(dāng)服務(wù)器休眠時,虛擬機(jī)能夠進(jìn)入休眠狀態(tài)。這是因?yàn)镵VM虛擬機(jī)作為一個進(jìn)程,接受Linux的電源管理。KVM將Linux的內(nèi)核包含在內(nèi),它能夠有效地工作在Linux操作系統(tǒng)之上,沒有兼容性問題。隨著KVM逐漸成熟,它被越來越多地用在分布式數(shù)據(jù)管理中。
通過比較服務(wù)器虛擬化的解決方案,選擇開源的KVM來構(gòu)建服務(wù)器虛擬化環(huán)境,在Linux中很容易配置KVM的虛擬化解決方案㈣。但是,隨著服務(wù)器數(shù)量的增加,在服務(wù)器上安裝和配置虛擬化軟件的工作量隨之增加。在分布式數(shù)據(jù)中心的服務(wù)器虛擬化配置過程中,如何快速啟動多個服務(wù)器的操作系統(tǒng)并配置它們,是一個很大的難題。為了快速完成虛擬化環(huán)境的配置工作,并且減少服務(wù)器的管理工作量,通過網(wǎng)絡(luò)來配置是一個最好的解決方案。
在服務(wù)器虛擬化應(yīng)用中,動態(tài)遷移作為一個重要特征,需要共享存儲器的支持。通常,網(wǎng)絡(luò)文件系統(tǒng)(NFS)被配置用來共享存儲區(qū)域。這些存儲區(qū)域是Linux的服務(wù)器提供的。網(wǎng)絡(luò)文件系統(tǒng)服務(wù)器成了分布式數(shù)據(jù)中心的I/0瓶頸,因?yàn)橛写罅康闹鳈C(jī)需要訪問網(wǎng)絡(luò)文件系統(tǒng)服務(wù)器。這些虛擬服務(wù)器的虛擬磁盤映像存儲在網(wǎng)絡(luò)文件系統(tǒng)中,導(dǎo)致了性能低下的輸入輸出操作。所以,需要一個高性能的文件系統(tǒng)來滿足輸入輸出的需求。
本文的創(chuàng)新之處在于:使用開源的KVM虛擬化解決方案和集群文件系統(tǒng)Lustre構(gòu)建服務(wù)器虛擬化環(huán)境,極大地減少了服務(wù)器虛擬化環(huán)境的配置時間,并解決了共享存儲設(shè)備的輸入輸出瓶頸,提高文件并行化讀寫速度。
2 網(wǎng)絡(luò)啟動定制的Linux
分布式數(shù)據(jù)環(huán)境中,在多個服務(wù)器上安裝操作系統(tǒng)并進(jìn)行配置是一項(xiàng)很艱巨的任務(wù)。采用網(wǎng)絡(luò)來啟動服務(wù)器操作系統(tǒng)的方法,能夠加速這些服務(wù)器的部署和調(diào)度,并減少服務(wù)器操作系統(tǒng)的配置和管理難度。從網(wǎng)絡(luò)上啟動服務(wù)器的Linux操作系統(tǒng),可以采用PXE(pre-boot executionenvironment)協(xié)議來實(shí)現(xiàn),PXE協(xié)議分為客戶端和服務(wù)器端,PxE客戶端在網(wǎng)卡的ROM中,當(dāng)計算機(jī)引導(dǎo)時,BIOS把PXE客戶端調(diào)人內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶選擇后,PXE客戶端將放置在遠(yuǎn)端服務(wù)器上的操作系統(tǒng)通過網(wǎng)絡(luò)下載到本地運(yùn)行。
PXE協(xié)議成功運(yùn)行,需要在計算機(jī)啟動時,通過DHCP(dynamic host configuration protocol)服務(wù)器配置計算機(jī)的IP地址,由于是給PXE客戶端分配IP地址,所以在配置DHCP服務(wù)器時,需要增加相應(yīng)的PXE特有配置。PXE客戶端所在的ROM中,已經(jīng)存在了TFTP客戶端。PXE客戶端使用TFTP客戶端,通過TFTP到TFTP服務(wù)器上下載所需的Linux內(nèi)核和根文件系統(tǒng)。
圖1 從網(wǎng)絡(luò)啟動Linux操作系統(tǒng)的過程
PXE工作過程如圖l所示。
PXE客戶端是需要安裝Linux的計算機(jī),TFTP服務(wù)器和DHCP服務(wù)器運(yùn)行在PXE服務(wù)器上,bootstrap文件、配置文件、Linux內(nèi)核以及Linux根文件系統(tǒng)都放置在PXE服務(wù)器上TFTP服務(wù)器的根目錄下。PXE客戶端在工作過程中,需要3個二進(jìn)制文件:bootstmp、Linux內(nèi)核和Linux根文件系統(tǒng)。bootstrap文件是可執(zhí)行程序,它向用戶提供簡單的控制界面,并根據(jù)用戶的選擇,下載合適的Linux內(nèi)核以及Linux根文件系統(tǒng)。
用于網(wǎng)絡(luò)啟動的Linux內(nèi)核需要被定制,被定制的內(nèi)核包含3部分內(nèi)容:
·內(nèi)核必須包含服務(wù)器網(wǎng)絡(luò)接口卡驅(qū)動。
·內(nèi)核必須支持DHCP,內(nèi)核需要從DHCP服務(wù)器獲取一個IP地址。
·當(dāng)內(nèi)核根據(jù)PXE服務(wù)器傳遞的參數(shù),需要掛載網(wǎng)絡(luò)文件系統(tǒng)(NFS)根目錄時,內(nèi)核必須支持根文件系統(tǒng)?梢酝ㄟ^配置和編譯Linux內(nèi)核源代碼來產(chǎn)生被定制的內(nèi)核。
在使用KVM虛擬化解決方案來構(gòu)建服務(wù)器虛擬環(huán)境時,需要用到網(wǎng)橋功能,但是,通過傳統(tǒng)方法從網(wǎng)絡(luò)啟動Linux操作系統(tǒng)不支持網(wǎng)橋功能,而網(wǎng)橋功能是為虛擬機(jī)器分配虛擬網(wǎng)絡(luò)接口的基本方法。網(wǎng)絡(luò)接口控制器(NIC)作為一個網(wǎng)橋設(shè)備,它必須被設(shè)定為混雜模式才能夠作為網(wǎng)橋設(shè)備來工作。通過網(wǎng)絡(luò)啟動Linux操作系統(tǒng)之后,NIC工作在正常模式下,在NIC從正常模式轉(zhuǎn)換到混雜模式的過程中,會有一個暫時的網(wǎng)絡(luò)中斷,這個網(wǎng)絡(luò)中斷將引起網(wǎng)絡(luò)文件系統(tǒng)(NFS)根文件系統(tǒng)失效,將導(dǎo)致Linux操作系統(tǒng)的崩潰。
為了使從網(wǎng)絡(luò)啟動的Linux操作系統(tǒng)具有網(wǎng)橋功能,在操作系統(tǒng)啟動過程中需要使用初始RAM磁盤,即initrd。初始RAM磁盤是在實(shí)際根文件系統(tǒng)可用之前掛載到系統(tǒng)中的一個初始根文件系統(tǒng)。initrd與內(nèi)核綁定在一起,并作為內(nèi)核引導(dǎo)過程的一部分進(jìn)行加載。內(nèi)核會將這個initrd文件作為其兩階段引導(dǎo)過程的一部分來加載模塊,這樣才能稍后使用真正的文件系統(tǒng),并掛載實(shí)際的根文件系統(tǒng)。inifrd映像包含了實(shí)現(xiàn)這個目標(biāo)所需要的目錄和可執(zhí)行程序的最小集合,這些可執(zhí)行程序和系統(tǒng)文件用來創(chuàng)建網(wǎng)橋,并且引導(dǎo)Linux系統(tǒng)第二階段的啟動工作。在桌面或服務(wù)器Linux系統(tǒng)中,initrd是一個臨時的文件系統(tǒng)。其生存周期很短,只會用作為到真實(shí)文件系統(tǒng)的一個橋梁。根據(jù)不同的Linux版本,創(chuàng)建初始RAM磁盤的方法不相同。使用initrd進(jìn)行網(wǎng)絡(luò)啟動的步驟如圖2所示。
為了驗(yàn)證這種方法的可行性,針對Fedora和Centos操作系統(tǒng)進(jìn)行了測試,這兩個Linux操作系統(tǒng)都能夠以網(wǎng)橋模式從網(wǎng)絡(luò)引導(dǎo)并啟動。KVM軟件工作穩(wěn)定。
圖2 initrd網(wǎng)絡(luò)啟動步驟
3 使用Lustre集群文件系統(tǒng)
Lustre是工作在Linux操作系統(tǒng)之上的一個開源并行文件系統(tǒng),它由Linux和Cluslers演化而來,為解決海量存儲問題而設(shè)計的全新文件系統(tǒng),是下一代的集群文件系統(tǒng),可支持10 000個結(jié)點(diǎn),能夠達(dá)到PB級的存儲量,100 Gbit/s的傳輸速度以及完美的安全性和可管理性。Lustre提供共享訪問數(shù)據(jù),在I/0級和數(shù)據(jù)吞吐率方面能滿足成百上千臺規(guī)模的Linux集群服務(wù)器聚合訪問的需求,數(shù)據(jù)不需要從一個文件系統(tǒng)復(fù)制到另一個文件系統(tǒng),通過集群系統(tǒng)共享應(yīng)用和數(shù)據(jù)的任務(wù),執(zhí)行起來要比在單獨(dú)的設(shè)備上執(zhí)行快得多,虛擬機(jī)可以在多個服務(wù)器之間進(jìn)行動態(tài)遷移。使用Lustre文件系統(tǒng)的服務(wù)器需要安裝客戶端軟件,并且掛載Lustre文件系統(tǒng),KVM的多個客戶映像可以存儲在Lusfre文件系統(tǒng)中,在KVM主機(jī)之間共享虛擬服務(wù)器映像,虛擬服務(wù)器磁盤的輸入輸出被重定向?yàn)樽x寫映像文件。隨著映像文件數(shù)量的增多,傳統(tǒng)的網(wǎng)絡(luò)分布式文件系統(tǒng)輸入輸出性能成為瓶頸,而采用Lusfre高性能并行文件系統(tǒng)恰好可以很好地消除此瓶頸。
由于Lustre集群文件系統(tǒng)需要修改Linux內(nèi)核,所以Lustre源碼在編譯前必須進(jìn)行修訂。對于前面提到的從網(wǎng)絡(luò)啟動的服務(wù)器,它的內(nèi)核必須包含Lustre的修訂內(nèi)容。在成功掛載Lustre文件系統(tǒng)后,作為Lustre客戶端的服務(wù)器能夠透明地使用共享并行文件系統(tǒng)來存儲主機(jī)映像。圖3表示出了KVM虛擬環(huán)境的系統(tǒng)結(jié)構(gòu)。
表1 5個主機(jī)的集群文件系統(tǒng)的文件讀寫測試結(jié)果
圖3 KVM虛擬環(huán)境系統(tǒng)結(jié)構(gòu)
4 實(shí)驗(yàn)與分析
在使用KVM和Lustre集群文件系統(tǒng)的服務(wù)器虛擬環(huán)境中,針對輸入輸出性能進(jìn)行了測試,包括普通映像文件讀寫、多用戶大文件的讀寫操作。表1顯示了包含5個主機(jī)的集群文件系統(tǒng)的文件讀寫測試結(jié)果。當(dāng)使用單一的網(wǎng)絡(luò)文件系統(tǒng)服務(wù)器作為共享存儲設(shè)備時,整個虛擬環(huán)境的輸人輸出性熊表現(xiàn)被單一網(wǎng)絡(luò)文件系統(tǒng)服務(wù)器性能所限制;當(dāng)使用Lustre集群文件系統(tǒng)作為共享存儲設(shè)備時,虛擬環(huán)境的輸入輸出性能得到了大幅提升。使用Lustre集群文件系統(tǒng)可以解決共享存儲設(shè)備的輸人輸出瓶頸問題。使用Lustre集群文件系統(tǒng),20 GB映像文件的讀寫時間大大減少,同時并行讀寫大文件的速度提高了7-8倍,其中,讀寫文件的速度為55.1 Mbyte/s 。
表2顯示使用Lustre集群文件系統(tǒng)時,不同的結(jié)點(diǎn)數(shù)量情況下的各自輸人輸出性能對比。在集群文件系統(tǒng)中,結(jié)點(diǎn)數(shù)增長時,雖然并行讀寫文件的速度有所增加,性能提高1.2-1.3倍,但是并沒有達(dá)到線性增長。
表2 集群文件系統(tǒng)不同結(jié)點(diǎn)數(shù)的測試結(jié)果
5 結(jié)束語
在網(wǎng)絡(luò)中啟動定制的Linux操作系統(tǒng),快速地對服務(wù)器虛擬環(huán)境進(jìn)行配置,可以方便地進(jìn)行服務(wù)器虛擬集成,建立服務(wù)器虛擬環(huán)境。通過網(wǎng)絡(luò)啟動KVM主機(jī),可以簡化Linux、操作系統(tǒng)的安裝和配置,減少針對多個服務(wù)器的大規(guī)模管理工作。將KVM服務(wù)器虛擬化解決方案和Lustre集群文件系統(tǒng)相結(jié)合,構(gòu)建開源的服務(wù)器虛擬環(huán)境,可以實(shí)現(xiàn)服務(wù)器的動態(tài)遷移特性,虛擬環(huán)境的輸人輸出性能得到大幅提升,同時使得創(chuàng)建KVM用戶的耗費(fèi)時間明顯縮短。從實(shí)驗(yàn)結(jié)果看出,構(gòu)建的KVM和Lustre虛擬環(huán)境在讀寫映像文件和并行讀寫大文件時,性能有了顯著提高。當(dāng)集群文件系統(tǒng)結(jié)點(diǎn)數(shù)規(guī)模增加時,性能并沒有達(dá)到線性增長,在將來的工作中,可以對集群文件系統(tǒng)性能達(dá)到峰值時的結(jié)點(diǎn)數(shù)規(guī)模開展測試工作。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://m.hanmeixuan.com/
本文標(biāo)題:一個集群文件系統(tǒng)的虛擬化支持平臺研究與實(shí)現(xiàn)
本文網(wǎng)址:http://m.hanmeixuan.com/html/support/1112158546.html