基于OpenStack的云計算數據中心管理系統的設計與開發(共49頁)_第1頁
基于OpenStack的云計算數據中心管理系統的設計與開發(共49頁)_第2頁
基于OpenStack的云計算數據中心管理系統的設計與開發(共49頁)_第3頁
基于OpenStack的云計算數據中心管理系統的設計與開發(共49頁)_第4頁
基于OpenStack的云計算數據中心管理系統的設計與開發(共49頁)_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、南京(nn jn)郵電大學 畢 業 設 計(論 文)題 目基于OpenStack的云計算數據中心管理系統的設計與開發專 業網絡工程學生姓名班級學號指導教師指導單位物聯網學院 日期(rq):2015年 1月 19日至(r zh) 2015年 6月 12日畢業設計(b y sh j)(論文)原創性聲明本人鄭重聲明:所提交的畢業設計(論文),是本人在導師指導下,獨立進行研究工作所取得的成果。除文中已注明引用的內容外,本畢業設計(論文)不包含任何其他個人或集體已經發表或撰寫過的作品成果。對本研究做出過重要貢獻的個人和集體,均已在文中以明確方式標明并表示了謝意。 論文作者簽名: 日期: 年 月 日摘 要

2、云計算(j sun)(Cloud Computing)是網格計算(Grid Computing)、分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)、聯機存儲技術(Network Storage Technology)、虛擬化(Virtualization)、負載均衡(jnhng)(Load Balance)等一系列傳統計算機技術和網絡技術發展融合的產物。它旨在通過網絡將多個成本低廉的計算實體整合成一個大型計算資源池,并借助SaaS、PaaS、IaaS等服務模式,將強大的計算能力分發到終端用

3、戶手中。云計算的核心理念就是通過不斷提高“云”端處理能力,減輕用戶負擔,將一系列的IT能力以服務形式提供給用戶,簡化用戶終端的處理負擔,最終使用戶成為一個單純的輸入/輸出設備,享受“云”提供的強大(qingd)計算處理及服務能力。OpenStack是一個開源的云計算項目和工具集,并且提供了關于基礎設施即服務(IaaS)的解決方案。OpenStack具有建設這樣資源池的能力,通過OpenStack的各種組件多種模式的排列組合,可以搭建成各種規模的“云”,這些云可以是私有云、公有云、混合云。本文首先介紹了云計算的背景及其相關技術,并深入了解OpenStack的架構和其各種服務,掌握各種服務實現原理

4、,以及探討OpenStack如何實現對云計算數據中心的管理,最后動手搭建OpenStack云平臺和嘗試對功能的擴展。由于OpenStack云計算平臺在國內的研究起步較晚,在安裝部署過程中會出現若干問題。本文就出現的問題加以匯總并給出解決方法,可以在安裝部署OpenStack時提供參考。關鍵詞:云計算;IaaS;OpenStack;管理平臺ABSTRACTCloud Computing is the product of a series of traditional computer technology and network technology integration of Grid C

5、omputing, Distributed Computing, Parallel Computing, Utility Computing, Network Storage Technology, Virtualization, Load Balance and so on. It is designed by the network to integrate multiple low-cost computing entity into a large pool of computing resources, and with SaaS, PaaS, IaaS services model

6、, the computing power is distributed to the end users. Cloud computing is the core concept by continuously improving the cloud side processing ability to reduce the burden on the user, a series of IT capabilities as a service to users, simplify the processing burden on the user terminal, and ultimat

7、ely make the user a simple input / output equipment. Whats more, people could enjoy powerful computing capabilities Cloud provided.OpenStack is an open source cloud computing projects and tools, and provides information on the infrastructure as a service (IaaS) solutions. OpenStack has the ability t

8、o build such a resource pool, through permutations and combinations of the various components of OpenStack multiple modes, can be built into a variety of sizes, cloud, these clouds can be a private cloud, public cloud, hybrid cloud. This paper describes the background of cloud computing and related

9、technologies, and in-depth understanding of OpenStack architecture and its various services. In order to acknowlodge a variety of services to achieve the principles, and to explore how to achieve the OpenStack cloud computing data center management, we finally have come up with OpenStack Cloud platf

10、orm and try to extend the capabilities. Since the OpenStack cloud computing platform in China started late, there will be a number of issues in the installation and deployment process. This article appeared to be summary of the issues and gives solutions that can provide a reference during the insta

11、llation deploy OpenStack.Keywords: Cloud Computing; IaasS; OpenStack; Management Platform目 錄 TOC o 1-3 h z u HYPERLINK l _Toc421386301 第一章 緒論(xln) 第一章 緒論(xln)1.1 研究(ynji)背景及意義1.1.1 背景(bijng)及意義人類社會從蒸汽機進入了工業時代,又從電的時期進入了現代文明,從計算機互聯網進入了地球村的時代。那么,云時代的到來會是怎樣一番情景?云計算被認為是繼個人電腦、互聯網之后電子信息技術領域的又一次重大的變革,其實質是一種

