国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenStack構建私有云計算平臺*

2012-10-08 01:58:46李小寧金連文黎德生
電信科學 2012年9期
關鍵詞:源碼鏡像硬盤

李小寧,李 磊,金連文,黎德生

(華南理工大學電子與信息學院 廣州 510640)

1 引言

自從2006年Google首席執(zhí)行官埃里克·施密特在搜索引擎大會上首次提出 “云計算”(cloud computing)的概念,云計算就成為近幾年來IT領域一個非常熱門的研究方向。它使用戶能夠通過網絡便利、按需地從一個共享的、可配置的資源池中獲取計算、存儲、網絡等資源[1]。而在云計算的3種部署模式(公有云、私有云、混合云)中,公有云雖然以其低廉的價格、靈活的彈性策略吸引大量的用戶,但是對于很多企業(yè)來說,和業(yè)務相關的數據是其生命線。由于公有云存儲數據的地方并不是企業(yè)本地,因此在使用指定防火墻之外且更接近公共區(qū)域處的應用的安全問題引起了大家的關注[2]。

因此,構建一個私有云平臺,使之主要為企業(yè)內部提供云服務,不對公眾開放,在企業(yè)的防火墻內工作,并且企業(yè)IT人員能對其數據、安全性和服務質量進行有效的控制[3],成為倍受大企業(yè)青睞的選擇。此外,私有云能夠提供更高效、個性化的彈性計算資源分配能力,能夠更有效地利用企業(yè)內部現(xiàn)有的IT設備資源,打造更符合企業(yè)需求的云平臺。

鑒于上述提到的公有云的數據安全問題,本文的出發(fā)點在于:

·如何構建一個適合本地環(huán)境的私有云;

·針對實驗室或開發(fā)環(huán)境構建一個云計算平臺,使實驗室可以針對數據安全、計算資源的按需獲取等進行評估和探索。

在實際試驗中,本文基于OpenStack開源工具軟件包,實現(xiàn)了在科研實驗室環(huán)境中搭建私有云計算平臺,使得資源能夠得到彈性分配,且確保數據安全。

2 系統(tǒng)框架

2.1 OpenStack簡介

OpenStack是由Rackspace和美國國家航空航天局(NASA)共同開發(fā)的云計算平臺,幫助服務商和企業(yè)內部實現(xiàn)類似于Amazon EC2和S3的云基礎架構服務(infrastructure as a service,IaaS)[4]。自2010年10月開始 ,OpenStack 至今已經發(fā)布了 Austin、Bexar、Cactus、Diablo 以及Essex這5個版本。由于OpenStack采用Apache2.0許可證發(fā)布源代碼,因此在短短兩年時間內就吸引了IBM、Cisco、HP等175個企業(yè)及組織的加入。

OpenStack采用模塊化設計,它的3個主要模塊Nova(計算服務)、Swift(存儲服務)和 Glance(鏡像服務),既可以組合在一起聯(lián)合工作,提供完整的云基礎架構服務;又可以獨立工作,分別提供虛擬化、云存儲和鏡像服務。此外,模塊化的設計能把老、舊、第三方的技術集成進來,從而滿足業(yè)務需要,也使得開發(fā)者能夠更容易地對OpenStack進行二次開發(fā)。

2.2 私有云平臺框架

基于OpenStack的開源框架介紹,本文所搭建的私有云計算平臺由計算服務(Nova)、存儲服務(Swift)、鏡像服務(Glance)、身份認證服務(Keystone)和Web界面服務(Horizon)共5個部分組成。其中Nova是云平臺的控制器,它提供一個工具部署云,包括運行虛擬化實例、管理網絡以及控制用戶和其他項目對云的訪問[5]。Swift是一個大容量、可擴展的、內置冗余和容錯機制的對象存儲系統(tǒng)。對象存儲支持多種應用,比如復制和存檔數據、圖像或視頻服務、存儲次級靜態(tài)數據、開發(fā)數據存儲整合的新應用、存儲容量難以估計的數據、為Web應用創(chuàng)建基于云的彈性存儲[5]等。Glance是一個虛擬機鏡像的存儲、查詢和檢索系統(tǒng),服務包括的Restful API允許用戶通過HTTP請求查詢VM鏡像元數據以及檢索實際的鏡像。Keystone為運行OpenStack Compute上的OpenStack云提供了認證和管理用戶、賬號和角色信息服務,并為OpenStack Object Storage提供授權服務。Horizon是提供給用戶來使用云平臺的Web前端界面,用戶可以使用它進行實例、密鑰、彈性塊存儲、鏡像、云存儲以及角色權限等的管理。OpenStack的5個服務的關系如圖1所示。

