文/樓飛燕
云計算技術的發展催生了各種各樣的云平臺,從構建云計算基礎設施到發展云管理平臺,云計算的應用越來越普及,技術發展也越來越成熟。現階段云計算主要包括三種部署模式,即私有云、公有云、混合云等,其中公有云是可出售云服務的云平臺,通常盈利為主要目標;I私有云則是大小型組織內部構建云平臺的主要模式,組織內部IT資源通過云平臺集成為一個統一的整體,向組織內部成員提供日常服務;混合云即私有云與公有云的組合。本研究所提出的基于OpenStack的開源高校網絡云計算平臺即屬于私有云的范疇。
根據云計算所提供的層次服務可以將其由上到下劃分為不同的服務層次,最上層為軟件即服務(SaaS),中層為平臺即服務(PaaS),最下層為基礎設施即服務(IaaS),不同的服務層次所對應的用戶類型也有所不同,SaaS提供應用層軟件服務,PaaS提供虛擬數據中心,IaaS提供開發及測試環境等。云計算平臺不僅是一個復雜、龐大的技術體系,更是一個層次分明的業務體系。評價一個OpenStack平臺功能健全性、服務穩定性的重要標準就是其功能特征,云計算的功能特征主要包括按需服務、廣泛接入、資源池、可伸縮性、計量服務等五個方面:按需服務是指用戶對計算的資源規模進行自定義,由云計算自動提供資源,整個過程無需服務商的人工化交互即可實現。廣泛接入是指在網絡機制標準化的基礎上,用戶可以通過異構化的手機、平板電腦等客戶機平臺直接訪問資源。資源池是指云計算運營商將網絡、存儲、CPU等多種計算資源構建成資源池,系統可以根據不同用戶的不同需求對物理資源、虛擬資源進行動態分配、重新分配,資源分配過程中用戶并不能確定計算資源的具體物理位置,不過可以明確計算資源位置抽象。所謂可伸縮性是指云計算平臺提供計算資源的彈性及釋放計算資源能力,不同場景的用戶會對提出不同的計算資源需求,平臺需要基于用戶的角度進行計算資源的快速擴張或釋放,以滿足用戶隨時隨地的計算資源需求。計量服務包括計算、存儲、帶寬等,是指通過使用在某些抽象層面的計量方法對資源使用情況進行自動化控制與管理,并且可以實現對信息資源使用情況的監測、控制及報告,對用戶及云計算服務商都實現透明化管理。
從某種意義上講,云計算是多種信息技術協同網絡技術共同發展的結果,其涵蓋了虛擬化技術、分布式計算、數據存儲等多項關鍵技術。云計算以虛擬化技術為主,通過虛擬化技術可以將硬件進行虛擬抽象處理,各虛擬機之間、虛擬機與宿主系統之間互相隔離。云計算可以利用虛擬化技術對現有硬件資源進行虛擬化處理,構建虛擬資源池,提高資源調配的靈活性及使用效率。云存儲技術是指使多種不同類型的存儲設備協同工作,利用存儲服務器集群、網格技術、分布式文件系統等功能組成存儲資源池,由協同工作的存儲設備共同向用戶提供數據存儲及數據訪問。由于云存儲系統的用戶訪問請求具有并發性的特點,因此要求云存儲也要具備分布式、高速傳輸的特點,以滿足大量用戶海量的存儲空間需求。分布式計算是指協同大量硬件服務器、主機通過網絡分解龐大的計算量,該計算模式會利用各種計算設備組成的硬件集群分別計算若干個小部分的計算問題,再經過匯總、分析得出計算結果。分布式計算模式對于計算機的地理位置沒有要求,大大提高了計算資源利用率;且該模式可以將計算負載由單點轉移至多點,多點計算負載不僅可以大大提高系統的計算效率,而且多點計算架構模式可以實現災難恢復,有效保障了系統的可靠性及安全性。
OpenStack被稱作新一代的云操作系統,其是由Rack Space公司與美國宇航局聯合發起的開源軟件項目,其旨在構建一個內核,面向全球開發者構建一個云計算生態系統,該系統可以滿足不同組織機構的多種應用需求。OpenStack的設計原則包括:
(1)保證系統良好的可擴展性及伸縮性,為組織架構的靈活性,任何會對系統可擴展性、伸縮性產生影響的功能都是可選的。
(2)所有環節均必須是異步的,且要始終采用無共享的獨立架構,如果無法實現,則要保證任何會對系統可擴展性、伸縮性產生影響的功能都是可選的。
(3)所有基礎組件必須提供橫向擴展功能,所有資源、軟件結構必須采用分布式模式,特別是邏輯層面。
OpenStack系統中基于服務類型角度可以將物理資源節點劃分為兩種類型:一種是計算節點,其為虛擬機的運行提供物理資源,一種是控制節點,主要提供諸如存儲、網絡、驗證、鏡像等云平臺上的控制服務,這些控制服務可以分散在多個控制節點運行,網絡控制器即提供網絡服務的控制節點。
目前OpenStack云計算系統由六大核心項目共同運行以為用戶提供服務,最主要有計算服務、存儲服務、鏡像服務,還包括一些其它服務。其中計算服務的主要作用是為系統提供計算服務,其主要擔負著云計算資源虛擬化、云控制器的作用。OpenStack社區開發了一個開源項目Nova,可以通過其所提供的軟件對OpenStack的基礎設施服務層次進行控制,實現對實例的創建、管理、運行訪問的權限控制等。OpenStack云計算平臺中存儲服務是一種對象存儲系統,其具備良好的擴展性,不僅支持常見的文本、圖像、視頻等數據類型,還要支持為Web應用創建基于云的彈性存儲、開發數據存儲整合的新應用等更高層次的功能。鏡像服務是一個針對虛擬機鏡像的管理控制系統,通過Web用戶可以向計算平臺發送服務請求,鏡像服務在接收到用戶的虛擬機鏡像存儲請求后會滿足用戶需求,可檢索云中心的虛擬機鏡像。除計算服務、存儲服務、鏡像服務外,OpenStack云計算系統還包括控制面板、數據庫服務、消息隊列服務等其它服務功能。其中,數據庫服務通常采用普通的關系型數據庫,控制面板可以為用戶與管理層之間提供一個友好的交互界面,用戶通過該界面登錄云計算平臺進行操作;消息隊列服務主要是為各個Nova組件之間的消息分發提供依據,在整個云計算平臺中,每個組件均以數據庫及消息隊列為核心進行通信。當然,隨著技術的不斷發展,OpenStack云計算平臺會逐漸添加、更新越來越多的服務組件。
除上述一系列功能組件外,OpenStack平臺的運行也離不開其它技術的支持,其中的關鍵技術包括Libvirt虛擬化管理庫及高級消息隊列協議,這些技術也是對OpenStack進行二次開發的必備工具。Libvirt虛擬化管理庫是一個IaaS平臺,其通過底層多種虛擬化軟件實現虛擬化管理,是OpenStack平臺與底層虛擬化管理軟件之間的橋梁,其本身并不提供虛擬化功能,而是對底層的虛擬資源進行管理、操作。Libvirt作為一個免費開源的C語言開發庫可以為多種虛擬化管理軟件提供編程接口,可以兼容C#、Java等多種語言,具有快捷、穩定、跨平臺、易操作的特點。高級消息隊列協議是用戶與消息中間件進行信息傳遞的應用層協議,該協議用于分布式系統中存儲轉發消息,并可實現異步消息服務。
本研究提出一種基于OpenStack的開源高校網絡云計算平臺。
云管理平臺的主要作用是為OpenStack各個服務組件、計算資源提供統一的管理接口,其包括多個功能模塊,管理員可以通過Web實現對系統方便、快捷的管理操作。資源創建的主要對象是各種計算資源及管理平臺資源,創建各種管理規則,包括主機域、虛擬機域、工作組等,主要通過OpenStack提供的Rest API實現。資源管理模塊主要對虛擬機鏡像、網絡資源、虛擬機、存儲資源及OpenStack節點等進行操敘,以方便、快捷的管理系統中各種資源。云管理平臺支持針對TCP、ICMP、UDP等不同協議的多種訪問規則,用戶可以針對某種協議設定對應的訪問規則,最大程度上保證系統管理的安全性。備份恢復主要是采用對虛擬機創建快照的形式保存資源當前的狀態信息,以為用戶提供數據備份功能,當資源受到損壞時可以利用快照功能恢復數據。消息管理主要是對虛擬資源的操作進行反饋,比如資源是否添加成功、平臺警告信息等,便于管理員及時進行問題追蹤。在整個云環境中,各控制節點、計算節點、存儲節點組成底層的OpenStack集群,云計算平臺為OpenStack集群提供了集群擴展功能,根據物理主機的相關信息可以完成OpenStack的自動化部署。
在系統架構中,云計算平臺位于OpenStack平臺之上,其通過RestAPI接口完成與OpenStack功能組件的交互,實現資源的基本管理與操作。限于篇幅,此處以創建虛擬機為例說明云計算平臺與OpenStack組件的交互:首先,管理員將創建虛擬機的請求發送至云計算平臺,獲得認證授權Token后即可獲得操作OpenStack服務組件的權向,再將創建虛擬機的請求發送至Nova API,由其向Glance組件請求虛擬機鏡像模板文件,并返回請求。NovaAPI將調度請求發送至nova-schedulle組件,確定合適的OpenStack計算節點后放置虛擬機,NovaAPI調用計算節點的nova-compute組件創建虛擬機,并調用nova-network組件設置對應的虛擬網絡環境,最后控制節點的NovaAPI可以接收到計算節點返回的虛擬機創建操作結果,再由其將創建結果發送至云計算平臺。
雖然OpenStack云計算平臺在按需服務、廣泛接入、資源池管理等方面的技術已經比較成熟,但是在資源監測還存在一些不足。針對這一問題,本研究設計了資源監測功能,資源監測的主要對象包括OpenStack中的虛擬機、物理機、服務組件等三種,對物理機、虛擬機的CPU、內存、存儲、網絡等指標進行監測,并監測OpenStack各個節點上運行的服務組件是否正常運行,在獲取相關數據后將其存儲至監測數據庫中。資源監測模塊主要包括監視器收集器、心跳機制、監控程序控制器等。監視器收集器是一個守護進程,主要采集虛擬機、物理機及服務組件的狀態信息,并發送至監控程序控制器進行處理。心跳機制的作用是定時獲取監測性能數據信息,心跳時間頻率是設定好的,監視器收集器會根據設定的頻率定時采集物理機、虛擬機及服務組件的數據。監控程序控制器在接收到監視器收集器的監測信息后要將數據信息發送至云計算平臺進行實時監測,并將信息數據存儲于監測數據庫中。資源監測對物理主機的監測主要在物理主機上利用Linux的Shell腳本采集物理機的性能指標;對虛擬機的監測是在連接虛擬機后調用API獲取相關性能數據;對服務組件的監測主要是通過定時監測節點發送的信息回復的方法判斷服務組件的運行狀態。
隨著云計算技術的不斷發展,其在資源調配、快速部署方面的優勢越來越顯著,其也催了一批云計算工具,開源云計算已成為業內的一個重點研究方向。OpenStack提供了源代碼及系統框架,大大提高了系統的安全性、易用性,但是在實際應用過程中,對于一般用戶來說還存在一些問題,比如缺乏自動化的安裝工具、云平臺管理存在一些問題等。針對這一現狀,本研究提出一種基于OpenStack的高校云計算管理系統,其實現了資源創建、資源管理、備份恢復、消息管理等功能,針對OpenStack云計算平臺在資源監測方面存在的不足提出解決辦法,以更好的幫助系統管理員完成日常的云計算平臺管理工作。