12、基于互聯網的計算模式,在這樣的模式下,計算資源(計算能力、存儲能力、交互能力)是動態、可伸縮且虛擬化的,以服務的方式提供。這種新型的計算資源組織、分配和使用模式,有利于合理配置計算資源并提高其利用率,降低成本,促進節能減排,實現了綠色計算,這更切合了我國經濟轉型的發展戰略。OpenStack作為一個開源的云計算平臺,吸引了眾多一流廠商的加入,這些機構與個人都將OpenStack作為基礎設施即服務(IaaS)資源的通用前端。1.1.2 國內外發展現狀最近,新浪云計算宣布正式加入全球開源云計算項目OpenStack,將選擇OpenStack作為IaaS平臺解決方案。作為OpenStack中國的積極

13、推動者,這在很大程度上將推動OpenStack云開源代碼項目的發展。更值得高興的是,中國企業UnitedStack現已推出了基于OpenStack的云計算服務,這充分說明了OpenStack的存在價值。通過,可以了解到目前人們對一些開源云計算項目的關注趨勢。Rackspace以OpenStack為基礎的私有云業務每年7億美元,增長率超過20%。因此,在開源云計算項目領域,OpenStack早已嶄露頭角,如圖 1.1所示,它成為了當今最熱門的開源項目之一。Eucalyptus 是最早試圖克隆AWS的開源IaaS云平臺,整體架構如圖1的左半部分所示。Eucalyptus由云控制器(CLC)、Wal

14、rus、集群控制器 (CC)、存儲控制器(SC)和節點控制器(NC)組成,它們相互協作共同提供所需的云服務。組件間使用支持WS-Security的SOAP消息實現安 全的通信。Eucalyptus對外提供兼容AWS的SOAP和Query接口,不提供其他API。OpenNebula沒有采用SOA的設計,沒有將計算、存儲和網絡設計為獨立組件,解耦做得還不夠。值得注意的是,OpenNebula用 Libvirt所提供(tgng)的接口遠程調用計算節點上的虛擬化控制命令。這種Agentless的設計在系統安裝部署階段會減少很多軟件安裝配置工作,是一個設計亮點。所有的開源(ki yun)IaaS云平臺在

15、分層上做得都比較好;在SOA/組件化/解耦這點上來看,OpenStack和Eucalyptus有優勢;在框架和插件設計上,除Eucalyptus較差外,其他平臺均有很好的設計OpenStack的開發平臺做得最好,CloudStack次 之。綜合來看,目前OpenStack的設計是最好的,Eucalyptus和CloudStack次之。相比開源(ki yun)項目的“前輩”,OpenStack是一個更高級且現代化的開源項目,因為它是高度協作的產物。OpenStack的支持者都是世界頂級的供應商,可以看出OpenStack倍受青睞,可以說它是開源界的明星產品。目前,例如VMware、RedHat、

16、Cisco、EMC等各供應商,都表示對其支持。圖1.1 OpenStack與其它開源云計算項目的趨勢對比相比之下,OpenStack項目從最開始就發展開放社區,其直接結果是,OpenStack里聚集了比CloudStack更多的主流供應商。在大多數情況下,這些廠商(chngshng)開發的組件第一時間提供給OpenStack,之后才為CloudStack提供接口1。OpenStack也有不夠完善的地方(dfng),如OpenStack相對于CloudStack來說更加復雜,對終端用戶的支持不夠;在安裝部署上不如CloudStack便捷;在界面顯示方面也不如CloudStack豐富。Amazon

17、 公司于2006年推出的云計算(j sun)服務(AWS,Amazon Web Services)核心產品包括彈性計算云EC2(Elastic Computing Cloud)、簡單存儲服務S3(Simple Storage Service)、簡單隊列服務 SQS(Simple Queue Service)、內容推送服務(CloudFront)和簡單數據庫服務(SimpleDB)等,為企業提供計算和存儲服務。Amazon 公司收費的服務項目包括存儲空間、帶寬、CPU資源以及月租費。其中存儲空間、帶寬按容量收費,CPU 根據運算時長收費,月租費則與電話月租費類似9。Google 是最大的云計算技

18、術使用者,提供全球知名的互聯網搜索引擎服務。Google 搭建了一個稱為Google App Engine的云平臺,為第三方應用提供大型并行計算服務。更值得一提的是,Google 于2007秋季在全球宣布了云計劃,通過與 IBM 開展合作,開始在美國多所大學,包括卡內基美隆大學、麻省理工學院等,推廣云計算技術。這項計劃希望通過為這些大學提供相關的軟硬件設備及技術支援,能降低分布式計算技術在學術研究方面的成本,并且使得學生可以透過網絡開展各項以大規模計算為基礎的研究計劃13。IBM于2007年第四季度推出了“Blue Cloud(藍云)”云計算平臺,提供即買即用的云計算服務3。“藍云”使用具有自

