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