以公司實際應用講解OpenStack到底是什么(入門篇)
原創【51CTO獨家特稿】可能很多人從Ubuntu和HP的新聞當中聽說過OpenStack,知道它跟云計算相關,可是OpenStack究竟是做什么的,可能不少人還只有比較模糊的感覺。而在之前一篇《OpenStack實踐之旅:安裝配置篇》發布之后,有讀者詢問有沒有具體的應用。那么接下來,本文將以公司實際應用場景為例,介紹OpenStack能用來做什么。
OpenStack是一個云平臺管理的項目,它不是一個軟件。這個項目由幾個主要的組件組合起來完成一些具體的工作。要想直觀的了解它是什么樣子的,請參閱《OpenStack詳細解讀:定義,好處與使用實例》一文。
就目前而言,OpenStack在國外慢慢的流行開來,不少企業和個人也在對它進行二次開發。從我個人理解,OpenStack作為一種免費的開源軟件,可以用在中小企業內部,可以給公司內部的開發測試部門使用,也可以跑一些應用服務。另外一種就是提供對外服務,好比作云服務的企業會考慮對OpenStack進行二次開發和包裝,集成或者新增一些特定的功能或者管理界面。我覺得OpenStack不光光能在1分鐘給你想要的image操作系統,也可以做到5分鐘能幫你生成一臺app節點(應用服務器)加入到業務中去。后者才是我們現在更需要去做的,從irc聊天室、郵件列表、以及一些wiki的內容來看,老外已經在這方面走在了前面。
在這篇文章里,我將介紹一下一個簡單的、可用在公司內部的OpenStack構建起來的管理平臺。它看上去是這樣的:
這個環境一共用了6臺8核的服務器。除去控制器的核心不算,一共有40個可用于計算的核心。其中:
- 啟動了4臺的cpu作為計算節點用來跑虛擬機(nova-compute)
- 一臺服務器安裝了nova,glance,keystone,dashboard的所有服務和mysql數據庫作為控制節點
- 一臺啟用了nova-volume服務,提供給虛擬機額外的塊存儲
這樣圖中顯示的40 cores就是總共的cpu,已經用了16個;第二列是內存,下面顯示了有兩個部門。分別跑了2個和5個實例。
這張圖展示的是Images,通俗的講就是預先做好的系統或者模板。images是通過名叫glance的這個組件來管理(這下知道glance的用處了吧),它提供命令接口允許用戶把自己做好的系統(支持img,qcow2等格式),至于如何用kvm做自己的img,可以參考這份文檔。
在圖中可以看出,有CentOS,Windows XP,RHEL的模板。另外3個image是用戶自己做的,簡單的是就是用戶使用我做的RHEL(里面只裝了一些基本的系統軟件)生成虛擬機實例,然后在虛擬機中配置了他自己需要的軟件應用。配置完成之后,保存為rhel_app這個image,這樣下次有需要的時候,就可以直接從rhel_app啟動新的實例,1分鐘之內就可以使用他需要的應用。
這張圖顯示的就是目前跑在私有云上的實例。我們可以看到右邊有四個選項,Terminate是撤銷,也就是刪除虛擬機實例,Reboot重啟,Console Log顯示終端上的信息,VNC Console這個是直接在web上面開個vnc窗口顯示console,另外還有Snapshot的按鈕,這個按鈕會出現在以用戶自己身份登陸的界面上。目前我是以admin身份登陸。
限于篇幅原因,還有很多tab頁面我不做介紹了??偟膩碚f,你只要給一個用戶一個帳號,他就能從image選擇不同配置(cpu,內存,磁盤)的實例,分配ip,開端口,登陸,完全自主的操作,不需要管理員去干涉。如果你覺得這套管理工具對你或者你們企業來說有一定的幫助,想要嘗試一下,或者基于它來作二次開發(因為OpenStack是完全開源的),可以繼續往下看,我將會簡單介紹一下如何構造這么一個系統。
這張圖是個簡單的拓撲圖。每臺host都有兩塊網卡,連接switch1的是外部訪問接口,就是用戶可以直接連接到的ip網絡,這個網絡用來提供給虛擬機以便用戶使用。switch2使用一個內部的網絡,即對用戶不可見,我們可以設定一個私有網絡,這個網絡用來node節點和controller之間的網絡通訊,image的傳輸,nova-volume和node之間的iscsi的數據傳輸。
環境準備
所有的服務器都安裝Ubuntu 11.10。
網絡配置
參照上一篇文章中配置網絡接口那一部分,請把br100的設置controller為10.200.200.1,node1為2,以此類推。
時間同步
時間同步很重要,保證你各個節點之間,通常在controller上配置ntp服務器。其余節點的配置文件以controller的ip為ntp服務器。
安裝控制器
在這里我以controller的外網ip為10.11.3.62,內網為10.200.200.1,安裝過程參照了devstack的腳本 ,我注釋掉了腳本里的swift以及一些目前還用不到的部分。設置了一些自己的環境參數。
git clone git://github.com/livemoon/mydevstack cd mydevstack
修改localrc的內容:
DEST這個你可以設置為你自己想要安裝的目錄,我這里用/data/stack FIXED_RANGE這個很重要,簡單的說就是switch2的網段 FLOATING_RANGE外網的地址網段 FLAT_INTERFACE這個就是你綁定網橋的那個網口。和你/etc/network/interfaces里一致 MYSQL_USER腳本里默認使用root,我使用了一個別的用戶。這個隨便你 然后執行腳本./stack.sh
一開始會問你幾個密碼,分別是mysql,rabbitmq,service_token,horizon and keystone admin。你可以按照自己的輸入,只是要注意別搞混了。接著它就會運行下載安裝,由于可能網絡的原因會導致安裝中途斷掉,遇到這種情況,重新運行腳本即可。腳本執行完之后,屏幕上會出現“stack.sh completed in $SECONDS seconds.”
這時候,打開你的web瀏覽器。輸入 “http://$HOST_IP/”,$HOST_IP/就是我的10.11.3.62,輸入你自己的,如果出現登陸界面,輸入admin和剛才的 horizon and keystone admin這個密碼。如果登陸成功,那就說明你完成了controller的安裝。
默認情況下,controller上面會起所有nova的服務,你應該可以看到你有幾個cpu和內存可以使用,現在已經可以使用基本的功能了。這個時候,你的controller其實即是控制節點,也是計算節點(因為起了nova-compute和nova-network服務)。
以上就是一個最簡單的搭建教程。如果你只是想看一下界面,知道它是怎么樣的一個東西,那么現在已經足夠了。
在下一篇中,我將介紹如何平行的添加節點,制作鏡像,進行快照,設定實例的配置選項。如果你想繼續深入,把OpenStack作為一個可以研究的對象的話,請先讀懂devstack的腳本,然后我們再深入。
作者簡介:livemoon(gtalk: mwjpiero@gmail.com),小小SA,關注mac,BSD,openstack,開源技術,webos。座右銘:非淡泊無以明志,非寧靜無以致遠。
【編輯推薦】