19、我管理和自我修復的虛擬化云計算軟件,使得用戶的應用可以訪問分布式的大型計算服務器池。2008年8月1日,IBM宣布斥資3.6億美元在美國北卡羅來納州建立云計算數據中心。IBM 同時還將在東京建立一所新的機構,幫助用戶使用云計算基礎設施。另外,IBM亦與17個歐洲組織合作開展 RESERVOIR 云計算項目,實現 “無障礙的資源和服務虛擬化”。 微軟于2008年10月推出了Windows Azure操作系統,Azure底層是微軟全球基礎服務系統,由分布于全球的第四代數據中心組成,通過互聯網讓 Windows 真正由PC延伸到云計算服務上。目前,微軟的云計算系統已經包括超過 220個集裝箱式數據中

20、心和多達44萬臺的服務器。1.2 研究(ynji)工作(gngzu)意義(yy)自從2006年Google首席執行官埃里克施密特在搜索引擎大會上首次提出 “云計算”(Cloud Computing)的概念, 云計算就成為近幾年來IT領域一個非常熱門的研究方向。它使用戶能夠通過網絡便利、按需地從一個共享的、可配置的資源池中獲取計算、存儲、網絡等資源。 而在云計算的3種部署模式(公有云、私有云、混合云)中,公有云雖然以其低廉的價格、靈活的彈性策略吸引大量的用戶。然而,構建一個云計算數據中心,使之主要為企業內部乃至公共市場提供云服務,并且讓IT人員能對其數據、安全性和服務質量進行有效的控制,成為倍受

21、大企業青睞的選擇。此外,云計算數據中心能夠提供更高效、個性化的彈性計算資源分配能力,能夠更有效地利用企業內部現有的IT設備資源,打造更符合企業需求的云平臺。鑒于上述提到的公有云的數據安全問題,本文的出發點在于如何構建一個適合本地環境的云計算數據中心管理系統;針對實驗室或開發環境構建一個云計算平臺,使實驗室可以針對數據安全、計算資源的按需獲取等進行評估和探索。在實際試驗中,本文基于 OpenStack 開源云計算平臺,實現了在科研實驗室環境中搭建云計算管理平臺,使得資源能夠得到彈性分配,且確保數據安全。希望通過本文,能幫助大家了解云計算和OpenStack,以及如何用OpenStack配置搭建自

22、己的云環境,并通過前端來設置及管理云平臺。本文的目的在于搭建OpenStack云管理平臺,探索OpenStack的神奇之處,旨在更深層次地了解OpenStack生態圈。1.3 論文組織結構本篇論文共分五章,主要內容概括如下:第一章緒論。簡單介紹云計算的研究背景、意義以及論文的組織結構。第二章IaaS及關鍵技術相關介紹。這一章介紹了IaaS的概述、IaaS服務特征及優勢。同時,介紹了IaaS服務器虛擬化,IaaS存儲虛擬化、IaaS網絡虛擬化這三大虛擬化的實現原理。第三章OpenStack相關介紹。這一章首先介紹了OpenStack的概念架構和訪問流程對OpenStack的整體運行原理有一個大致

23、的了解,之后詳細介紹了OpenStack的三大服務:認證服務(Keystone)、計算服務(Nova)、網絡服務(Neutron)。第四章OpenStack云管理平臺的搭建。這部分是具有挑戰性的,從基礎環境的配置開始,完成之后(zhhu)開始安裝各種軟件包,每安裝一個軟件包后都要進行詳細的配置文件的修改。另外,還對計費模塊(m kui)進行了初步研究。第五章OpenStack云平臺的測試。這章節主要是完成(wn chng)對第五章的所有部署的驗證,每一個所需服務是否都已啟動,之后是啟動一個instance的過程,并對實例的成功啟動之后進行網絡測試。最后是結束語。第二章 IaaS及關鍵技術相關介

24、紹2.1 Iaas概述(i sh)IaaS(Infrastructure as a Service,基礎架構即服務)通過互聯網提供了數據中心、基礎架構硬件和軟件資源。IaaS可以提供服務器、操作系統、磁盤存儲、數據庫和/或信息資源。最高端IaaS的代表(dibio)產品是亞馬遜的AWS(Elastic Compute Cloud),不過IBM、Vmware和惠普以及其他一些傳統IT廠商也提供這類的服務2。IaaS通常會按照彈性云的模式引入其他的使用和計價模式,也就是(jish)在任何一個特定的時間,都只使用你需要的服務,并且只為之付費。2.2 IaaS服務特征及優勢IaaS主要具有以下服務特征

25、及優勢:(1)更低的門檻用戶可以以最低的成本租用所需的計算機資源,而不需要進行大量的硬件和軟件資源的采購。(2)更好的擴展性用戶可以根據需要,動態增加或減少服務資源,不用考慮資源來源或者資源是否夠用。(3)管理方便資源可以直接通過互聯網管理,不需要到資源所在機房現場操作,降低管理成本。(4)使用靈活用戶可獲得完全獨立的服務器,并擁有管理員權限,因此用戶可以不受限制的進行任何操作。(5)資費靈活所需資源可以隨時開始和停止,用戶只需要為自己所使用的資源付費。2.3 IaaS整體架構虛擬化技術主要實現了對底層物理資源的抽象,使其成為一個個可以被靈活生成、調度、管理的基礎資源單位8。而要將這些資源進行

