摘 要: 使用Eucalyptus作為私有云的實現平臺,并利用KVM制作VM鏡像實例,搭建了一個適合實驗室資源管理控制的實驗云計算平臺。
關鍵詞: 實驗云;虛擬化;鏡像實例
目前實驗室管理中面臨著大量的用戶系統需求和設備需求。這些需求包括:日常的教學工作需求、學生實訓的需求,老師對科研和實驗的需求,實驗室部署各種管理系統(如設備資產管理系統、排課系統、開放實驗室預約系統等)的需求等。如何將有限的實驗設備資源進行最大化的、科學合理的分配利用是當前急需解決的一項重要課題。
隨著云計算的快速發展,相關云技術及產品的廣泛應用,可以借助云計算的開源產品搭建實驗室(實訓中心)的私有云平臺,幫助解決實驗資源日益增長的需求問題。利用云計算的虛擬化技術可以構建多樣化的虛擬資源,將個人桌面系統、服務器系統等操作系統及設備進行虛擬化和實例化,為不同的用戶提供彈性計算系統架構和設備,滿足用戶的需求。
當前利用開源云計算產品搭建專用的私有云計算平臺是一個研究熱點。目前已有的開源云計算產品有 Eucalyptus、OpenNebula、Nimbus、ECP和OpenStack 。參考文獻[1-2]對這些產品的VM管理、集群管理、狀態監控、資源調度和網絡管理等方面的進行比較分析[1-2],從技術和應用范圍來看Eucalyptus開源產品比較適合用于構建所需的實驗云計算平臺。本文采用Eucalyptus作為實驗云的實現平臺,并利用KVM技術進行VM管理,搭建了一個適合實驗室(實訓中心)資源管理控制的私有云計算平臺。
1 相關技術
1.1 Eucalyptus
Eucalyptus是由Nurmi D 等人開發的一個開源的云計算基礎設施服務(IaaS),與Amazon EC2的服務接口兼容[3]。Eucalyptus采用模塊化的設計,由節點控制器(Node Controller)、集群控制器(Cluster Controller)、云控制器(Cloud Controller)、存儲控制器(Storage Controller)和Walrus組成。這些組件可以進行替換和升級,具有容易擴展、安裝和維護 的特點。Eucalyptus能夠工作在Linux/Ubuntu,Red Hat Enterprise Linux,CentOS等多種操作系統上,并且支持VMware, Xen和KVM hypervisors等虛擬化技術,幫助用戶搭建所需的云基礎設施平臺[4-5]。
1.2 KVM虛擬化
KVM(Kernel-based Virtual Machine)是由以色列的一個開源組織Qumranet所開發,是一種開源的系統虛擬化模塊[6]。從LinuxV2.6.20版起KVM內嵌在Linux內核中,將 Linux 主機變成一個虛擬機監視器,使它擁有本地虛擬化能力,能夠方便地使用Linux內核提供的內存管理、多處理器支持等功能,易于實現。KVM是采用基于x86硬件虛擬化技術,可以運行在Intel VT-x和AMD SVM所支持的設備上[7]。KVM的虛擬化實現是采用宿主機(Host based)模型,并提供了一個虛擬化框架,需要QEMU作為平臺虛擬化的協助工具,能夠對處理器、顯卡、磁盤、網絡設備等外設虛擬成完整的計算機系統。另外,KVM還需使用Libvirt管理虛擬機、API庫、deamon和virsh命令行工具協同工作,才能完全實現云計算平臺的虛擬化工作[8-9]。
2 實驗云拓撲設計
在Eucalyptus的體系結構設計中,云控制器是整個Eucalyptus系統的核心,負責高層次的資源調度。Walrus是一個類似于Amazon S3的存儲服務,用于存儲虛擬機映像和用戶數據。集群控制器是一個集群的前端,負責協調一個集群內的計算資源,并且管理集群內的網絡流量。存儲控制器是一個與Amazon EBS類似的存儲塊設備,可以用來存儲業務數據。節點控制器是最終的計算節點,通過調用操作系統層的虛擬化技術來啟動和關閉虛擬機[10]。在同一個集群內的所有計算節點必須在同一個子網內。在一個集群內通常需要部署一臺存儲服務器,為該集群內的計算節點提供數據存儲服務。
根據Eucalyptus的體系設計結構和實驗(實訓)中心現有的設備資源,將云控制器和Walrus部署到一臺服務器上作為實驗云的控制中心;集群控制器和存儲器安裝到一臺服務器上作為實驗云的集群管理中心;每個接入節點由4臺高性能工作站組成,并在每臺工作站上實施KVM虛擬化,安裝需要的多個VM(Virtual Machines)系統。實驗(實訓)中心的任何一臺PC都可以作為客戶端訪問實驗云上的虛擬實例,進行相關的業務操作。實驗云的網絡拓撲結構如圖1所示,云的所有組成部分均部署在同一個局域網中,便于實驗員對云平臺的管理維護和安全控制。
3 實驗云實現
3.1 Eucalyptus平臺搭建
根據實驗云網絡拓撲結構設計,進行網絡IP地址規劃,合理分配設備需要的IP地址,具體的分配如表1所示。
(1)系統安裝
為控制中心、集群管理和接入節點的服務器安裝Ubunutu Server系統。在控制中心的服務器上安裝云控制器和Walrus模塊,集群管理的服務器上安裝cluster controller和strorage controller模塊。每臺接入節點的工作站除了安裝Node節點模塊外,還需安裝bridge-util、kvm和openssh-server3個額外的軟件包。bridge-util用于建立網橋,kvm用于VM管理,openssh-server為Node提供ssh服務。
在安裝的過程中需要設置好云控制器的主機名稱、虛擬機內網模式、網段、子網掩碼和DNS以及集群管理的cluster name等參數內容。在Node系統中需要配置以太網接口為橋接模式,所有的VM系統的虛擬網絡接口將接入到這個橋上,使用“sudo passwd <password>”命令設置臨時的Eucalyptus用戶密碼方便接入節點與控制中心建立連接。
(2)系統模塊注冊
在控制中心的云控制器中需要對Walrus、Cluster Controller和Strorage Controller進行注冊,實現云控制器與各個模塊的連接。具體實現命令如下。
euca_conf --register-walrus 10.34.35.10
euca_conf --register-cluster ClusterAIBLab 10.34.35.11
euca_conf --register-sccluster 10.34.35.11
注冊成功后系統會自動啟動這3個模塊的服務。然后需要注冊Node節點,Node用于運行VM實例。先配置云控制器與Node的時間同步,利用“sudo -u eucalyptus ssh-copy-id -i,eucalyptus/.ssh/id_rsa.pub,eucalyptus@10.34.35.12”命令將ssh公鑰傳輸到各個Node中。在Node中啟動Eucalyptus-nc服務后,控制中心的云控制器執行“euca_conf --register-nodes 10.34.35.12”命令,依次找到云拓撲中4個Node節點的計算機并進行注冊。
(3)系統配置
在控制中心的服務器瀏覽器中輸入“https://10.34.35.10:8443”地址,進入云控制器平臺下載(x509)安全證書,運行Eucalyptus系統。第一次登錄時利用系統提供的默認用戶名和密碼(均為admin)進入系統,更改管理員密碼、設置管理員的電子郵件地址、確認云控制器主機的IP和查看各個注冊模塊。為了便于用戶管理云平臺的虛擬機映像文件(EMI)資源,需要在服務器上安裝EC2 API and AMI管理工具。利用AMI管理工具上載Eucalyptus系統默認的Linux系統鏡像系統實例和綁定AMI-ID等,借助EC2工具進行虛擬機映像實例管理。所有連接到控制中心的客戶端必須下載安裝(x509)安全證書才能使用實驗云的各種資源。
3.2 VM鏡像制作
完成Eucalyptus實驗云平臺的搭建工作后需要向云平臺添加鏡像系統,通過鏡像的實例化(系統虛擬化)為用戶提供科研服務和實驗服務。利用Win2008R2的ISO安裝文件在KVM中創建接入節點需要的VM,具體實現步驟如下。
(1)創建虛擬系統
在接入節點的系統下創建存放鏡像文件需要的目錄,命名為virtualsys。使用“$dd if=/dev/zero of=~/virtualsys/ windows.win2008.img bs=1M count=20000”命令創建一個文件大小為20 GB的Windows Server 2008虛擬機磁盤文件。執行“qemu-kvm -drive file= ~/virtualsys//windows.win2008.img,If=scsi,boot=on -cdrom Win2008R2.iso -m 1024 -boot d”命令進行系統安裝,Win2008在qume的環境下完成安裝后進行遠程桌面配置和建立遠程桌面用戶。
(2)創建ramdisk文件
安裝syslinux并在/usr/lib/syslinux目錄下找到memdisk文件,將其復制到~/virtualsys目錄下。利用“$dd if=/dev/zero of=~/virtualsys/win28-boot.img bs=512 count=2880”命令創建floppy鏡像文件win28-boot.img。重啟Win2008虛擬機,將floppy加載到虛擬機中。進入Windows Server 2008系統,為C盤下的boot.ini文件添加Windows系統啟動信息,然后將ntldr、ntdetect.com、sym_hi.sys和boot.ini文件復制到已經格式化的floppy中。復制后將floppy中的sym_hi.sys改名為Ntbootdd.sys,完成Win2008虛擬機啟動引導盤制作。
(3)上傳虛擬鏡像
memdisk對應kernel,win28-boot.img對應ramdisk,windows.win2008.img對應rootfs,分別將這3個文件進行上傳,并同時利用“euca-bundle-image -i”命令將rootfs與kernel和ramdisk綁定,完成接入節點的VM創建。
3.3 啟動VM實例
鏡像上傳后,在云控制中使用“euca-describe-images”命令查看虛擬機是否已經成功。上傳后進行鏡像實例注冊,開放22端口并以規劃好的VM地址段分配IP,系統會為每個鏡像實例分配一個“emi-ID”編號,通過執行“euca-run-instances -t c1.large emi-ID”命令,依次啟動Eucalyptus中的鏡像實例。
在云控制器中執行“watch -n5 euca-describe-instances”命令查看虛擬機實例的運行情況,如圖2所示。為了便于對VM的管理,在接入節點上安裝了KVM的圖形管理工具軟件,如圖3所示。根據虛擬系統管理軟件可以幫助實驗員查看虛擬實例的運行情況,掌握實例對資源的占用情況,便于動態調節實例。
實驗(實訓)中心的客戶端可以使用“$ rdesktop -u username -p passwd 172.16.1.3 -f”命令遠程登錄IP地址為172.16.1.3的接入節點上的一臺運行中的VM系統。
3.4 防火墻配置
為保證實驗(實訓)中心的客戶端與實驗云上的VM能夠互相訪問,需要對Eucalyptus的包過濾系統進行設置。
在iptables包過濾防火墻中先清除原則的規劃,然后添加允許INPUT和FORWARD鏈規則,用于向內和向外轉發數據包,并設置172.16.1.3~254的網段都能通過控制中心的eth0(連接外網)接口向外發送數據包。另外,還需要設置校園網用戶對實驗云上的VM服務器的訪問,以訪問IP為172.16.1.3的網站服務器為例,在iptables中添加如下命令:
iptables -t nat -a PREROUTING -i eth0 -p tcp -m tcp -dport 22 -j DNAT -to-destination 172.16.1.3:22
iptables -t nat -a PREROUTING -i eth0 -p tcp -m tcp -dport 8089 -j DNAT -to-destination 172.16.1.3:8089
執行以上兩條命令后,校園網的客戶端用戶可以訪問到實驗(實訓)中心的網站服務器實例。
本文通過對開源云計算產品的研究,選擇Eucalyptus作為實驗云計算的實現平臺。利用Eucalyptus的系統架構設計了實驗云的網絡拓撲結構,在各個拓撲節點上安裝所需的操作系統,注冊各個組成模塊和配置網絡參數;然后利用KVM虛擬化技術進行實驗云的鏡像系統制作、上傳、綁定和啟動實例;最后配置云平臺的iptables包過濾防火墻,實現校園網用戶對實驗云上運行實例的訪問,完成實驗云計算平臺的搭建。未來的研究重點是利用已搭建好的實驗云平臺設計開發實驗室虛擬桌面系統和建設虛擬實驗室,拓展實驗云的服務提供能力,更好地解決校園用戶與實驗室資源的供需問題。
參考文獻
[1] 林利,石文昌.構建云計算平臺的開源軟件綜述[J].計算機科學,2012,39(11):1-7.
[2] 陳吉榮.構建私有云計算平臺的EUCALYPTUS架構分析[J].電腦知識與技術,2010,6(15):3973-3975.
[3] 崔巍, 李益發, 斯雪明.基于Eucalyptus的基礎設施即服務云框架協議設計[J].電子與信息學報,2012,34(7):1748-1754.
[4] 陳仲.基于EUCALYPTUS的虛擬云改進研究[J].現代情報,2011,31(5):152-157.
[5] 方薇.Eucalyptus開源框架下云平臺的構建與性能分析[J].計算機系統應用,2012,12(6):1-5.
[6] 崔澤永.基于KVM的虛擬化研究及應用[J].計算機技術與發展,2011,21(6):108-111.
[7] 黃煜.KVM虛擬化技術中處理器隔離的實現[J].計算機系統應用,2012,12(1):179-182.
[8] 姚華超,王振宇.基于KVM_QEMU與Libvirt的虛擬化資源池構建[J].計算機與現代化,2013(7):26-33.
[9] 李斌.基于KVM的服務器虛擬化環境實現[J].洛陽理工學院學報(自然科學版),2013,23(2):66-69.
[10]張帆.基于Eucalyptus構建私有云計算平臺[J].電信科 學,2011(11):57-61.