1 引言
自從2006年Google首席執(zhí)行官埃里克·施密特在搜索引擎大會上首次提出“
云計算”(cloud compuIing)的概念,云計算就成為近幾年來IT領(lǐng)域一個非常熱門的研究方向。它使用戶能夠通過網(wǎng)絡(luò)便利、按需地從一個共享的、可配置的資源池中獲取計算、存儲、網(wǎng)絡(luò)等資源。而在云計算的3種部署模式(公有云、私有云、混合云)中,公有云雖然以其低廉的價格、靈活的彈性策略吸引大量的用戶。但是對于很多企業(yè)來說,和業(yè)務(wù)相關(guān)的數(shù)據(jù)是其生命線。由于公有云存儲數(shù)據(jù)的地方并不是企業(yè)本地,因此在使用指定防火墻之外且更接近公共區(qū)域處的應用的安全問題引起了大家的關(guān)注。
因此,構(gòu)建一個私有云平臺,使之主要為企業(yè)內(nèi)部提供云服務(wù),不對公眾開放,在企業(yè)的防火墻內(nèi)工作,并且企業(yè)IT人員能對其數(shù)據(jù)、安全性和服務(wù)質(zhì)量進行有效的控制,成為倍受大企業(yè)青睞的選擇。此外,私有云能夠提供更高效、個性化的彈性計算資源分配能力,能夠更有效地利用企業(yè)內(nèi)部現(xiàn)有的IT設(shè)備資源,打造更符合企業(yè)需求的云平臺。
鑒于上述提到的公有云的數(shù)據(jù)安全問題,本文的出發(fā)點在于:
·如何構(gòu)建一個適合本地環(huán)境的私有云:
·針對實驗室或開發(fā)環(huán)境構(gòu)建一個云計算平臺.使實驗室可以針對數(shù)據(jù)安全、計算資源的按需獲取等進行評估和探索。
在實際試驗中,本文基于OpenStack開源工具軟件包,實現(xiàn)了在科研實驗室環(huán)境中搭建私有云計算平臺,使得資源能夠得到彈性分配,且確保數(shù)據(jù)安全。
2 系統(tǒng)框架
2.1 OpenStack簡介
OpenStack是由Rackspace和美國國家航空航天局(NASA)共同開發(fā)的云計算平臺,幫助服務(wù)商和企業(yè)內(nèi)部實現(xiàn)類似于Amazon EC2和S3的云基礎(chǔ)架構(gòu)服務(wù)(infrastmcture as a service,IaaS)州。自2010年10月開始,OpenStack至今已經(jīng)發(fā)布了Austin、Bexar、Cactus、Diablo以及Essex這5個版本。由于OpenStack采用Apache2.0許可證發(fā)布源代碼,因此在短短兩年時間內(nèi)就吸引了IBM、Cisco、HP等175個企業(yè)及組織的加入。
OpenStack采用模塊化設(shè)計,它的3個主要模塊Nova(計算服務(wù))、Swift(存儲服務(wù))和Glance(鏡像服務(wù)),既可以組合在一起聯(lián)合工作,提供完整的云基礎(chǔ)架構(gòu)服務(wù):又可以獨立工作,分別提供虛擬化、云存儲和鏡像服務(wù)。此外,模塊化的設(shè)計能把老、舊、第三方的技術(shù)集成進來,從而滿足業(yè)務(wù)需要,也使得開發(fā)者能夠更容易地對OpenStack進行二次開發(fā)。
2.2私有云平臺框架
基于OpenStack的開源框架介紹,本文所搭建的私有云計算平臺由計算服務(wù)(Nova)、存儲服務(wù)(Swift)、鏡像服務(wù)(Glance)、身份認證服務(wù)、(Kevstone)和Web界面服務(wù)(Horizon)共5個部分組成。其中Nova是云平臺的控制器.它提供一個工具部署云,包括運行虛擬化實例、管理網(wǎng)絡(luò)以及控制用戶和其他項目對云的訪問。Swm是一個大容量、可擴展的、內(nèi)置冗余和容錯機制的對象存儲系統(tǒng)。對象存儲支持多種應用,比如復制和存檔數(shù)據(jù)、圖像或視頻服務(wù)、存儲次級靜態(tài)數(shù)據(jù)、開發(fā)數(shù)據(jù)存儲整合的新應用、存儲容量難以估計的數(shù)據(jù)、為Web應用創(chuàng)建基于云的彈性存儲等。Glance是一個虛擬機鏡像的存儲、查詢和檢索系統(tǒng),服務(wù)包括的Res曲l API允許用戶通過HTTP請求查詢VM鏡像元數(shù)據(jù)以及檢索實際的鏡像。Kevstone為運行OpenStack Compuce上的OpenStack云提供了認證和管理用戶、賬號和角色信息服務(wù),并為OpenStack Object Storage提供授權(quán)服務(wù)。Horizon是提供給用戶來使用云平臺的Web前端界面,用戶可以使用它進行實例、密鑰、彈性塊存儲、鏡像、云存儲以及角色權(quán)限等的管理。OpenStack的5個服務(wù)的關(guān)系如圖1所示。
圖1 openstack 服務(wù)關(guān)系
3 構(gòu)建過程
3.1 部署規(guī)劃
本文搭建的私有云計算平臺由客戶端、控制器以及計算節(jié)點3個角色組成,其中客戶端可以由實驗室局域網(wǎng)段內(nèi)任何一臺物理機來構(gòu)建;控制器由Nova、Glance、Swift、Keystone和Horizon組成,它們可以部署在一臺物理機上.也可以分別部署在不同的物理機上,為了提高云平臺的性能,減輕大量用戶對云控制器的壓力.本文采用的是第二種部署方法:計算節(jié)點由支持VT技術(shù)的10臺物理機組成,主要用于運行虛擬化實例,提供計算服務(wù)。
由于本文搭建的私有云主要應用于科研和中小型企業(yè)環(huán)境,云平臺的各個組成部分均位于同一局域網(wǎng)內(nèi).這樣。局域網(wǎng)內(nèi)任何一臺用戶端的物理機均可以直接訪問或使用云計算資源。此外,為了使得云平臺更安全,Nova提供了一種讓虛擬化實例和外網(wǎng)隔離的網(wǎng)絡(luò)方案,就是為虛擬化實例組建一個與外網(wǎng)隔離的私有網(wǎng)絡(luò),虛擬化實例通過一個內(nèi)網(wǎng)交換機來通信。若實例需要和外網(wǎng)通信,那就再分配一個浮動的外網(wǎng)IP地址給實例。私有云的部署規(guī)劃如圖2所示。
圖2 私有云部署
3.2部署過程
目前OpenStack可以采用StackOps光盤安裝、DevStack腳本在Ubuntu上安裝、源代碼安裝等多種方式進行構(gòu)建,支持ubuntu、Debian、Fedora等操作系統(tǒng)。考慮到云平臺的穩(wěn)定性、后續(xù)管理等問題,本文采用OpenStack源代碼安裝的方法進行試驗,使用的系統(tǒng)為12.04版Ubuntu,OpenStack版本為Essex,部署過程共分為5個部分,分別為Kevscone的部署、Swifl的部署、Glance的部署、Nova的部署和Horizon的部署。在部署的過程中,首先都需要從0penSlack的官方代碼網(wǎng)站https://github.com/openstack獲取源代碼,并把它們以及依賴項安裝到物理機上。
3.2.1 Kevstone的部署
Kevstone是OpenStack框架中,負責身份驗證、服務(wù)規(guī)則和服務(wù)令牌功能的部件。在部署OpenStack過程中。首先要安裝Kevstone并在Kevslone中注冊Nova、Swifl和Glance服務(wù),使得各項服務(wù)可以被授權(quán)和使用。Kevslone的部署流程如圖3所示。
圖3 Keystone部署流程
本文采用源碼方式安裝,即采用git clone方式獲取官方的Keystone和Keyslone client源碼,創(chuàng)建Keyston的配置文件路徑和文件以及數(shù)據(jù)庫配置,其中配置文件里面比較關(guān)鍵的項是connection和admin_token參數(shù)設(shè)置,connection指向?qū)⒁褂玫臄?shù)據(jù)庫,而adminjoken則是默認的管理員令牌,需要用它來訪問Keystone的服務(wù)。完成Keystone的配置文件后,需要為Keystone數(shù)據(jù)庫進行設(shè)置,Keysfone服務(wù)已經(jīng)具備了數(shù)據(jù)庫配置指令,即“sudokeyslone-manage db_sync”。
在完成基本的配置后,由于Keyslone、Nova等本身就是一個服務(wù),因此需要在Keystone服務(wù)內(nèi)注冊其服務(wù)。Keystone的用戶拓撲為租戶(tenant)、用戶(user)以及角色(role)的,它們分別表示了用戶組、用戶以及用戶具備的權(quán)限等。實際上,Keyslone并沒有規(guī)定租戶內(nèi)有多少個角色和用戶,但是基本的角色有管理員和一般用戶兩種。在注冊各項服務(wù)前,需要在Keystone內(nèi)注冊一個基本的租戶、用戶以及一個角色,以完成各項服務(wù)的注冊。在Kevslone內(nèi)的服務(wù)注冊包括服務(wù)(service)以及服務(wù)端點(endpoint)的注冊。其中服務(wù)是一個類的說明,服務(wù)端點是一個指向服務(wù)的訪問鏈接。包括IP地址、端口號等。利用這些端點可以實現(xiàn)Restful方式訪問openstack服務(wù),通過URL調(diào)用OpenStack API。
3.2.2 Swift的部署
Swift是Rackspace開發(fā)的一個分布式云存儲項目,可以實現(xiàn)云端文件的多節(jié)點分布式存儲管理,目前已經(jīng)成為OpenStack的一個核心部件。
本文采用源碼方式安裝,即采用git clone方式獲取官方的Swift源碼。Swift的配置流程如圖4所示,配置的關(guān)鍵步驟包括以下幾個。
圖4 Swift 部署流程
(1)配置代理服務(wù)器(proxy server),代理服務(wù)器負責把Swift的其他部分連接起來。對于每一個請求。代理服務(wù)器將在環(huán)(ring)中查找用戶(account)、容器(container)或者對象名(object),相應地將請求路由到對應的服務(wù)器上。對代理服務(wù)器的配置主要有代理服務(wù)器的綁定地址和端口以及Keystone對應的地址和端口。
(2)配置環(huán)的信息,環(huán)負責管理存儲在磁盤上的一個實體的名字和這個實體所在物理位置之間的映射關(guān)系。因此要創(chuàng)建3個環(huán)的文件,分別對應account、container和object。
(3)配置存儲節(jié)點,主要步驟為格式化并掛載磁盤。分別配置rsyncd.conf、account-server、container-server和obiect-server。Rsyncd的作用是維持存儲對象的一致性并進行數(shù)據(jù)更新操作。因此,rsyncd.conf配置了存儲節(jié)點所有account、container和obiect對應的信息。而account-server、container-server和object.server則分別配置了它們對應于環(huán)的端口。
(4)啟動rsyncd以及Swift服務(wù),即可使用云存儲。
3.2.3 Glance的部署
Glance是OpenStack用于管理虛擬機鏡像的工程,實現(xiàn)包括鏡像的上傳、驗證、刪除等管理。
本文采用源碼方式安裝,即采用git One方式獲取官方的Glance源碼,Glance的部署流程如圖5所示。其配置的主要步驟包括以下幾個。
圖5 Glance 部署流程
(1)Glance存儲的配置
Glance的鏡像文件可以用Swift來存儲,也可以在本地存儲。例如要用Swift來存儲鏡像文件,可把glance-api.conf文件里面的default_store=file和swift_store—create_container.On_put=False 改為default_score=swift 和swift_store_create_containe_on_put=Ture。同時,在文件glance-api.conf、glance-api-paste.ini和glance-registry-paste.ini中配置Keystone的相應信息。
(2)數(shù)據(jù)庫配置
在dance—reigstry.conf配置文件中,配置sql_connection參數(shù)指向Glance的數(shù)據(jù)庫,同時為Glance創(chuàng)建一個數(shù)據(jù)庫來保存鏡像的matadata,并且同步數(shù)據(jù)庫。
(3)啟動Glance服務(wù)
啟動Glance服務(wù),并通過glance指令來驗證該服務(wù)是否可用。
3.2.4 Nova的部署
Nova為OpenStack IaaS服務(wù)項目工程,可提供包括虛擬機實例、網(wǎng)絡(luò)、云硬盤(volume)等的管理,是OpenStack3個核心工程中最為復雜的一個,目前擴展包括0uantum和Melange等孵化項目。
本文采用源碼方式安裝,即采用git clone方式獲取官方的Nova源碼,包括nova.compute、nova.network、n ova_scheduler、nova_api和nova.volume等子部件的源代碼。圖6為Nova的部署流程.在源碼安裝完成后.需要做以下幾個工作:
·增加一個網(wǎng)絡(luò)橋接設(shè)備,使得虛擬機可以通過網(wǎng)橋進行通信:
·安裝tgt、iscsi等第三方工具,使得云硬盤可在各個節(jié)點相互掛載:
·安裝KVM虛擬機工具.Nova是通過第三方的虛擬機工具啟動實例:
·確?刂破髋c各計算節(jié)點的時間同步,這是因為計算節(jié)點的Nova服務(wù)會定時往控制節(jié)點的數(shù)據(jù)庫寫入自己的時間.然后與控制節(jié)點的本地時間做對比,假如時間差異大于某個閾值,則認定計算節(jié)點的Nova服務(wù)不正常。因此,為了保持控制節(jié)點與計算節(jié)點的時間一致性,需要將控制節(jié)點作為NTP(時間同步協(xié)議)的服務(wù)器,然后修改計算節(jié)點的NTP配置文件,使之以控制節(jié)點為時間同步服務(wù)器。
圖6 Nova 部署流程
Nova的基本配置主要通過統(tǒng)一的配置文件/etc/nova.conf完成,其中核心的配置包括網(wǎng)絡(luò)模式network_manager,本文選擇FlatDHCPManager參數(shù);調(diào)度策略schedule_driver參數(shù),本文選擇MultiScheduler和glance_api_servers參數(shù)。
完成上述配置后,創(chuàng)建并同步Nova的數(shù)據(jù)庫,最后啟動Nova服務(wù),在控制端一般啟動nova-compuIe、nova-network、nova-scheduler、nova-api和nova-volume等服務(wù),在計算節(jié)點僅需啟動nova-compute和nova-nelwork即可,計算節(jié)點會依據(jù)數(shù)據(jù)庫的連接地址自動完成服務(wù)的注冊。
3.2.5 Horizon的部署
Horizon為OpenStack的Web服務(wù)工程,采用Diango結(jié)構(gòu)開發(fā)。
本文采用源碼方式安裝,即采用git clone方式獲取官方的Horizon源碼,由于其自身具備Web服務(wù),無需通過Apache啟動。Horizon的配文件為源碼下的local_settingspy,主要修改包括設(shè)置參數(shù)OPENSTACK_HOST指向Keystone的IP地址。圖7展示了客戶端通過Horizon使用云平臺的情況。
圖7 使用云平臺情況
3.3定制開發(fā)環(huán)境鏡像
當OpenStack具備了控制節(jié)點、計算節(jié)點以及鏡像服務(wù)后,管理員就可以為云平臺定制所需的鏡像,使得云平臺可以向用戶提供虛擬化實例。定制鏡像流程如圖8所示。
圖8 定制鏡像流程
在定制過程中。創(chuàng)建虛擬磁盤及安裝虛擬機的操作與Linux下運行VM一致,均采用KVM虛擬機實現(xiàn)嗍,可直接以正常方式啟動KVM完成鏡像的制作。
在制作Windows鏡像時,需要安裝virtio驅(qū)動,同時為了避免讀寫硬盤I/O速率較低?稍趩覭VM時加一個參數(shù)cache=none。
在制作Linux鏡像時,由于70-persistent-net.rules會自動添加其他的網(wǎng)絡(luò)接口,需要刪除這個文件來避免自動添加除了eth0以外的接口。
在制作鏡像的過程中,也可以為鏡像定制軟件和服務(wù),即根據(jù)實驗室的開發(fā)需要。在虛擬機上安裝相應的開發(fā)環(huán)境或開啟相關(guān)服務(wù)。這樣制作的鏡像被用戶實例化后,用戶就可以直接使用完善的軟件平臺服務(wù),避免了逐一安裝軟件的繁瑣工作,提高了工作效率。例如制作Linux鏡像時,可以安裝并開啟VNC、遠程桌面協(xié)議(RDP)等服務(wù),這樣用戶就可以通過遠程可視化登錄使用Linux實例。
4 私有云平臺搭建過程中遇到的問題和解決方法
根據(jù)構(gòu)建私有云計算平臺的經(jīng)驗,本文在此給出一些部署云平臺過程中常見的問題以及解決方法。
(1)多節(jié)點部署完成后,通過nova-manage service list命令發(fā)現(xiàn)。計算節(jié)點的各個服務(wù)不穩(wěn)定
解決辦法:這是計算節(jié)點和控制節(jié)點的時間不同步造成的。通過NTP同步計算節(jié)點與控制節(jié)點的時間即可解決問題。
(2)云平臺正在運行中,但是突然間某個節(jié)點的nova-compute服務(wù)不正常
解決辦法:導致這個問題的原因可能是某個節(jié)點的nova-compute服務(wù)停掉或者在某個節(jié)點上啟動了兩個libvirtd程序。因此,需要查看nova-compuIe服務(wù)是否正在運行,假如nova-compute服務(wù)正在運行并且有兩個libvirtd程序啟動,則重啟libvirtd程序即可解決問題。
(3)虛擬化實例能夠啟動,但是無法獲取私有IP地址
解決辦法:由于OpenStack使用dnsmasq負責dhcp的工作.因此,假如計算節(jié)點的nova-network服務(wù)正常,則很可能是dnsmasq服務(wù)不正常,重啟虛擬化實例所在的計算節(jié)點的dnsmasq服務(wù)即可。
(4)虛擬實例啟動正常,但是無法連接
解決辦法:這個問題很可能是沒有打開相關(guān)端口造成的,出于安全性保障,Openstack在虛擬實例內(nèi)部網(wǎng)絡(luò)設(shè)置了防火墻,因此,假如要使用某些服務(wù)就要打開相關(guān)端口,如要用ssh連接就要打開TRP的22端口,要用ping服務(wù)就要打開ICMP的-1端口,要用遠程桌面協(xié)議(RDP)連接就要打開TCP的3389端口。
(5)由于操作失誤導致Nova數(shù)據(jù)庫崩潰或者想推倒數(shù)據(jù)庫重來
解決辦法:假如是數(shù)據(jù)庫里面某個table不正常,那么丟棄掉那個table,然后同步數(shù)據(jù)庫,就可以解決問題。假如整個Nova數(shù)據(jù)庫已經(jīng)混亂崩潰了。那么也不必重裝數(shù)據(jù)庫甚至重裝OpenStack,只需要丟棄Nova數(shù)據(jù)庫,然后重建一個Nova數(shù)據(jù)庫,給予Nova用戶操作Nova數(shù)據(jù)庫權(quán)限,同步數(shù)據(jù)庫,再重建私有網(wǎng)段以及浮動網(wǎng)段,打開相應端口,即可使Nova服務(wù)恢復正常。
5 OpenStack云平臺部署實驗及分析
本文搭建的私有云平臺提供給用戶的Web管理界面Horizon簡單易用,功能豐富,登錄界面如圖9所示,初始的用戶名和密碼與在Kevstone中注冊服務(wù)時使用的一樣。在Horizon中,管理員的權(quán)限包括刨建和管理用戶、項目組;修改用戶組的實例可用配額;修改可用鏡像類型:查看應用平臺的使用情況等。用戶的權(quán)限包括使用云存儲:對虛擬實例進行啟動、中斷、掛起、關(guān)閉、創(chuàng)建快照、分配和回收浮動IP地址、分配和回收云硬盤等操作。以下將從啟動實例、掛載云硬盤、使用云存儲等方面進行介紹。
圖9 Openstack 運作流程
私有云平臺的鏡像有UbunIull.10桌面版、Windows2008等,可以同時啟動Windows和Linux虛擬實例。實例類型有單核、雙核以及4核CPU等,還可按需要進行添加修改。啟動實例的過程為:選擇鏡像、修改實例名字、選擇實例類型、選擇密鑰以及選擇創(chuàng)建實例的個數(shù)。啟動實例過程如圖10所示,實例啟動可在幾分鐘內(nèi)完成。訪問實例有多種方式,可以通過noVNC從網(wǎng)頁訪問,可以通過遠程桌面協(xié)議(RDP)連接訪問,Linux實例還可通過puty、secureCRT等軟件訪問。
圖10 啟動實例
云硬盤是OpenStack云平臺提供給用戶的可持久彈性存儲。云硬盤創(chuàng)建時可根據(jù)用戶需要配置大小,云硬盤的狀態(tài)為available(可用)時,即可掛載到實例。在Windows實例中使用云硬盤的步驟為:通過磁盤管理工具把掛載的云硬盤的狀態(tài)改為online(在線),初始化云硬盤為分區(qū)表格式(GPT),格式化并使用云硬盤,如圖ll所示。在Linux實例中使用云硬盤的步驟為:通過fdisk工具在云硬盤中創(chuàng)建分區(qū),通過mkfs工具將云硬盤格式化、掛載并使用云硬盤,如圖12所示。
圖11 在windows實例掛載云硬盤
圖12 在linus實例掛載云硬盤
由于Swift內(nèi)置冗余和容錯機制,數(shù)據(jù)的丟失率很低;私有云與用戶位于同一網(wǎng)段內(nèi),網(wǎng)絡(luò)傳輸速度很高;私有云平臺位于防火墻內(nèi),受到攻擊的幾率較小,且不同用戶組之間存儲的數(shù)據(jù)看不見,數(shù)據(jù)私密性較高。因此云存儲是OpenStack私有云平臺的一個重要功能。它的使用步驟為:創(chuàng)建容器,在容器內(nèi)上傳文件,上傳文件時指定保存對象的名字并選擇文件路徑。
綜上所述,本文搭建的OpenStack私有云平臺具有使用簡單、按需選擇實例類型、快速部署虛擬實例、高效安全地存儲數(shù)據(jù)等特性.具有實際意義。
6 結(jié)束語
本文提出了一種基于OpenStack構(gòu)建私有云計算平臺的方案,旨在為科研實驗室以及中小企業(yè)提供彈性計算服務(wù),滿足不同用戶、不同階段的需求。同時,通過在虛擬鏡像中集成各種開發(fā)環(huán)境和開發(fā)工具,可以提供高可用性的云服務(wù)。此外,本文還分享了一些部署OpenStack云平臺過程中的經(jīng)驗。
本文在部署、使用OpenStack云平臺過程中,發(fā)現(xiàn)OpenStack對數(shù)據(jù)庫有很強的依賴性,且網(wǎng)絡(luò)性能并非最優(yōu),因此,如何提高數(shù)據(jù)庫的容錯性、穩(wěn)定性以及改善網(wǎng)絡(luò)性能,是進一步優(yōu)化私有云的研究方向之一。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標題:基于OpenStack構(gòu)建私有云計算平臺
本文網(wǎng)址:http://www.oesoe.com/html/support/11121510082.html