26、有效的整合,從而生成一個可以統一管理、靈活分配跳讀、動態遷移、計費度量的基礎服務設施資源池,并向用戶提供自動化基礎設施即服務,就需要IaaS管理平臺。如圖圖2.1,這是對資源管理平臺(pngti)的實現。圖2.1 IaaS交互(jioh)模型資源管理平臺負責對物理資源和虛擬化資源進行統一(tngy)的管理和調度,形成統一的資源池,實現IaaS服務的可管、可控,其核心是對每個基礎資源單位的生命周期管理能力和對資源的管理調度能力。在上面的模型中,假定了與云交互的四種人員(開發商、開發人員、操作員、用戶),還定義了三層架構(表現、邏輯、資源)和兩個正交領域(集成和管理)。 表現層,組件與用戶交互,接

27、受并顯示用戶的信息。這一層為非開發人員提供了一個Web 圖形界面,為開發人員提供了 API,還存在負載均衡、控制臺代理、安全、命名服務。 邏輯層,為云和控制功能提供情報。這層內包括部業務流程(工作流程復雜的任務),調度(確定作業對資源的映射),政策(配額等),鏡像注冊表(例如鏡像的元數據),日志(事件和計量)。 資源層,提供實際的計算,網絡和存儲資源給客戶。提供服務的資源可能是服務器,網絡交換機,網絡附加存儲或其他。 集成功能,大多數服務提供商已經有一個客戶的身份和計費系統(xtng)。任何云架構將需要與這些系統集成。 管理(gunl)功能,提供一個 API 來管理云并提供監控功能。2.4 I

28、aaS關鍵技術介紹(jisho)2.4.1 虛擬化技術虛擬化技術(Virtualization)已經對計算機發展產生了重要的影響,尤其是最近發展非常熱門的云計算技術。其實,在計算機領域,虛擬化的思想早已經存在,最早 IBM 在二十世紀六十年代就提出并實現了在一臺物理機上運行多個不同的操作系統實例,它顛覆了傳統的一臺計算機運行一個操作系統實例的計算模式。多個操作系統運行在一個物理機上,共享物理機資源(CPU 資源、內存資源、網絡資源、存儲資源等)3。隨著計算機硬件資源的不斷快速發展,現有的很多軟件已不能充分的利用計算機硬件的資源存在很多的資源浪費現象。虛擬化技術的出現,提高了物理機或者服務器的硬

29、件資源的利用率,充分地利用了硬件所提供的并行性和高性能,也使系統管理員免去了管理大量物理機的所花費的精力和時間。虛擬化技術的這些特點,使得虛擬化技術成為整個計算機軟件技術中最受到重視的技術之一,它在云計算技術中起著至關重要的作用,是云計算技術的基礎。 虛擬化就是通過脫耦合把應用軟件和在其上的虛擬的操作系統與底層的物理設備分離開來。物理機系統的虛擬化究其根本就是通過某種手段把底層的物理設備和其上的軟件運行環境分割的技術。然而虛擬化技術的出現,遠遠不止于虛擬出虛擬的操作系統,現在已經看到了,內存,網絡,CPU,文件,存儲等的虛擬化。從一種更高的抽象、一個更廣泛的環境中來了解虛擬化技術,它實際上已經

30、成為了一個非常大的概念,可以為用戶企業帶來很大的便利。虛擬化技術主要實現了對底層物理資源的抽象,使其成為一個個可以被靈活生成、調度、管理的基礎資源單位,如圖2.2。而要將這些資源進行有效的整合,從而生成一個可以統一管理、靈活分配跳讀、動態遷移、計費度量的基礎服務設施資源池,并向用戶提供自動化基礎設施即服務,就需要IaaS管理平臺。資源管理平臺負責對物理資源和虛擬化資源進行統一的管理和調度,形成統一的資源池,實現IaaS服務的可管、可控,其核心是對每個基礎資源單位的生命周期管理能力和對資源的管理調度能力。2.4.2 KVM與QEMUKVM虛擬機是基于(jy)Linux內核虛擬化,自Linux2.

31、6.2之后就集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對于Xen,其核心源碼很少。KVM的虛擬化需要硬件的支持(zhch)(如Intel VT技術或者AMD V圖2.2虛擬化架構(ji u)技術),是基于硬件的完全虛擬化。而Xen早期則是基于軟件模擬的para-virtualization,新版本是基于硬件支持的完全虛擬化3。QEMU是一種模擬處理器,現在運用最多的就是將KVM和QEMU結合起來。準確來說,KVM是Linux kernel的一個模塊,可以用命令modprobe去加載KVM模塊13。加載了該模塊后,才能進一步通過工具創建虛擬機。但是僅有KV

