以公司實際應用講解OpenStack到底是什麼(入門篇)

火星人 @ 2014-03-12 , reply:0


  

【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頁面我不做介紹了。總的來說,你只要給一個用戶一個帳號,他就能從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。座右銘:非淡泊?o以明志,非????o以致?。

 





[火星人 via ] 以公司實際應用講解OpenStack到底是什麼(入門篇)已經有1121次圍觀

http://www.coctec.com/docs/enterprise/show-post-73105.html