3 構建過程

3.1 部署規(guī)劃

本文搭建的私有云計算平臺由客戶端、控制器以及計算節(jié)點3個角色組成,其中客戶端可以由實驗室局域網段內任何一臺物理機來構建;控制器由Nova、Glance、Swift、Keystone和Horizon組成,它們可以部署在一臺物理機上,也可以分別部署在不同的物理機上,為了提高云平臺的性能,減輕大量用戶對云控制器的壓力,本文采用的是第二種部署方法;計算節(jié)點由支持VT技術的10臺物理機組成,主要用于運行虛擬化實例,提供計算服務。

由于本文搭建的私有云主要應用于科研和中小型企業(yè)環(huán)境,云平臺的各個組成部分均位于同一局域網內,這樣,局域網內任何一臺用戶端的物理機均可以直接訪問或使用云計算資源。此外,為了使得云平臺更安全,Nova提供了一種讓虛擬化實例和外網隔離的網絡方案,就是為虛擬化實例組建一個與外網隔離的私有網絡,虛擬化實例通過一個內網交換機來通信。若實例需要和外網通信,那就再分配一個浮動的外網IP地址給實例。私有云的部署規(guī)劃如圖2所示。

3.2 部署過程

目前OpenStack可以采用StackOps光盤安裝、DevStack腳本在Ubuntu上安裝、源代碼安裝等多種方式進行構建,支持Ubuntu、Debian、Fedora等操作系統(tǒng)??紤]到云平臺的穩(wěn)定性、后續(xù)管理等問題,本文采用OpenStack源代碼安裝的方法進行試驗,使用的系統(tǒng)為12.04版Ubuntu,OpenStack版本為Essex,部署過程共分為5個部分,分別為Keystone的部署、Swift的部署、Glance的部署、Nova的部署和Horizon的部署。在部署的過程中,首先都需要從OpenStack的官方代碼網站https://github.com/openstack獲取源代碼,并把它們以及依賴項安裝到物理機上。

3.2.1 Keystone的部署

Keystone是OpenStack框架中,負責身份驗證、服務規(guī)則和服務令牌功能的部件。在部署OpenStack過程中,首先要安裝Keystone并在Keystone中注冊Nova、Swift和Glance服務,使得各項服務可以被授權和使用。Keystone的部署流程如圖3所示。

本文采用源碼方式安裝,即采用git clone[6]方式獲取官方的Keystone和Keystone client源碼,創(chuàng)建Keyston的配置文件路徑和文件以及數據庫配置,其中配置文件里面比較關鍵的項是connection和admin_token參數設置,connection指向將要使用的數據庫,而admin_token則是默認的管理員令牌,需要用它來訪問Keystone的服務。完成Keystone的配置文件后,需要為Keystone數據庫進行設置,Keystone服務已經具備了數據庫配置指令,即“sudo keystone-manage db_sync”。

在完成基本的配置后,由于Keystone、Nova等本身就是一個服務,因此需要在Keystone服務內注冊其服務。Keystone 的用戶拓撲為租戶(tenant)、用戶(user)以及角色(role)的,它們分別表示了用戶組、用戶以及用戶具備的權限等。實際上,Keystone并沒有規(guī)定租戶內有多少個角色和用戶,但是基本的角色有管理員和一般用戶兩種。在注冊各項服務前,需要在Keystone內注冊一個基本的租戶、用戶以及一個角色,以完成各項服務的注冊。在Keystone內的服務注冊包括服務(service)以及服務端點(endpoint)的注冊。其中服務是一個類的說明,服務端點是一個指向服務的訪問鏈接,包括IP地址、端口號等。利用這些端點可以實現(xiàn)Restful方式訪問OpenStack服務,通過URL調用OpenStack API。

3.2.2 Swift的部署

Swift是Rackspace開發(fā)的一個分布式云存儲項目,可以實現(xiàn)云端文件的多節(jié)點分布式存儲管理,目前已經成為OpenStack的一個核心部件。

本文采用源碼方式安裝,即采用git clone方式獲取官方的Swift源碼。Swift的配置流程如圖4所示,配置的關鍵步驟包括以下幾個。

(1)配置代理服務器(proxy server),代理服務器負責把Swift的其他部分連接起來。對于每一個請求,代理服務器將在環(huán)(ring)中查找用戶(account)、容器(container)或者對象名(object),相應地將請求路由到對應的服務器上。對代理服務器的配置主要有代理服務器的綁定地址和端口以及Keystone對應的地址和端口。