32、M模塊是不夠的。因為用戶無法直接控制內核去做事情,還必須有一個運行在用戶空間的工具才行。這個用戶空間的工具,KVM開發者選擇了已經成型的開源虛擬化軟件QEMU。說起來QEMU也是一個虛擬化軟件。它的特點是可虛擬不同的CPU。比如說在x86的CPU上可虛擬一個power的CPU,并可利用它編譯出可運行在power上的CPU,并可利用它編譯出可運行在power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用戶空間工具了。所以你會看到,官方提供的KVM下載有兩大部分(QEMU和KVM)三個文件(KVM模塊、QEMU工具以及二者的合集)。也就是說,你可以只升級KVM模塊,也可

33、以只升級QEMU工具。這就是KVM和QEMU 的關系,如圖2.3。2.4.3 數據(shj)存儲技術為保證高可用、高可靠和經濟性,云計算(j sun)采用分布式存儲的方式來存儲數據,采用冗余存儲的方式來保證存儲數據的可靠性,即為同一份數據存儲多個副本。另外,云計算系統需要同時滿足大量用戶的需求,并行地為大量用戶提供服務。圖2.3 KVM與QEMU關系(gun x)因此,云計算的數據存儲技術必須具有高吞吐率和高傳輸率的特點。 云計算的數據存儲技術主要有谷歌的非開源的 GFS(Google File System)和Hadoop 開發團隊開發的 GFS 的開源實現 HDFS(Hadoop Dist

34、ributed File System)。大部分 IT 廠商,包括 Yahoo、Intel 的“云”計劃采用的都是 HDFS 的數據存儲技術。未來的發展將集中在超大規模的數據存儲、數據加密和安全性保證、以及繼續提高 I/O速率等方面4。2.4.4 資源管理技術在多節點并發執行環境,分布式資源管理系統是保證系統狀態正確性的關鍵技術。系統狀態需要在多節點之間同步,關鍵節點出現故障時需要遷移服務,分布式資源管理技術通過鎖機制協調多任務對于資源的使用,從而保證數據操作的一致性。典型的資源管理技術如Google公司的 Chubby文件系統。2.4.5 能耗管理(gunl)技術隨著云計算的快速發展,如今云

35、服務的推出使許多中小企業用戶轉而向云計算服務提供商訂購云計算服務。而這類云服務大多是安裝在主機托管服務提供商所擁有的大型數據中心。那么,關于數據中心的能耗問題便成了數據中心管理者最關心的問題。處理的能耗是服務能耗的主要組成部分之一,大型的云計算數據中心有可能擁有數百、上萬甚至更多的服務器,這些云平臺中數量眾多的基礎資源構件對于電力的消耗也是非常巨大的,這將直接影響數據中心的運營成本。因此如何在云計算數據中心部署良好的、持續的電源供應系統倍受用戶關注。Google的數據中心一般選擇在人煙稀少、氣候寒冷、水電(shu din)資源豐富的地區,這些地點的電價、散熱成本、場地成本、人力成本等都遠低于人

36、口稠密的大都市。我國三大電信運營商也效仿 Google 的做法,選擇在哈爾濱等地建設數據中心4。 另外,為滿足更多的網絡服務需求,降低能耗,減少數字媒體下載量,可采用減少數字垃圾、進行策略性的界面設計、提高使用意識(y sh)以及避開使用高峰期等措施。2.5 本章小結本章主要是對IaaS和云計算平臺實現的關鍵技術的介紹,其中包括了IaaS的定義、優勢及架構,充分說明了IaaS在云平臺中的地位與作用。虛擬化技術對于云計算平臺來說是最重要的,本章還就對最終要的虛擬化技術展開了介紹,包含了關鍵的KVM和QEMU。第三章 OpenStack相關介紹3.1 OpenStack簡介(jin ji)Open

37、Stack是一套開源的云計算平臺,也是一款工具集。它剛問世不久就得到了學術領域的普遍關注,并很快滲透到各個研究領域。OpenStack可以構建自己的IaaS云計算環境,并提供給用戶使用。OpenStack部署云環境的優點就是靈活,可以根據自己的需要來搭建基礎設施,同時可以自由地擴充集群規模。OpenStack允許(ynx)客戶通過部署虛擬機來創建資源,在節點上通過使用KVM等來對虛擬機進行一系列配置。客戶端用戶只需要申請自己需要的虛擬資源。3.1.1 OpenStack基礎架構OpenStack 通過(tnggu)一系列的組件服務提供了一個基礎架構即服務(IaaS)的解決方案5。在較新版本Ic

