小生部落格:http://xsboke.blog.51cto.com
-------謝謝您的參考,如有疑問,歡迎交流
一、 雲服務和計算的類型
二、 openstack簡史
三、 openstack架構
四、 openstack關鍵元件
一、雲計算簡述
1. 雲計算的類型
- 私有雲:系統邊界明确,一般部署在企業内部
- 共有雲:部署在開放環境,如:阿裡雲、騰訊雲、華為雲等
- 混合雲:以私有雲為基礎,能夠在業務負載超越私有雲自身能力或其它指定的情況下,把部分業務負載透明地分流到其它雲上進行處理
2. 雲計算服務類型

- Iaas:提供基礎設施級服務(cpu、記憶體、存儲、網絡資源等)
- Pass:提供平台級服務,在iaas基礎上,提供應用軟體的平台
- Saas:提供軟體級服務,如:購買exchange的saas,購買後直接使用,無需客戶對軟體進行維護
二、 Openstack簡介
1. Openstack曆史
- Openstack的版本以Austin、Bustin、Custin的順序命名,一般半年更新一個版本
- 2010年,由美國國家航空航天局聯手Rackspace,在建設美國國家航空航天局的私有雲過程中,建立了openstack的項目,之後他們邀請其他供應商提過元件,建立了一個完整的開源雲計算解決方案。
- Rackspace (NYSE:RAX)全球三大雲計算中心之一,1998年成立,是一家全球領先的托管伺服器及雲計算提供商。
- 2010年誕生的第一個版本Austin,隻包含Rackspace和美國國家航空航天局的元件。之後釋出的版本包含了已加入該項目的供應商開發的附加元件
2. Openstack的作用和特點
- 提高企業計算、電源、網絡帶寬等資源使用率
- 根據客戶需求,按需配置設定,無需人工幹預
- 網絡通路:可以通過網絡使用任意類型的異構計算能力,通過标準化的機制調用計算資源而不受限于具體的通路裝置
- 資源池:多個使用者可以同時通路和使用雲計算提供的計算服務
- 彈性:根據需求,不停機或短暫停機後迅速垂直或橫向擴充
- 計量或測量服務:按照使用的時間、傳輸速率或存儲大小支付雲計算服務
3. Openstack的功能
- 三大核心功能:計算、存儲、網絡;分别對應相應的項目Nova,Cinder等
- Nova提供了計算資源的管理,可以管理跨伺服器網絡的vm執行個體。同時Nova還提供了對多種Hyperviosr的支援,如KVM,QEMU,Xen,LXC,Vmware,Hyper-V,Powervm等
- Cinder提供了存儲資源的管理,可以管理各個廠商提供的專業儲存設備
三、 Openstrack架構
整個OpenStack是由控制節點,計算節點,網絡節點,存儲節點四大部分組成。(這四個節點也可以安裝在一台機器上,單機部署)
四、 Openstack關鍵元件
1. Mysql
- Openstack所使用的資料庫,包括nova,glance,cinder等在内的元件都會建立自己的資料庫,儲存一些必要的資料
2. Keystone
1)Openstack的使用者認證元件,它的功能主要是建立管理項目的使用者和各種服務端口,以及進行使用者的身份認證,若要使用openstack的任意的API,第一步就必須通過keystone的驗證。
2)keystone的主要功能是提供認證和編錄服務
3) keystone提供了兩種認證方式:token(基于令牌),identify(基于使用者名/密碼)
- token(令牌,實際是一個随機字串,在認證時直接使用),主要用于内部各元件之間
- identify(賬号,密碼),需要使用者登陸時,如使用者通過horizon通路雲資源
4)除此之外,Keystone提供以下三種服務:
- 令牌(token)服務:含有授權使用者的授權資訊
- 編錄(catalog)服務:含有使用者合法操作的可用服務清單
- 政策(policy)服務:利用Keystone具體指定使用者或群組某些通路權限
3. Glance
用來存放管理虛拟機鏡像和快照的服務,這也是一個最小架構中必須有的服務。
- glance存放鏡像的中繼資料的
- registry:調用資料庫的接口,檢索接口
- database:映像檔案的存儲位置等
- swift:分布式存儲
4. Neutron:
網絡服務,用來提供虛拟機網絡通信的元件,負責接收對網絡的調用請求
5. Nova
- Nova是個至關重要的元件,也是個相對龐大的元件,其中有很多服務,它是進行生成虛拟機工作的主要服務。
- Nova計算節點,是openstack的最核心的節點,運作虛拟機執行個體,配置設定cpu、記憶體,nova-compute本身并不能運作虛拟機,是要通過hypervisor,nova-compute通過api調用hypervisor,,nova-compute支援那種api就可以調用那種hypervisor,如nova-compute支援libvirt api就可以調用libvirt支援的hypervisor(如kvm),xenapi可以調用xen
6. Cinder
- 塊存儲
- 用來建立,删除及管理volume(虛拟磁盤卷),以及給volume做快照等服務的元件
- swift:分布式檔案系統,用來存儲鏡像檔案模闆
7. Horizion
- Openstack 的web管理頁面,使用django架構開發。Web管理頁面包含了日常使用的大部分功能,提供給使用者一個最直覺的展現方式。很多簡單的二次開發都是從Horizon開始的。
8. Rabbitmq
- 在openstack中,各個服務之間是通過消息來互動的,因為openstack使用AMQP作為消息傳遞的技術,是以rabbitmq,qpid,zeromq等支援AMQP的軟體都是被openstack所支援的。Rabbitmq是第一個被openstack所使用的消息傳遞軟體。Openstack通過AMQP實作RPC服務,來保證不同元件之間的通信,rabbitmq是控制節點中的一個非常關鍵的服務。
轉載于:https://blog.51cto.com/xsboke/1933206