(2)配置環(huán)的信息,環(huán)負責管理存儲在磁盤上的一個實體的名字和這個實體所在物理位置之間的映射關系[7]。因此要創(chuàng)建3個環(huán)的文件,分別對應account、container和object。

(3)配置存儲節(jié)點,主要步驟為格式化并掛載磁盤,分別配置 rsyncd.conf、account-server、container-server和 objectserver。Rsyncd的作用是維持存儲對象的一致性并進行數據更新操作。因此,rsyncd.conf配置了存儲節(jié)點所有account、container和 object對應的信息。而 account-server、container-server和object-server則分別配置了它們對應于環(huán)的端口。

(4)啟動rsyncd以及Swift服務,即可使用云存儲。

3.2.3 Glance的部署

Glance是OpenStack用于管理虛擬機鏡像的工程,實現(xiàn)包括鏡像的上傳、驗證、刪除等管理。

本文采用源碼方式安裝,即采用git clone方式獲取官方的Glance源碼,Glance的部署流程如圖5所示。其配置的主要步驟包括以下幾個。

(1)Glance存儲的配置

Glance的鏡像文件可以用Swift來存儲,也可以在本地存儲。例如要用Swift來存儲鏡像文件,可把glance-api.conf文件里面的default_store=file和swift_store_create_container_on_put=False改 為 default_store=swift和swift_store_create_container_on_put=True。同時,在文件glance-api.conf、glance-api-paste.ini和 glance-registry-paste.ini中配置Keystone的相應信息。

(2)數據庫配置

在glance-reigstry.conf配置文件中,配置sql_connection參數指向Glance的數據庫,同時為Glance創(chuàng)建一個數據庫來保存鏡像的matadata,并且同步數據庫。

(3)啟動 Glance服務

啟動Glance服務,并通過glance指令來驗證該服務是否可用。

3.2.4 Nova的部署

Nova為OpenStack IaaS服務項目工程,可提供包括虛擬機實例、網絡、云硬盤(volume)等的管理,是OpenStack 3個核心工程中最為復雜的一個,目前擴展包括Quantum和Melange等孵化項目。

本文采用源碼方式安裝,即采用git clone方式獲取官方 的 Nova 源 碼 ,包 括 nova-compute、nova-network、novascheduler、nova-api和nova-volume等子部件的源代碼。圖6為Nova的部署流程,在源碼安裝完成后,需要做以下幾個工作:

·增加一個網絡橋接設備,使得虛擬機可以通過網橋進行通信;

·安裝tgt、iscsi等第三方工具,使得云硬盤可在各個節(jié)點相互掛載;

·安裝KVM虛擬機工具,Nova是通過第三方的虛擬機工具啟動實例;

·確保控制器與各計算節(jié)點的時間同步,這是因為計算節(jié)點的Nova服務會定時往控制節(jié)點的數據庫寫入自己的時間,然后與控制節(jié)點的本地時間做對比,假如時間差異大于某個閾值,則認定計算節(jié)點的Nova服務不正常。因此,為了保持控制節(jié)點與計算節(jié)點的時間一致性,需要將控制節(jié)點作為NTP(時間同步協(xié)議)的服務器,然后修改計算節(jié)點的NTP配置文件,使之以控制節(jié)點為時間同步服務器。

Nova的基本配置主要通過統(tǒng)一的配置文件/etc/nova.conf完成,其中核心的配置包括網絡模式network_manager,本文選擇FlatDHCPManager參數;調度策略scheduler_driver參數,本文選擇MultiScheduler和glance_api_servers參數。

完成上述配置后,創(chuàng)建并同步Nova的數據庫,最后啟動Nova服務,在控制端一般啟動nova-compute、nova-network、nova-scheduler、nova-api和nova-volume等服務,在計算節(jié)點僅需啟動nova-compute和nova-network即可,計算節(jié)點會依據數據庫的連接地址自動完成服務的注冊。

3.2.5 Horizon的部署

Horizon為OpenStack的Web服務工程,采用Django結構開發(fā)。

本文采用源碼方式安裝,即采用git clone方式獲取官方的Horizon源碼,由于其自身具備Web服務,無需通過Apache啟動。Horizon的配置文件為源碼下的local_settings.py,主要修改包括設置參數OPENSTACK_HOST指向Keystone的IP地址。圖7展示了客戶端通過Horizon使用云平臺的情況。

3.3 定制開發(fā)環(huán)境鏡像

當OpenStack具備了控制節(jié)點、計算節(jié)點以及鏡像服務后,管理員就可以為云平臺定制所需的鏡像,使得云平臺可以向用戶提供虛擬化實例。定制鏡像流程如圖8所示。

在定制過程中,創(chuàng)建虛擬磁盤及安裝虛擬機的操作與Linux下運行VM一致,均采用KVM虛擬機實現(xiàn)[8],可直接以正常方式啟動KVM完成鏡像的制作。

在制作Windows鏡像時,需要安裝virtio驅動,同時為了避免讀寫硬盤I/O速率較低,可在啟動KVM時加一個參數cache=none。

在制作Linux鏡像時,由于70-persistent-net.rules會自動添加其他的網絡接口,需要刪除這個文件來避免自動添加除了 eth0以外的接口。

在制作鏡像的過程中,也可以為鏡像定制軟件和服務,即根據實驗室的開發(fā)需要,在虛擬機上安裝相應的開發(fā)環(huán)境或開啟相關服務[9]。這樣制作的鏡像被用戶實例化后,用戶就可以直接使用完善的軟件平臺服務,避免了逐一安裝軟件的繁瑣工作,提高了工作效率。例如制作Linux鏡像時,可以安裝并開啟VNC、遠程桌面協(xié)議(RDP)等服務,這樣用戶就可以通過遠程可視化登錄使用Linux實例。

4 私有云平臺搭建過程中遇到的問題和解決方法

根據構建私有云計算平臺的經驗,本文在此給出一些部署云平臺過程中常見的問題以及解決方法。

(1)多節(jié)點部署完成后,通過nova-manage service list命令發(fā)現(xiàn),計算節(jié)點的各個服務不穩(wěn)定

解決辦法:這是計算節(jié)點和控制節(jié)點的時間不同步造成的,通過NTP同步計算節(jié)點與控制節(jié)點的時間即可解決問題。

(2)云平臺正在運行中,但是突然間某個節(jié)點的novacompute服務不正常

解決辦法:導致這個問題的原因可能是某個節(jié)點的nova-compute服務停掉或者在某個節(jié)點上啟動了兩個libvirtd程序。因此,需要查看nova-compute服務是否正在運行,假如nova-compute服務正在運行并且有兩個libvirtd程序啟動,則重啟libvirtd程序即可解決問題。

(3)虛擬化實例能夠啟動,但是無法獲取私有IP地址

解決辦法:由于OpenStack使用dnsmasq負責dhcp的工作,因此,假如計算節(jié)點的nova-network服務正常,則很可能是dnsmasq服務不正常,重啟虛擬化實例所在的計算節(jié)點的dnsmasq服務即可。

(4)虛擬實例啟動正常,但是無法連接

解決辦法:這個問題很可能是沒有打開相關端口造成的,出于安全性保障,OpenStack在虛擬實例內部網絡設置了防火墻,因此,假如要使用某些服務就要打開相關端口,如要用ssh連接就要打開TCP的22端口,要用ping服務就要打開ICMP的-1端口,要用遠程桌面協(xié)議(RDP)連接就要打開TCP的3389端口。

(5)由于操作失誤導致Nova數據庫崩潰或者想推倒數據庫重來

解決辦法:假如是數據庫里面某個table不正常,那么丟棄掉那個table,然后同步數據庫,就可以解決問題。假如整個Nova數據庫已經混亂崩潰了,那么也不必重裝數據庫甚至重裝OpenStack,只需要丟棄Nova數據庫,然后重建一個Nova數據庫,給予Nova用戶操作Nova數據庫權限,同步數據庫,再重建私有網段以及浮動網段,打開相應端口,即可使Nova服務恢復正常。

5 OpenStack云平臺部署實驗及分析

本文搭建的私有云平臺提供給用戶的Web管理界面Horizon簡單易用,功能豐富,登錄界面如圖9所示,初始的用戶名和密碼與在Keystone中注冊服務時使用的一樣。在Horizon中,管理員的權限包括創(chuàng)建和管理用戶、項目組;修改用戶組的實例可用配額;修改可用鏡像類型;查看應用平臺的使用情況等。用戶的權限包括使用云存儲;對虛擬實例進行啟動、中斷、掛起、關閉、創(chuàng)建快照、分配和回收浮動IP地址、分配和回收云硬盤等操作。以下將從啟動實例、掛載云硬盤、使用云存儲等方面進行介紹。

私有云平臺的鏡像有Ubuntu11.10桌面版、Windows 2008等,可以同時啟動Windows和Linux虛擬實例。實例類型有單核、雙核以及4核CPU等,還可按需要進行添加修改。啟動實例的過程為:選擇鏡像、修改實例名字、選擇實例類型、選擇密鑰以及選擇創(chuàng)建實例的個數。啟動實例過程如圖10所示,實例啟動可在幾分鐘內完成。訪問實例有多種方式,可以通過noVNC從網頁訪問,可以通過遠程桌面協(xié)議 (RDP)連接訪問,Linux實例還可通過puty、secureCRT等軟件訪問。