38、eHouse中包含了10 個組件:(1)Nova:計算服務是 OpenStack 云中的計算組織控制器,對計算資源、網絡、認證和擴展性等進行管理,并通過一個與Amazon Web Services (AWS)EC2 API 兼容的 web servicesAPI來對外提供服務。(2)Swift:對象存儲服務提供彈性可伸縮、高可用的分布式對象存儲服務,適合存儲大規模非結構化數據。(3)Glance:鏡像服務提供虛機鏡像的注冊和分派服務。(4)Cinder:塊存儲服務為虛機提供可用于持久存儲的塊存儲服務。(5)Neutron:網絡服務為其它 OpenStack 組件提供網絡連接,通過 API 為終

39、端用戶提供自定義網絡功能;通過一個插件式架構支持大量網絡廣商設備及網絡技術。(6)Keystone:認證服務為 OpenStack 提供認證和授權服務。(7)Horizon:儀表盤提供基于 Web 的管理控制臺,用戶可以通過Web 方式管理和操作OpenStack 云。(8)Ceilometer:計量監控服務為OpenStack 云提供計費、基準測試及數據統計等功能。(9)Heat:編排組織服務提供基于模板的編排機制,用戶可以通過一個參數化的模板輕松的部署網絡、服務器、存儲等資源。(10)Trove:數據庫服務為關系(gun x)型和非關系型數據引擎提供可擴展、可靠的云數據庫即服務功能。Ope

40、nStack的概念(ginin)架構,如圖3.1所示。圖3.1 OpenStack概念(ginin)架構3.1.2 OpenStack訪問流程(1)User 通過自己的身份憑證(Credentials)想Keystone服務發起認證,Keystone如果通過認證則給User頒發密鑰(Token),之后執行(2)步。(2)User 把密鑰(Token)和虛擬機的創建請求發送給Nova服務,Nova通過Keystone服務驗證密鑰(Token)如果通過認證則執行(3)步。(3)Nova 把密鑰(Token)和創建虛擬機所需要的鏡像請求發送給Glance服務,Glance通過Keystone服務驗證

41、密鑰(Token),如果通過Glance向Nova返回鏡像執行(4)步。(4)Nova 把密鑰(Token)創建(chungjin)虛擬機所需要的網絡資源請求發送給Quantum服務,通過Keystone服務驗證密鑰(Token),如果通過Quantum向Nova返回(fnhu)網絡資源執行(5)步。(5)Nova 得到(d do)創建虛擬機所需要的資源了,之后向用戶(User)返回請求圖3.2 OpenStack訪問流程成功。3.2 OpenStack認證服務Keystone3.2.1 Keystone介紹Keystone(OpenStack Identity Service)是OpenSt

42、ack框架中,負責身份驗證、服務規則和服務令牌的功能,它實現了OpenStack的Identity API。Keystone類似一個服務總線,或者說是整個Openstack框架的注冊表,其他服務通過keystone來注冊其服務的Endpoint(服務訪問的URL),任何服務之間相互的調用,需要經過Keystone的身份驗證,來獲得目標服務的Endpoint來找到目標服務。3.2.2 Keystone概念(ginin)User即用戶,他們(t men)代表可以通過keystone進行訪問的人或程序6。Users通過認證信息(xnx)(credentials,如密碼、API Keys等)進行驗證,

43、如:住賓館的人。Tenant即租戶,它是各個服務中的一些可以訪問的資源集合。例如,在Nova中一個tenant可以是一些機器,在Swift和Glance中一個tenant可以是一些鏡像存儲,在Neutron中一個tenant可以是一些網絡資源。Users默認的總是綁定到某些tenant上,如:賓館。Role即角色,Roles代表一組用戶可以訪問的資源權限,例如Nova中的虛擬機、Glance中的鏡像。Users可以被添加到任意一個全局的或租戶內的角色中。在全局的role中,用戶的role權限作用于所有的租戶,即可以對所有的租戶執行role規定的權限;在租戶內的role中,用戶僅能在當前租戶內執

44、行role規定的權限,如:VIP 等級,VIP越高,享有越高的權限。Service即服務,如Nova、Glance、Cinder。根據前三個概念(User,Tenant和Role)一個服務可以確認當前用戶是否具有訪問其資源的權限。但是當一個user嘗試著訪問其租戶內的service時,他必須知道這個service是否存在以及如何訪問這個service,這里通常使用一些不同的名稱表示不同的服務。在上文中談到的Role,實際上也是可以綁定到某個service的。例如,當swift需要一個管理員權限的訪問進行對象創建時,對于相同的role我們并不一定也需要對nova進行管理員權限的訪問。為了實現這個

45、目標,我們應該創建兩個獨立的管理員role,一個綁定到swift,另一個綁定到nova,從而實現對swift進行管理員權限訪問不會影響到Nova或其他服務,如:賓館可以提供的服務類別,比如,飲食類,娛樂類。Endpoint,翻譯為“端點”,我們可以理解它是一個服務暴露出來的訪問點,如果需要訪問一個服務,則必須知道他的endpoint。因此,在keystone中包含一個endpoint模板(endpoint template,在安裝keystone的時候我們可以在conf文件夾下看到這個文件),這個模板提供了所有存在的服務endpoints信息。一個endpoint template包含一個UR

