1、引言
云計算的應用越來越廣泛,對相關問題的研究也逐漸深入,不少公司和研究機構需要構建自己的私有云計算平臺。商業(yè)解決方案存在價格高、授權模式復雜等問題,并且無法獲得系統源代碼,很多情況下并不適合采用。開源云計算技術具有成本低、靈活性高等優(yōu)勢。能夠方便地獲得源代碼進行深入研究,因此很多機構都采用開源軟件構造私有云計算平臺。目前主要的開源云計算項目有Eucalyptus、OpenStack、OpenNebula和Nimbus,本文在對比這些項目的基礎上,分析了OpenStack的架構,闡述了利用OpenStack構建私有云平臺的方法。
2、私有云平臺概述
2.1私有云概念
從用戶使用的角度來看.云計算平臺可以分為公共云和私有云。公共云部署在互聯網中,用戶通過網絡獲得計算資源和存儲資源,并按照“即用即付”(pay-as-you-go)的方式付費。私有云是企業(yè)或組織內部數據中心的資源,只提供給機構內部人員使用,不對外面向公眾。私有云計算平臺一般構建在機構的防火墻內部.相對于公共云,其安全性更高.服務質量更有保證。私有云能夠充分利用現有的硬件資源和軟件資源,可以有效地降低信息化成本。
2.2私有云計算平臺構建模式
私有云平臺的構建可以采用3種模式:研究機構自行開發(fā),這種方式需要企業(yè)或研究機構有很強的技術實力。比較典型的是清華大學的透明計算平臺:采用商業(yè)解決方案,不少商業(yè)公司提供了較為成熟的私有云整體解決方案,比較典型的是IBM的“藍云”計算平臺;使用開源解決方案。這種方案是利用開源系統構造企業(yè)或組織的私有云平臺,比較典型的是使用Eucalyptus和OpenStack等開源系統。3種構造方式的比較見表1。
2.3開源私有云計算平臺優(yōu)勢
在自行開發(fā)、商業(yè)解決方案和開源解決方案3種私有云的構建模式中,開源方案具有如下多個優(yōu)勢。
(1)使用成本低
用戶只需要購買硬件設備和網絡設備,無需為開源軟件的使用付費。即使用戶需要開源軟件開發(fā)商提供服務,其需要付出的費用也相對比較低廉。例如,Ubuntu幫助用戶構建基于OpenStack的私有云平臺的服務費用是9 000美元。相關工作在5天內完成。
(2)開放源代碼
開放源代碼,有利于研究人員對系統內部的實現機制進行深入研究。開源軟件使用Apache或其他授權協議,用戶能夠獲得系統的源代碼.并且可以通過社區(qū)、討論組等多種形式,與開發(fā)人員和其他用戶深入探討各種技術問題。
(3)平臺可擴展性強
由于現有的云計算技術尚在快速發(fā)展中.沒有形成統一的技術標準和規(guī)范,一旦選擇了一種商業(yè)解決方案,就很難轉換到其他平臺。而開源云平臺在設計時一般會保持對主流云計算技術(如亞馬遜EC2、S3等)的兼容性,同時提供轉換工具,有效地避免了廠商鎖定問題,增強了系統的可擴展性。
3、開源云計算項目現狀
3.1 主流開源云計算項目介紹
目前已經有多個云計算平臺的開源實現,主要的開源云計算項目有Eucalyptus、OpenStack、CloudStack和OpenNebula等,基本介紹如下。
(1)Eucalyptus
Eucalyptusl6l是加州大學圣芭芭拉分校計算機科學系Rich Wolski領導的項目組完成的開源軟件項目,該項目開發(fā)和應用較早,目前占有最大的市場份額。其組件無需修改即可使用。可以運行在沒做修改的GNU Linux內核上。Eucalyptus提供了與Amazon云計算平臺EC2和S3接口的兼容性,可以使客戶應用方便地從私有云平臺遷移到公共云平臺。
(2)OpenStack
OpenStack是美國國家航空航天局(NASA)和Rackspace合作研發(fā)的開源云計算平臺項目.整合了NASA的Nebula Platform和Rackspace的Cloud Files Platform技術。OpenStack得到了多個商業(yè)公司和開源組織的支持,被認為是未來開源云計算平臺最具有潛力的技術。從Ubuntu11.04版本開始,已經把OpenStack作為內置集成的云計算技術。
(3)CloudStack
CloudStacktS源于2008年成立的VMOps公司,2010年改名為Cloud.com,分為社區(qū)版本和商業(yè)版本。2011年7月思杰系統(Citrix System)公司收購了Cloud.com,把以前維護的商業(yè)分支全部合并到了開源分支,并把該軟件加入Apache軟件基金會.成為了一個完全開源的項目。目前全球已經有多個大規(guī)模應用實例,如Zynga、GoDaddy等。
(4)OpenNebula
ODenNebul源于2005年Ignacio M Llorente和Rub6nS Montero創(chuàng)立的一個研究項目,于2008年7月發(fā)布了第一個公開版本。OpenNebula是一個虛擬化企業(yè)數據中心和云基礎設施建設和管理的行業(yè)開源解決方案,具有開放性、模塊化和可擴展的架構,目前已成為歐盟云計算項目RESERVOIR中虛擬執(zhí)行環(huán)境管理器VEEM的核心組件。
3.2開源云計算項目對比
Eucalyptus、OpenStack、CloudStack和OpenNebula這4個主流的開源云計算項目各有特點。表2從多個方面對這4個項目進行了對比。
在主流的開源云計算項目中,OpenStack目前已經獲得英特爾、惠普、戴爾、Ubuntu、思科等多個重要公司和開源組織的支持,是目前最熱門的開源云計算項目,因此本文選擇OpenStaek構造私有云平臺。
4、OpenStack平臺架構
4.1 OpenStack服務架構
OpenStack中有Compute、Storage、Image、Identity和Dashboard 5個子項目,其服務架構如圖1所示。
其中,Compute、Storage、Image是核心的3個子項目,提供計算、對象存儲和鏡像管理服務,其他的子項目包括提供身份認證的Identity、基于Web的管理控制臺Dashboard等。OpenStack需要通過虛擬化技術使用基礎硬件平臺,客戶應用系統可以通過OpenStack提供的接口(API)訪問各個云服務實例。
4.2 OpenStack主要實現
OpenStack云計算平臺管理系統目前有Nova、Swift、Glanee、Keystone和Horizon 5個主要的具體實現。Nova是Compute的具體實現.主要功能是計算資源管理和云平臺控制服務管理,運行和管理虛擬服務器實例等;Swift是Object Storage的具體實現.提供分布式云存儲服務,是一個可擴展的對象存儲系統;Glance是Image Service的具體實現,提供虛擬機鏡像的發(fā)現、注冊、獲取服務;Keystone是Identity的具體實現,提供統一的身份認證服務;Horizon是Dashboard的具體實現。提供通過Web用戶界面管理云計算平臺的方式。Nova、Glance、Keystone的安裝和使用都需要使用數據庫。可以采用開源的MySQL、PostgreSQL或SQLite等數據庫系統。
Nova和Swift是核心的兩類服務實現。Nova組件是云平臺的計算模塊,提供多種服務,包括API服務(nova.api)、消息隊列、計算服務(nova.compute)、網絡控制(nova.network)、卷服務(nova.volume)和調度管理(nova.scheduler)等;Swirl組件提供云存儲服務。適合存儲大量、長期、需要備份的數據。Swift通過“賬戶一容器一對象”(account.container.object)的形式提供對象存儲服務,一個賬戶下可有多個容器.每個容器中可存儲多個對象。環(huán)服務是Swift最重要的組件,用于記錄存儲對象與物理位置間的映射關系。
5、基于OpenStack的私有云平臺構建
5.1 總體說明
本文選擇OpenStack來構造私有云平臺實例,并采用Ubuntu、KVM等開源軟件作為平臺的基礎操作系統和虛擬化工具。私有云平臺使用的主要開源軟件說明見表3。
本文討論的私有云平臺實例主要應用在科研實驗室環(huán)境中.服務器采用x86架構,硬件設備初始的投入成本較低,并可以根據需要動態(tài)擴展各種資源。私有云平臺的初始硬件配置見表4。
5.2基礎環(huán)境的配置
一個典型的私有云計算平臺至少采用兩臺服務器,本文將其稱為服務器1和服務器2。服務器1上安裝Nova、Glance、Swift、Keystone和Horizon全部組件,作為云平臺的控制節(jié)點和存儲節(jié)點;服務器2僅安裝Nova組件,作為云平臺的計算節(jié)點。在平臺性能不能滿足需要的情況下,可以動態(tài)擴展計算和存儲等資源。每臺服務器均配置2塊吉比特以太網卡.第一塊網卡eth0設置為外部可訪問的IP地址,第二塊網卡eth1設置為云平臺各節(jié)點內部通信的IP地址。服務器1和服務器2的配置說明見表5。
服務器1和服務器2首先需要安裝基礎操作系統
(Base OS).本平臺使用Ubuntu Server 12.04的64 bit版本。安裝過程包括系統分區(qū)、設置初始用戶、配置網卡的IP地址等過程,在選擇系統組件時僅需要選擇Openssh.server。在Ubuntu安裝完成后,需要使用NTP(network time protoc01)同步服務器時間,即在服務器1安裝NTP服務器,其他服務通過該服務器進行同步。
由于OpenStack的Nova和Glance等組件需要使用關系數據庫,本平臺在基礎操作系統中安裝MySQL 5.5數據庫,并使用下列SQL腳本構造OpenStaek數據庫:
CREATE DATABASE nova;
CREATE USER novadbadmin;
GRANTALLPRIVILEGESONnova*TO'novadbadmin'@%,'
SET PASSWORD FOR"novadbadmin’@%7=PASSWORD("novasecret,);
CREATE DATABASE glance;
CREATE USER dancedbadmin;
GRANTALLPRIVILEGESoNglance*TO'glancedbadmin'@%'
SET PASSWORD FOR"glancedbadmin'@'%'=PASSWORD("glancesecret');
CREATE DATABASE keystone;
CREATE USER keystonedbadmin;
GRANT ALL PRIVILEGES ON keystone.+TO"keystoned badmin'@7%';
SET PASSWORD FOR 'keystonedbadmin'@%'=PASSWORD("keystonesecret');
5.3 OpenStack各組件的安裝配置
OpenStack一般按照Keystone、Glance、Nova、Swift和Dashboard順序進行安裝和配置,服務器1依次安裝以上全部組件,服務器2只需要安裝Nova組件。
(1)安裝和配置Keystone組件
該組件為OpenStaek提供認證、授權、用戶管理和角色管理等服務。在使用apt-get命令安裝并連接數據庫成功后,需要創(chuàng)建租戶(tenant)、用戶(user)和角色(role),關鍵代碼如下:
keystone tenant-create-name tenant_name
keystone user-create-name user_name-pass user_password.email user_email
keystone role-create-name role_name
然后將租戶、用戶和角色關聯起來,關鍵代碼如下:
keystone user-role-add-user $USER_ID-role $ROLE_ID-tenant_id $TENANT_ID
需要注意的是.SUSER_ID、$ROLEID和$TENANT_ID必須使用OpenStack分配的ID號碼,該號碼可以使用keystone user-list、keystone tenant-list和keystone role-list命令查詢。
接下來是創(chuàng)建服務目錄和端點(endpoinI)信息,關鍵代碼如下:
keystone service-create-name service_name-type service_type-description 'Description of the service'
keystone endpoint-create -region region_name-service_id service_id-publieurl public url-adminurl admin_url-intemal_url intemal_url
全部配置成功后,Keystone組件安裝完成。
(2)安裝和配置Glance組件
Glance提供虛擬機鏡像管理服務,其安裝配置比較簡單,首先使用apt-get命令下載安裝,然后配置租,用戶和密碼信息、連接MySQL數據庫并配置環(huán)境變量.主要是修改,ete/glanee/目錄下的glanee-api-paste.ini、glance-registry-paste.ini和glance.api.conf 3個文件。在配置成功Glance服務后,通過使用Keystone的授權機制,可以將虛擬機鏡像上傳到私有云計算平臺中。
(3)安裝和配置Nova組件
Nova組件是計算模塊。提供多種相關服務。首先使用apt-get命令安裝,然后修改/ete/nova/nova.cod配置信息,創(chuàng)建物理卷和卷組信息,改變/etc/nova目錄和/ete/nova/nova.conf文件的權限,并通過/etc/nova/api-paste.ini配置租/用戶和密碼信息,連接MySQL數據庫。在這些操作完成后,需要為虛擬機實例設置待分配的口地址段,關鍵代碼如下:
Sudo nova-manange network create private –fixed_range_v4=192.168.4.32/27 – num_networks=1 –bridge=br100-bridge_interface=eth1-netework_size=32
在導出環(huán)境變量并重啟Nova服務后,可以使用sudonova-manage service list查看Nova服務狀態(tài),如圖2所示。
(4)安裝和配置Swift組件
該組件提供云存儲服務,其配置過程比較復雜。首先使用apt-get命令安裝,然后設置Swift存儲后端(backend)。存儲后端即可以使用已經存在的分區(qū)/卷,也可以創(chuàng)建回送文件(loopback file)系統。本平臺在服務器1分區(qū)時已經給Swift預留了約500 GB的磁盤空間,因此直接使用該分區(qū)。使用XFS對該分區(qū)進行格式化,然后掛載該分區(qū),并根據需要創(chuàng)建一些節(jié)點。
然后配置文件分布工具Rsyne,Rsync能夠維護對象副本。需要被Swift的多個服務使用。再配置Swift組件信息,需要修改paste.deploy和/etc/swift/swift.conf等文件。下一步是配置Swift的代理服務,代理服務提供看守功能。用來響應客戶請求,并負責其他組件間的相互通信過程,配置時需要修改/etc/swift/proxyrserver.conf文件。
接下來需要配置賬號服務、容器服務和對象服務。主要是修改/etc/swift目錄下的account-server.conf、container-server.conf、object-server.conf 3個配置文件信息。最后配置Swift的環(huán)服務,所有的配置完成后,即可使用私有云存儲服務。
(5)安裝Dashboard組件
該組件提供Web形式的管理界面。其安裝配置比較簡單,直接使用apt-get命令安裝,然后在瀏覽器中輸入服務器1的口地址即可訪問Dashboard服務。
5.4配置虛擬化環(huán)境
Nova組件本身不提供虛擬化的能力.而是通過libvirtAPI與虛擬機進行交互.支持Xen、KVM、VMware、UML(user mode Linux)、LXC和QEMU等虛擬化技術。這些技術中,Xen和KVM是最主流的開源虛擬化項目。Xen使用半虛擬化技術。能夠在不支持硬件虛擬化的服務器上運行,其架構比較復雜。KVM是輕量級的虛擬化管理程序模塊,目前已經被集成到Linux內核中.只支持全虛擬化技術,需要服務器支持硬件虛擬化技術。本文討論的私有云計算平臺服務器的CPU為Intel Xeon E3.1230。支持Intel VT硬件虛擬化技術,因此選擇KVM虛擬化技術。
首先安裝KVM,這一過程比較簡單。然后制作操作系統鏡像文件。這些鏡像既可以從網絡中下載。也可以自行制作。由于不同的應用環(huán)境需要默認安裝的應用軟件各不相同,所以一般需要自行制作鏡像。以Ubtmtu為例,自行制作鏡像首先需要創(chuàng)建img文件,關鍵代碼如下:
kvm-img create -f qcow2 server.img 10G
然后利用KVM虛擬光驅加載操作系統ISO文件,完成虛擬機中操作系統的安裝。在鏡像制作完成后,通過Glance命令上傳到私有云平臺中,關鍵代碼如下:
glance add Halne=”<Image name>”is_public=truecontainer_format=ovf disk_format=qeow2<<filename>.img
在鏡像上傳成功后。就可以在私有云計算平臺中創(chuàng)建虛擬機實例。創(chuàng)建過程主要步驟包括創(chuàng)建授權、加載鏡像、連接和使用鏡像等。
5.5管理OpenStack服務
在需要的服務配置完成后,可以通過Dashboard對OpenSatek的各項服務進行在線監(jiān)控。OpenStack服務狀態(tài)的Web監(jiān)控如圖3所示。
Dashboard同時提供了對OpenStack各服務在線管理的功能,主要包括管理虛擬機實例、管理操作系統鏡像、管理默認硬件配置文件、管理用戶、管理卷等.其圖形化操作界面比命令行模式更加友好。
6、開源私有云平臺運行實例
6.1 云計算軟件測試平臺說明
在筆者參與的研究項目中,目前已經利用OpenStack、KVM等開源軟件構造了私有云計算平臺.該平臺用于進行云計算軟件測試項目。用戶通過瀏覽器登錄和使用云測試項目管理系統,完成申請與執(zhí)行測試項目、配置虛擬測試環(huán)境(用術語“硬件矩陣”和“軟件矩陣”表示)、分配和使用虛擬測試服務器等操作,系統的業(yè)務流程如圖4所示。
測試用戶可選擇合適的測試環(huán)境,申請需要的CPU、內存和磁盤等硬件資源和應用服務器、數據庫等軟件資源,通過云平臺實現快速部署。用戶對云測試平臺計算、存儲和鏡像等資源的調用需要使用Keystone組件的認證服務,需要長期保存和使用的測試數據需要使用Swift組件的云存儲服務。云測試平臺提供了Java、.net和PHP 3種開發(fā)技術的云測試環(huán)境,3種云測試環(huán)境的詳細說明見表6。
6.2云測試執(zhí)行實例
筆者使用了私有云平臺的虛擬測試服務器進行了某信息采集軟件客戶端的功能測試,硬件配置選擇1CPU、512 MB內存和2 GB硬盤空間,軟件環(huán)境選擇了Java的Web軟件測試環(huán)境。創(chuàng)建測試項目的系統界面如圖5所示。
虛擬測試服務器的創(chuàng)建分為自動創(chuàng)建和手工創(chuàng)建兩種方式。如果測試矩陣變量的默認取值可以滿足用戶需要,用戶配置完參數后系統通過調用OpenStaek的API自動開啟虛擬測試服務器。如果默認取值不符合用戶要求,用戶可以填寫新建矩陣需求表,由系統管理員根據實際情況進行手工添加。
用戶一般通過遠程連接對虛擬服務器進行管理。Linux平臺使用0penSSH的命令行界面和VNC的圖形界面,Windows Server平臺使用Win&wS系統中的“遠程桌面”工具。用戶遠程連接進入虛擬測試服務器后,就可以配置和使用該虛擬服務器。其使用方式和使用普通物理服務器一致。
7、結束語
利用開源軟件構造私有云計算平臺具有成本低、部署快、無特殊硬件限制等多個優(yōu)勢,將在教學、科研和商業(yè)中得到更加廣泛的應用。OpenStack是最值得關注的開源云計算項目,但是目前其配置過程比較復雜。接下來的研究中,筆者將編寫自動化安裝腳本,以簡化OpenStack的部署和應用難度。同時深入研究OpenStack各組件的API,根據研究需要對OpenStack進行二次開發(fā)。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:基于開源軟件的私有云計算平臺構建
本文網址:http://www.guhuozai8.cn/html/consultation/10839712738.html