云硬盤是OpenStack云平臺提供給用戶的可持久彈性存儲。云硬盤創(chuàng)建時可根據用戶需要配置大小,云硬盤的狀態(tài)為available(可用)時,即可掛載到實例。在Windows實例中使用云硬盤的步驟為:通過磁盤管理工具把掛載的云硬盤的狀態(tài)改為online(在線),初始化云硬盤為分區(qū)表格式(GPT),格式化并使用云硬盤,如圖11所示。在Linux實例中使用云硬盤的步驟為:通過fdisk工具在云硬盤中創(chuàng)建分區(qū),通過mkfs工具將云硬盤格式化、掛載并使用云硬盤,如圖12所示。

由于Swift內置冗余和容錯機制,數據的丟失率很低;私有云與用戶位于同一網段內,網絡傳輸速度很高;私有云平臺位于防火墻內,受到攻擊的幾率較小,且不同用戶組之間存儲的數據看不見,數據私密性較高,因此云存儲是OpenStack私有云平臺的一個重要功能。它的使用步驟為:創(chuàng)建容器,在容器內上傳文件,上傳文件時指定保存對象的名字并選擇文件路徑。

綜上所述,本文搭建的OpenStack私有云平臺具有使用簡單、按需選擇實例類型、快速部署虛擬實例、高效安全地存儲數據等特性,具有實際意義。

6 結束語

本文提出了一種基于OpenStack構建私有云計算平臺的方案,旨在為科研實驗室以及中小企業(yè)提供彈性計算服務,滿足不同用戶、不同階段的需求。同時,通過在虛擬鏡像中集成各種開發(fā)環(huán)境和開發(fā)工具,可以提供高可用性的云服務。此外,本文還分享了一些部署OpenStack云平臺過程中的經驗。

本文在部署、使用OpenStack云平臺過程中,發(fā)現(xiàn)OpenStack對數據庫有很強的依賴性,且網絡性能并非最優(yōu),因此,如何提高數據庫的容錯性、穩(wěn)定性以及改善網絡性能,是進一步優(yōu)化私有云的研究方向之一。

1 NIST Cloud Computing Program.http://www.nist.gov/itl/cloud/,2011

2 Ramgovind S,Eloff M M,Smith E.The management of security in cloud computing.Proceedings of Information Security for South Africa(ISSA),Sandton,South Africa,2010:1~7

3 吳朱華.云計算核心技術剖析.北京:人民郵電出版社,2011

4 董鑫.開源云計算技術應用.計算機光盤軟件與應用,2011(16)

5 OpenStack Community.http://www.openstack.org/,2011

6 git·hub.https://github.com/,2012

7 Swift 1.5.1-dev documentation.http://swift.openstack.org/index.html,2011

8 李剛建.基于虛擬化技術的云計算平臺架構研究.吉林建筑工程學院學報,2011,28(1):79~81

9 張帆,李磊,楊成胡等.基于Eucalyptus構建私有云計算平臺.電信科學,2011,27(11):57~61

猜你喜歡
源碼鏡像硬盤
基于網頁源碼結構理解的自適應爬蟲代碼生成方法
計算機應用(2023年6期)2023-07-03 14:11:56
基于圖神經網絡的軟件源碼漏洞檢測方法
計算機時代(2023年6期)2023-06-15 17:49:09
鏡像
當代黨員(2020年20期)2020-11-06 04:17:52
企業(yè)如何保護源碼
HiFi級4K硬盤播放機 億格瑞A15
Egreat(億格瑞)A10二代 4K硬盤播放機
鏡像
小康(2018年23期)2018-08-23 06:18:52
基于數據結構教輔系統(tǒng)的實驗課程改革
計算機教育(2016年4期)2016-05-20 02:36:05
我區(qū)電視臺對硬盤播出系統(tǒng)的應用
鏡像
小康(2015年4期)2015-03-31 14:57:40
宜兴市| 调兵山市| 三原县| 孟连| 社会| 新龙县| 沂水县| 仪征市| 桂平市| 贺兰县| 牡丹江市| 额敏县| 宁城县| 新民市| 肥西县| 临清市| 泰州市| 新乡县| 丹寨县| 康乐县| 宝鸡市| 宜昌市| 廊坊市| 广西| 达拉特旗| 丰宁| 阳谷县| 斗六市| 岳阳市| 阳高县| 武胜县| 克什克腾旗| 都兰县| 阜阳市| 万州区| 陵水| 芮城县| 东台市| 娄烦县| 民勤县| 汉沽区|