46、Ls列表,列表中的每個URL都對應一個服務實例的訪問地址,并且具有public、private和admin這三種權限。public url可以被全局訪問,admin url被從常規的訪問中分離,如:具體的一種服務,比如吃燒烤,打羽毛球。3.3 OpenStack計算(j sun)服務Nova3.3.1 Nova簡介(jin ji)Nova是OpenStack云中(yn zhn)的計算組織控制器6。支持OpenStack云中實例(instances)生命周期的所有活動都由Nova處理。這樣使得Nova成為一個負責管理計算資源、網絡、認證、所需可擴展性的平臺。但是,Nova自身并沒有提供任何虛擬化

47、能力,相反它使用libvirt API來與被支持的Hypervisors交互。Nova 通過一個nova API來對外提供服務。Nova的功能和特點有:實例生命周期管理,管理計算資源,網絡和認證管理,REST風格的API,異步的一致性通信,Hypervisor透明:支持Xen,XenServer/XCP, KVM, UML, VMware,vSphere and Hyper-V。3.3.2 Nova架構圖3.3 Nova 架構Nova 云架構(ji u)(如圖3.3)的各個(gg)組件是以數據庫和隊列為中心進行通信的,下面對其中的幾個組件做一個簡單的介紹:(1)Queue,也就是消息隊列,它就

48、像是網絡上的一個hub,nova各個組件之間的通信幾乎(jh)都是靠它進行的,當前的Queue是用RabbitMQ實現的,它和database一起為各個守護進程之間傳遞消息。(2)database存儲云基礎架構中的絕大多數狀態。這包括了可用的實例類型,在用的實例,可用的網絡和項目。當前廣泛使用的數據庫是sqlite(僅適合測試和開發工作)、MySQL和PostgreSQL。(3)nova-compute負責決定創造虛擬機和撤銷虛擬機,通過運行一系列系統命令(例如發起一個KVM實例),并把這些狀態更新到nova-database中去,其過程相當復雜,但是基本原理很簡單。(4)nova-sched

49、ule負責從queue里取得虛擬機請求并決定把虛擬機分配到哪個服務器上去。schedule的算法可以自己定義,目前有Simple (最少加載主機),chancd(隨機主機分配) ,zone(可用區域內的隨機節點)等算法。(5)nova-volume負責記錄每一個計算實例,相當于一個計算請求吧,并負責創建,分配或撤銷持久層容器(Amazon的iSCSI,AoE等等)給這些compute instances。(6)nova -netwok負責處理隊列里的網絡任務。(7)nova-api守護進程是OpenStack Compute的中心。它為所有API查詢提供一個入口。3.3.3 Nova工作流程為

50、了看看nova是如何工作的,可以以啟動一個實例為例來進行說明,因為啟動一個新的instance涉及到很多openstack nova里面的組件共同協作14。SchedulerApiNova-networkNova-computeQueue&Database圖3.4 Nova工作(gngzu)流程(1)API:處理客戶端的請求,并且(bngqi)轉發到 Queue和Database中。如:輸入一個啟動(qdng)instance的命令api就會查看這種類型的instance是否達到最大值并給scheduler發送一個消息(實際上是發送到Queue中)去運行這個實例。(2)Scheduler:選擇

51、一個host去執行命令。如:Schedule:調度器接收到了消息隊列Queue中API發來的消息,然后根據事先設定好的調度規則,選擇好一個host,之后,這個instance會在這個host上創建。(3)nova-compute :啟動和停止實例,附加和刪除卷等操作。如:創建一個instance的操作是由Compute完成的,而這個過程中computer組件與Glance-api交互得到所需的instance鏡像。(4)nova-network:管理網絡資源,分配固定IP。3.4 OpenStack網絡服務Neutron3.4.1 Neutron介紹OpenStack網絡的核心理念就是通過多個

52、其他元素(如虛擬機、系統管理模塊以及其他連接的網絡)為用戶提供一組一致性的網絡服務16。從本質上講,OpenStack網絡創建了一個一致的邏輯通訊層,而其他元素可以有效地、大規模地使用這個邏輯層。這一模式是在OpenStack Neutron服務器中實現的,它與OpenStack Nova軟件管理的虛擬機(即計算服務)以及上述提及(t j)的其他元素進行交互17。用戶通過(tnggu)OpenStack的Horizon GUI與網絡功能進行交互,而其他的管理系統和網絡則通過使用Neutron API與網絡服務進行交互。Neutron使用RESTful網絡服務和HTTP與其客戶端進行通訊。它使用

53、JavaScript對象表示(JSON)和XML對其運行進行建模。它是專為隨時間推移而實現靈活增加功能的目標而設計的,它可擴展至一系列的部署并使用易于理解的開放式軟件以便于能夠更高效地把多方功能整合至OpenStack網絡環境。請求、響應以及其他的邏輯步驟都有明確的定義,并且這些邏輯步驟都可用于一些(yxi)必要功能的創建與管理,進而支持網絡服務實施15。在其目前的分布中,OpenStack Neutron混合實施了第二層的VLAN和第三層的路由服務,它可為所支持的網絡提供防火墻、負載平衡等擴展功能。網絡中的虛擬機來自于虛擬機管理程序7。此外,通過使用支持IPv4和IPv6的強大地址管理功能,

