openstack


最近在學習openstack,以下是一些基礎知識:

1、Cloud computing提供了以下幾個模型:SaaS(software as a service), paas(platform as a service),iaas(infrastructure as a service),其中openstack屬於第三種。
2、openstack包括以下幾個模塊:
1)、object Store(Swift):提供了對象的存儲,它可以讓你存儲和檢索文件,提供了強大的擴展性、冗余和持久性,一些大公司提供了基於Swift的商業存儲服務。
2)、Image(Glance):主要用來管理鏡像文件,這些文件都在Compute中被使用
3)、Compute(Nova):在需要的時候可以提供“虛擬”的服務。例如你需要一個100G,內存為1G的虛擬機,其可以通過設置將你需要的虛擬機提供給你。
4)、Dashboard(Horizon):提供了對於所有openStack services的一個基於web的用戶界面,在這個界面上你可以進行很多的操作。
5)、Identity (Keystone):提供驗證和授權的所有OpenStack的服務。
6)、Network (Quantum) :提供基於那些同樣有OpenStack services (Nova)的連接來提供對用戶的服務。
7)、Block Storage(Cinder):給用戶的虛擬機上提供持久的塊存儲。該模塊在別的版本中存在於Nova中。

 

3、Network在OpenStack中是個很重要的部分,OpenStack的網絡由network(網絡控制器)管理,它會創建虛擬網絡,使主機之間以及與外部網絡互相訪問。Nova有固定IP和浮動IP的概念。固定IP被分發到創建的實例不再改變,浮動IP是一些可以和實例動態綁定和釋放的IP地址。在基本的網絡管理方式中,所有實例的網絡流都要經過網絡控制器。當網絡控制器出現問題時,網絡就出現故障,網絡控制器是一個SPoF(單故障點),為了防止出現這種問題,可以在每個計算節點上安裝Network組件,此時作為其上所有實例的網關,實例不再都從控制節點經過,控制節點出現問題將不會影響網絡。
在實例經過網絡時,它所經過的步驟是:
1)實例經過所在主機的flat_interface(這是一個flat網絡),連接到nova-network所在的主機(控制節點);
2)網絡控制器對外出網絡流進行轉發。

 

4、compute模塊:
Nova是OpenStack中最復雜的分布式組件,它通過大量的進程合作,將最終用戶的API請求發送到正在運行的虛擬機之上。以下是這些進程的列表及其功能的描述:
nova-api:接受和響應最終用戶Compute API的請求。它支持OpenStack Compute API,Amazon EC2 API和一個特殊的Admin API。它還引發多數業務流程的活動(如運行一個實例),並實施一些政策(主要是配額檢查)。
nova-compute:主要是一個人工守護進程,它可以通過虛擬機管理程序的API(XenAPI for XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware等)來創建和終止虛擬機實例。雖然通過該進程做的事情是相當的復雜,但是它的基礎原理卻是非常的簡單:接收隊列中的動作,然后執行一系列的系統命令(如啟動KVM實例),同時更新數據庫中的狀態。
nova-volume:給虛擬機分配額外持久化的存儲,管理持久卷到計算實例的創建,連接和分離。一個新的OpenStack項目,Cinder,將最終替代nova-volume功能。在發布的Folsom版本中,nova-volume和Block Storage service(塊存儲服務)有類似的功能。
nova-network:該人工守護進程與nova-compute和nova-volume非常相似。它接受隊列中的網絡任務,然后執行任務操縱網絡(如設立橋接接口或更改iptables規則)。不過該項功能被移植到Quantum之中,已經成為一個獨立的OpenStack服務。
nova-schedule:從概念上說是OpenStack Nova中最簡單的一段代碼:從隊列上得到一個虛擬機實例請求並且決定它應該在哪里運行(特別是它應該運行在哪台計算服務器主機之上)
queue:提供了一個守護進程之間傳遞消息的中央樞紐。當前由RabbitMQ實現,理論上可以是Python的ampqlib支持的任何AMPQ消息隊列。新的Folsom版本支持Zero MQ。
SQL database:存儲雲基礎設施的編譯時和運行時的狀態。這包括可用的實例類型,在使用中的實例,可用的網絡和項目。從理論上講,OpenStack Nova可以支持任何SQL-Alchemy支持的數據庫,但是目前被廣泛使用的數據庫僅僅有sqlite3(只適用於測試和開發工作),MySQL和PostgreSQL。
Nova還提供控制台的服務,讓最終用戶通過代理服務器訪問他們的虛擬實例的控制台。這涉及到多個守護進程(nova-console,nova-vncproxy和nova-consoleauth)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM