◆劉 坤
(蘇州健雄職業(yè)技術學院軟件與服務外包學院 江蘇 215411)
基于OpenStack的云計算實訓資源開發(fā)與設計
◆劉 坤
(蘇州健雄職業(yè)技術學院軟件與服務外包學院 江蘇 215411)
云計算、大數(shù)據(jù)已經(jīng)成為了當前社會IT行業(yè)前沿技術。各高職院校也都開始著手建設云計算技術及應用新專業(yè)。針對新專業(yè)的開設,如何進行課程資源開發(fā)與設計?本文基于主流云平臺OpenStack開源系統(tǒng),以其核心組件Keystone為例設計案例,詳細介紹了基于OpenStack云計算技術教學資源的開發(fā)設計。
云計算;大數(shù)據(jù);OpenStack開源系統(tǒng)
云計算是分布式處理、并行處理和網(wǎng)格計算的發(fā)展,或者說是這些計算機科學概念的商業(yè)實現(xiàn)。它是基于互聯(lián)網(wǎng)的計算共享資源、軟件和信息,以按需的方式提供服務,是一種商業(yè)模式,它將計算任務分布到大量的計算機、服務器構成的資源池上,使用用戶能夠按需獲取計算能力、存儲空間和信息服務。云計算是一種 IT 資源的交付和使用模式,通過網(wǎng)絡以按需、易擴展的方式提供用戶所需的硬件、平臺、軟件及服務等資源?!霸啤钡挠嬎隳芰νǔJ怯煞植际降拇笠?guī)模集群和服務器虛擬化軟件搭建,通過互聯(lián)網(wǎng)為用戶提供服務,就像城市的電廠、水廠通過電網(wǎng)、管網(wǎng)將水電送入千家萬戶。
OpenStack作為一個開源的云計算解決方案,也可以將OpenStack理解為一個開源的操作系統(tǒng),它是由Python語言編寫,主要通過命令行(CLI)、程序接口(API)或者基于Web界面(GUI)實現(xiàn)對底層的計算資源、存儲資源、網(wǎng)絡資源的集中管理功能。在設計系統(tǒng)架構可以直接運用物理硬件作為底層,我們主要將其作為基礎設施即服務(IaaS)方案使用。
目前全國已有多家高職院校開設云計算技術專業(yè),這也是將來高職院校適應時代發(fā)展一個必將趨勢。對于一個新開設的專業(yè)和學科,如何開發(fā)設計好課程體系結構,課程教學內(nèi)容關系到一門課程、一個專業(yè)的發(fā)展。本文利用目前已經(jīng)成熟的開源平臺OpenStack,搭建云計算機平臺,開發(fā)設計適合課程教學需要的實訓項目。
云計算的主要服務形式有:SaaS(Software as a Service),PaaS(Platform as a Service),IaaS(Infrastructure as a Service)。IaaS(基礎架構即服務)是指消費者使用“基礎計算資源”,如處理能力、存儲空間、網(wǎng)絡組件或中間件。消費者能掌控操作系統(tǒng)、存儲空間、已部署的應用程序及網(wǎng)絡組件(如防火墻、負載平衡器等),但并不掌控云基礎架構。例如:Amazon AWS、Rackspace。PaaS平臺即服務是指消費者使用主機操作應用程序。消費者掌控運作應用程序的環(huán)境(也擁有主機部分掌控權),但并不掌控操作系統(tǒng)、硬件或運作的網(wǎng)絡基礎架構。平臺通常是應用程序基礎架構。SaaS軟件即服務是指消費者使用應用程序,但并不掌控操作系統(tǒng)、硬件或運作的網(wǎng)絡基礎架構,是一種服務觀念的基礎,軟件服務供應商,以租賃的概念提供客戶服務,而非購買,比較常見的模式是提供一組賬號密碼,具體層次功能劃分見圖1所示。
圖1 云計算服務形式
在云計算平臺研發(fā)方面,國外有IBM、微軟、Google 以及OpenStack 的鼻祖亞馬遜的 AWS 等,國內(nèi)則以 Ucloud、海云捷迅、UnitedStack、EasyStack、金山云、阿里云等。現(xiàn)在比較流行的以 CloudStack、Eucalyptus、vCloud Director 和 OpenStack,而 OpenStack 則在市場中占據(jù)了絕對的份額優(yōu)勢。OpenStack 社區(qū)聚集著一批有實力的廠商和研發(fā)公司,他們把自己代碼貢獻給社區(qū),不斷完善和推動 OpenStack 技術的發(fā)展。OpenStack是一個云管理的項目,隨著 OpenStack 組件的數(shù)據(jù)不斷的增加,新支持的功能也是在不斷豐富,OpenStack服務如下圖2所示,所以本文選擇OpenStack云平臺。
圖2 OpenStack服務
Nova、Keystone、Glance、Neutron、Cinder是OpenStack的核心組件,其使用率也是最高,正在生產(chǎn)和測試也是最高。OpenStack服務之間的調(diào)用關系是一個非常復雜的過程,可以總結為以下幾點:
(1)OpenStack 各個組件之間是松耦合;
(2)OpenStack的每一個服務都通過Restful的方式提供自己對外的訪問APIs;
(3)服務之間通過消息服務進行通信;
(4)每個服務狀態(tài)的變化都會在數(shù)據(jù)庫中記錄。
為促進校企合作、賽項資源轉化、推動云計算機技術專業(yè)建設,迫切需要利用企業(yè)提供的云平臺和技術,設計適合高校教學的課程資源。這樣既能為高校節(jié)省專業(yè)建設投入資金,又能為高校引進先進的技術資源,同時培養(yǎng)的專業(yè)高層次人才又能為企業(yè)服務。本文以Openstack核心組件Keystone為例,開發(fā)設計云計算技術教學實訓項目,其它核心組件可以參考完成實訓項目的設計開發(fā),從而完成以OpenStack開源平臺學習云計算技術的課程資源建設。
2.1 實訓環(huán)境網(wǎng)絡拓撲搭建
圖3 云實訓平臺網(wǎng)絡拓撲結構
本文利用OpenStack開源系統(tǒng)搭建云平臺實訓項目,根據(jù)OpenStack部署網(wǎng)絡中需要的控制節(jié)點、網(wǎng)絡節(jié)點、計算節(jié)點,進行硬件環(huán)境配置。在服務器上安裝操作系統(tǒng)及KVM,在控制節(jié)點、存儲節(jié)點、網(wǎng)絡節(jié)點安裝OpenStack服務組件,計算節(jié)點安裝OpenStack客戶端和代理程序,最后配置和調(diào)試計算、網(wǎng)絡、存儲完成實訓環(huán)境的拓撲搭建,如圖3所示。用戶可以通過web頁面或者終端的方式進行訪問云平臺。
2.2 Keystone認證服務權限管理
Keystone服務是權限管理也是OpenStack核心組件,主要用于用戶的管理授權。Keystone服務目錄,類似一個服務總線,或者說是整個OpenStack框架的注冊表,其它服務通過keystone來注冊其服務的Endpoint(服務訪問的URL),任何服務之間相互的調(diào)用,需要經(jīng)過keystone的身份驗證,從而獲得相應的Endpoint來找到目標服務。
圖4 Keystone模塊
其中Token是用來生成和管理token,Catalog用來存儲和管理service/endpoint,Identity:用來管理tenant/user/role和驗證,Policy用來管理訪問權限,通過請求身份令牌來驗證服務。Keystone可以實現(xiàn)云平臺用戶、租戶創(chuàng)建,角色權限指派等工作,具體角色定義如下:
(1)user(用戶)-用于身份認證,一個用戶可以關聯(lián)到多個租戶;
(2)Tenant(租戶)-相當于用戶的概念,一個租戶可以容納多個用戶;
(3)Role(角色)-關聯(lián)到“用戶-租戶對”的元數(shù)據(jù),可以關聯(lián)到多個“用戶-租戶對”;
(4)Token(令牌)-用于驗證用戶或者“用戶-租戶對”的請求是否合法;
(5)Service(服務)-服務類型和名稱;
(6)Endpoint(短點)-服務的實例(URL入口)。
云平臺可以通過界面、命令、shell文件等方式實現(xiàn)Keystone用戶、租戶、角色的創(chuàng)建。
(1)創(chuàng)建用戶:一個名稱為“test”賬戶,密碼為“test123456”、郵箱為“test@example.com”。
$ keystone user-create --name=test --pass= test123456”--email=test@example.com
(2)創(chuàng)建租戶:一個租戶就是一個項目、團隊或組織,當請求OpenStack服務時,必須定義一個租戶,創(chuàng)建租戶的命令操作結果如圖5所示。
圖5 創(chuàng)建租戶
(3)創(chuàng)建角色如下創(chuàng)建一個角色“compute-user”:$ keystone role-create
--name=compute-user,綁定用戶和租戶權限身份認證關聯(lián)用戶、用戶所在租戶和角色,可以使用命令keystone user-role-add完成,語法格式為:
$ keystone user-role-add --user <user> --role <role> [--tenant<tenant>]
假設給用戶“alice”分配“acme”租戶下的“compute-user” 角色,命令如下:
2.3 以 keystone核心服務為例設計實訓項目
搭建好OpenStack網(wǎng)絡環(huán)境,學習了Keystone組件的功能和基本語法后,本文以Keystone功能為例,設計適合高職教學的案例,通過案例講解、操作、演示使學生對Keystone組件功能能夠較好的掌握和理解。
某小型企業(yè)內(nèi)部有100名員工,其中50名為項目研發(fā)部(研發(fā)環(huán)境),45名為業(yè)務部(辦公環(huán)境),5人銷售部(產(chǎn)品銷售)。根據(jù)企業(yè)人員部門分配,現(xiàn)構建3個租戶,100個用戶,管理人員擁有管理員權限,其余人員擁有普通用戶權限,規(guī)劃表如下表1所示。
表1 企業(yè)員工角色規(guī)劃表
(1)創(chuàng)建租戶
創(chuàng)建項目研發(fā)部名為R_Dept的租戶、業(yè)務部名為B_Dept的租戶、IT工程部名為I_Dept的租戶,通過dashboard界面為研發(fā)部創(chuàng)建一個名為R_Dept的租戶,通過命令行為業(yè)務部創(chuàng)建一個名為B_Dept的租戶,通過腳本Keystone-manage-tenant.sh,為IT工程部創(chuàng)建一個名為I_Dept的租戶。
(2)創(chuàng)建用戶賬號
為項目研發(fā)部創(chuàng)建50個用戶,分別名為rduser001- rduser050密碼為cloudpasswd,為業(yè)務部創(chuàng)建45個用戶,分別名為bsuser001- bsuser045密碼為cloudpasswd,為IT工程部創(chuàng)建5個用戶,分別名為ituser001- ituser001密碼為cloudpasswd。可使用GUI和CLI界面,輔助可使用shell。
①通過dashboard界面為研發(fā)部創(chuàng)建用戶rduser001,密碼為cloudpasswd,進入dashboard找到管理員選項,打開認證面板,選中“用戶”,選擇“創(chuàng)建用戶”,在創(chuàng)建用戶界面,輸入用戶名、郵箱、初始密碼、主項目和角色。
②通過命令行為項目研發(fā)部創(chuàng)建用戶rduser002,密碼為cloudpasswd。
③通過編寫Keystone-manage-user.sh執(zhí)行Shell腳本為項目研發(fā)部創(chuàng)建用戶rduser003- rduser050,密碼為cloudpasswd。
云計算、大數(shù)據(jù)是計算機網(wǎng)絡隨時代發(fā)展的產(chǎn)品,云計算技術專業(yè)也是各高職院校最近幾年新開設的專業(yè)。對于云計算專業(yè)建設、課程設置、課程資源建設都還處于摸索階段,本文對于云計算技術專業(yè)課程資源開發(fā)給出了詳細課程案例,對課程資源建設有一定的幫助作用,其它的云平臺核心服務課程資源開發(fā),也可以通過案例分析,在實訓平臺上設計開始實施。
[1]張小斌.OpenStack企業(yè)云平臺架構與實踐[M].電子工業(yè)出版社,2015.
[2]黃高攀,張明明等.OpenStack云計算平臺安全解析 [J].信息技術與信息化,2015.
[3]喬然,胡俊,榮星.云計算客戶虛擬機間的安全機制研究與實現(xiàn) [J].計算機工程,2014.
[4]吳登攀.基于OpenStack云平臺的用戶管理系統(tǒng)設計與實現(xiàn) [J].電子科技大學學報,2015.
[5]吳玉寧,王歡,蘇偉,嚴曄,秦雪.OpenStack身份認證安全性分析與改進 [J].長春理工大學學報(自然科學版),2015.
[6]金永霞,孫寧.基于OpenStack的云計算實驗平臺建設與應用[J].實驗技術與管理,2016.
[7]王霄飛.基于OpenStack構建私有云計算平臺[J].華南理工大學學報,2012.