54、Neutron可在一個站點內實現虛擬機的靈活部署。它采用了一個邏輯的子網架構,IP塊表示可以尋址虛擬位置和到達其部署結構中任何的位置。這種結構類似于在眾多Neutron IP組網中所使用的子網技術,它通常是從與子網相關的物理端口抽取出來的。在覆蓋網絡中,它可被用作邏輯關聯機制,以便于為不同用戶和應用程序分離網絡流量。通過使用這種方法,云計算供應商可以分別實現多個租戶的通訊并為不同應用程序部署拓撲,例如多層服務器組合以處理一個整體應用程序的不同部分。L3-agentPlugin-agentSoftware-defineNetworking serviceNeutron-serverMessage

55、 queueDhcp-agent圖3.5 Neutron架構如圖3.5所示:(1)neutron-server 是 OpenStack Networking 服務器的主要(zhyo)流程。它是一個 Python 后臺進程,將用戶請求從 OpenStack Networking API 中繼到配置的插件。(2)neutron-dhcp-agent 向所有租戶(zh)網絡提供動態主機配置協議 (Dynamic Host Configuration Protocol, DHCP) 服務。(3)neutron-l3-agent 執行 L3/網絡地址轉換(zhunhun) (Network Addres

56、s Translation) 轉發,以支持網絡網絡訪問租戶網絡上的 VM。一個特定于插件的可選代理 (neutron-*-agent) 在每個虛擬機管理程序上執行本地虛擬交換機配置。3.4.2 Neutron 網絡創建過程Neutron 網絡目的是為 OpenStack 云更靈活地劃分物理網絡,在多租戶環境下提供給每個租戶獨立的網絡環境。另外,Neutron 提供 API 來實現這種目標。Neutron 中用戶可以創建自己的網絡對象,如果要和物理環境下的概念映射的話,這個網絡對象相當于一個巨大的交換機,可以擁有無限多個動態可創建和銷毀的虛擬端口7。在 Horizon 上創建 Neutron 網

57、絡過程如下:首先管理員拿到一組可以在互聯網上尋址的 IP 地址,并且創建一個外部網絡和子網。租戶創建一個網絡和子網。租戶創建一個路由器并且連接租戶子網和外部網絡。租戶創建虛擬機。3.5 本章小結本章首先介紹了OpenStack的概念架構和訪問流程對OpenStack的整體運行原理有一個大致的了解,之后詳細介紹了OpenStack的三大服務:OpenStack認證服務Keystone、OpenStack計算服務Nova 、OpenStack網絡服務Neutron,對每一種服務的架構、訪問流程以及實現原理都做出了詳細的介紹。第四章 OpenStack云管理平臺的搭建4.1 單節點(ji din)安

58、裝部署OpenStack4.1.1 實驗環境(hunjng)及實驗拓撲本次(bn c)實驗采用一臺8個vCPU、16GB內存的云主機,搭載CentOS 6.6 64bit操作系統,用來單節點部署OpenStack。搭建OpenStack云管理平臺需要較高的硬件配置,并要求支持CPU虛擬化。實驗拓撲圖如圖4.1所示。圖4.1 實驗拓撲圖本文設計的云計算平臺的實驗拓撲圖如圖4.1所示,主機分別連接到內網和外網,通過路由器,Public-Subnet和公網相連,這樣就可以通過公網來SSH到云主機,并且可以通過公網進入到OpenStack的DASHBOARD,以圖形交互模式來管理云。由于考慮到實驗環境

59、的限制,本次實驗采用單節點部署,達到節省硬件消耗的目的。另外,單節點部署更適合實驗環境,而多節點部署更適合生產環境1。4.1.2 構建過程目前OpenStack可以采用多種方法進行構建,如源碼安裝、使用DevStack腳本安裝、使用 Puppet 安裝等,為了進一步熟悉 OpenStack 的框架,本文采用通過OpenStack官方網站提供的指導手冊進行一步步的安裝10。部署流程圖如圖4.2所示。圖4.2 實驗(shyn)部署流程圖4.2 云平臺搭建(d jin)主要過程和問題解決4.2.1 Keystone的安裝與問題(wnt)分析以下是其安裝和配置的主要過程。(1)安裝KeyStone#

60、yum install -y openstack-keystone(2)初始化數據庫# openstack-db -init -service keystone -password PASSWORD (3)生成Token,并設置環境變量# export SERVICE_TOKEN=$(openssl rand -hex 10) # export SERVICE_ENDPOINT=06:35357/v2.0 # echo $SERVICE_TOKEN /tmp/ks_admin_token 71068df694f4c4620156 (4)修改(xigi)配置文件# openstack-confi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論