OpenStack技術棧-OpenStack的基礎原理概述
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
OpenStack既是一個社區,也是一個項目和一個開源軟件,它提供了一個部署雲的操作平台或工具集。其宗旨在於,幫助組織運行為虛擬計算或存儲服務的雲,為公有雲、私有雲,也為大雲、小雲提供可擴展的、靈活的雲計算。OpenStack也被稱為IaaS雲站。因為它擁有眾多組件,當然也有人稱其為雲操作系統。接下來讓我們系統的了解一下OpenStack軟件。
一.比較流行的關於雲計算模型介紹
作為運維人員為了實現特定工作的環境部署,我們通常會用到網絡,存儲,硬件服務器,虛擬化軟件,各種服務,數據庫,安全,運行環境和一些應用程序等等。接下來我們就一起看看私有雲的幾種運行方案。
1>.私有的,個人的(Private on Premise,簡稱PoP)
為了實現特定的環境部署,都必須由運維人員手動部署完成。
2>.基礎設施即服務(Infrastructure-as-a-Service,簡稱IaaS,)
基礎設施即服務,簡單的說,該平台一般由於運維人員來維護服務器,存儲,網絡等硬件基礎設施。消費者通過Internet可以從完善的計算機基礎設施獲取服務。例如硬件服務器租用。為了降低中小型企業的管理計算機方便的復雜程度,他們盡可能的將最終產品以最接近用戶的形態提供給客戶。基本上來講,它指的是,我們運行的操作系統服務器本身無需用戶自己來提供,而是由生產商提供(我們可以稱之為虛擬化服務運營商,OpenStack就是比較優秀的IaaS軟件代表,與之相媲美的還有CloudStack,兩者社區版活躍度不相上下)。
3>.平台即服務(Platform-as-a-Service,簡稱PaaS)
平台即服務,簡單的說,雲軟件平台一般由開發人員來完成。PaaS實際上是指將軟件研發的平台作為一種服務,以Saas的模式提交給用戶。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現可以加快SaaS的房展,尤其是加快SaaS應用的開發速度。例如:軟件的個性化定制開發。這種架構,運營商將所有的環境都部署好了,運維人員只需要在這個平台上安裝相應的軟件即可。離最終的用戶形態更進一步(Docker就是比較優秀的IaaS軟件代表)。
4>.軟件即服務(Sofrware-as-a-Service,簡稱SaaS)
軟件即服務,簡單的說,雲軟件服務時面向最終用戶的。它是一種通過Internet提供軟件的模式,用戶無需購買軟件,而是向提供商租用基於Web的軟件,來管理企業經營活動。人類對於懶惰的追求是永無止境的。運營商把所有的環境都提供給用戶了,用戶只需要通過一個瀏覽器去連接即可。比如一些網頁游戲(頁游)就可以說是Saas的一種表現。
對於有實力自建機房的互聯網企業來講,把公司所有的業務都放在公有雲上是不明智的,因為你所有的應用可能隨着公有雲提供商出現故障而導致你的服務不可用的。甚至我們自己都無法解決,因為我們不知道問題出現在什么地方。由於供應商要提供公有雲整個基礎設施將非常復雜,恢復起來恐怕也不是想象中的那么容易。因此,對於有實力的企業來講,他們有可能會選擇自建機房,但並不意味着我們要自掘雲計算。很多自建機房的企業,他們為了充分利用雲計算的思想以及技術手段的威力,會選擇在自有的機房內提供一個自有的虛擬化環境。
對於小型企業來講,自己購買服務器成本會很大,因為購買的服務器硬件可能三年就淘汰了。因此它們會選擇公有雲,因此得承受公有雲出現故障導致服務不可用的狀況。當然,就算你自建數據中心也未必不會出現故障。如果你公司的服務器只有30~50台的話沒用必要上OpenStack軟件,如果你要強行搞的話也可以,這對你來說可能是一個巨大的挑戰。因為需要你同時擁有運維能力,系統建構能力和開發能力於一身才可以搞。如果你們公司物理服務器節點超過200台以上基本上是可以上OpenStack了,當然,如果你們公司操作系統需要靈活部署的話,也是可以上OpenStack的。如果你公司服務器能上1000台以上的話,非常建議用一下OpenStack。
二.雲服務的分類
1>.私有雲
公司自己提供,只在公司內部使用的。
2>.公有雲
有雲服務提供商提供,可以租用給眾多中小型企業,甚至大型企業。
3>.混合雲
自建一部分,租用一部分。
三.OpenStack的核心功能
1>.VMs on demand(按需創建虛擬機實例)
provisioning(操作系統);
snapshotting(快照)
2>.Volumes(持久性存儲能力)
3>.Networks(提供復雜的網絡系統)
4>.Muti-Tenancy(支持多租戶的,也就是說可以構建成公有雲)
quotas for fifferent users(支持用戶配額)
user can be asscociated (用戶關聯)
5>.Object storage for VMimages and arbitrary files(對象存儲功能)
四.OpenStack的發展歷史
OpenStack是有Rackspace和NASA共同研發而成,OpenStack是雲計算中IASS的實現。
1>.2010-10-21

作為OpenStack第一個正式版本,Austin主要包含兩子項目,Swift是對象存儲模塊,Nova是計算模塊;帶有一個簡單的控制台,允許用戶通過web管理計算和存儲;帶有一個部分實現的Image文件管理模塊,未正式發布。
2>.2011-02-03

1>.Bexar 在此基礎上補充了 Image Service (Glance),它在許多方面與計算和存儲有交集。1、鏡像代表存儲在 OpenStack 上的模板虛擬機,用於按需快速啟動計算實例; 2>.Swift增加了對大文件(大於5G)的支持; 3>.增加了支持S3接口的中間件; 4>.增加了一個認證服務中間件Swauth; 5>.Nova增加對raw磁盤鏡像的支持,增加對微軟Hyper-V的支持; 6>.開始了Dashboard控制台的開發。
3>.2011-04-15

1>.Nova增加新的虛擬化技術支持,如LXC容器(Linux containers的簡稱,是一種基於容器的操作系統層級的虛擬化技術)、VMWare/vSphere、ESX/ESXi 4.1; 2>.支持動態遷移運行中的虛機; 3>.增加支持Lefthand/HP SAN作為卷存儲的后端。
4>.2011-09-22

1>.Nova整合了Keystone認證; 2>.支持KVM的暫停恢復; 3>.KVM的塊遷移; 4>.采用了全局防火牆規則。
5>.2012-04-05

Essex 的發布增加了兩個核心項目。 1>.OpenStack Identity (Keystone) 隔離之前由 Nova 處理的用戶管理元素; 2>.OpenStack Dashboard (Horizon) 的引入則標准化和簡化了用戶界面(UI),使之同時適用於每個租戶和 OpenStack 管理人員。
6>.2012-09-27

Folsom 使得版本項目數量又增加了兩個。 1>.增加了Cinder塊存儲,以及Quantum網絡模塊,后來更名為Neutron。正式發布Quantum項目,提供網絡管理服務; 2>.正式發布Cinder項目,提供塊存儲服務; 3>.Nova中libvirt驅動增加支持以LVM為后端的虛機實例; 4>.Xen API增加支持動態遷移、塊遷移等功能; 5>.增加可信計算池功能; 6>.卷管理服務抽離成Cinder。
7>.2013-04-04

1>.Nova支持將分布於不同地理位置的機器組織成的集群划分為一個cell(池); 2>.支持通過libguestfs直接向guest文件系統中添加文件; 3>.通過Glance提供的Image位置URL直接獲取Image內容以加速啟動; 4>.支持無image條件下啟動帶塊設備的實例; 5>.支持為虛機實例設置(CPU、磁盤IO、網絡帶寬)配額; 6>.Keystone中使用PKI簽名令牌代替傳統的UUID令牌; 7>.Quantum中可以根據安全策略對3層和4層的包進行過濾; 8>.引入仍在開發中的load balancer服務; 9>.Cinder中支持光纖通道連接設備; 10>.支持LIO做ISCSI的后端。
8>.2013-10-17

1>.正式發布Ceilometer項目,進行(內部)數據統計,可用於監控報警; 2>.正式發布Heat項目,讓應用開發者通過模板定義基礎架構並自動部署; 3>.網絡服務Quantum變更為Neutron; 4>.Nove中支持在使用cell時同一cell中虛機的動態遷移; 5>.支持Docker管理的容器;使用Cinder卷時支持加密; 6>.增加自然支持GlusterFS; 7>.Glance中按組限制對Image的元屬性的訪問修改; 8>.增加使用RPC-over-HTTP的注冊 API; 9>.增加支持Sheepdog、Cinder、GridFS做后端存儲; 10>.Neutron中引入一種新的邊界網絡防火牆服務; 11>.可通過VPN服務插件支持IPSec VPN; 12>.Cinder中支持直接使用裸盤做存儲設備無需再創建LVM; 13>.新支持的廠商中包含IBM的GPFS。
9>.2014-04-17

1>.針對集成項目(Integrated Project),主要關注每個項目的穩定性與成熟度,同時包含新功能以及更好地與平台其他服務相整合; 2>.一致性的用戶體驗,提高測試的門檻,特別是針對存儲方面; 3>.對象存儲(Swift)項目有一些大的更新,包括可發現性的引入和一個全新的復制過程(稱為s-sync)以提高性能; 4>.新的塊存儲功能使OpenStack在異構環境中擁有更好的性能; 5>.聯合身份驗證將允許用戶通過相同認證信息同時訪問OpenStack私有雲與公有雲; 6>.新項目Trove (DB as a Service)現在已經成為版本中的組成部分,它允許用戶可以在OpenStack環境中管理關系數據庫服務
10>.2014-10-16

1>.Nova 網絡功能虛擬化項目組在五月Atlanta峰會成立,新的功能已經在JUNO中逐漸顯現; 2>.包括救援模式等很多運維層面的更新工作也落在nova-network中; 3>.通過StackForge增加了多個重要的驅動,如支持Ironic和Docker; 4>.支持調度和在線升級;Cinder 塊存儲添加了十種新的存儲后端; 5>.改進了第三方存儲系統的測試;Cinder v2 API集成進Nova; 6>.塊存儲在每個開發周期中不斷成熟; 7>.Neutron 支持IPv6和第三方驅動,保證網絡的可靠性和可持續性; 8>.API層面添加了插件支持;支持三層網絡高可用; 9>.支持分布式網絡模式; 10>.Swift 存儲策略的推出對於對象存儲是具有里程碑意義的,存儲策略給予用戶更多的控制與性能的提升; 11>.支持Keystone;Horizon 支持部署Apache Hadoop集群; 12>.擴展了RBAC系統; 13>.Keystone 聯邦認證使用戶可以通過同一套認證體系訪問私有和共有OpenStack服務; 14>.可以配置使用多個認證后端; 15>.與LDAP的集成更加便捷; 16>.Heat 出錯后更易於回滾操作和環境清理; 17>.可以授權無權限用戶操作; 18>.Ceilometer 提高性能; 19>.支持負載均衡、防火牆與VPN; 20>.Glance 擴展image定義; 21>.異步處理進程; 22>.可控下載策略; 23>.Sahara 應用Hadoop和Spark實現大數據集群快速搭建與管理。
11>.2015-04-30

Horizon在K版本除了增強了對新增模塊的支持,從UE的角度也為我們帶來了很多新功能裸機服務Ironic完全發布,增加互操作性。
12>.2015-10-16

在Liberty版本中,更加精細的訪問控制和更簡潔的管理功能非常亮眼。這些功能直接滿足了OpenStack運營人員的需求。 1>.增加了通用庫應用和更有效的配置管理功能; 2>.為Heat編排和Neutron網絡項目增加了基於角色的訪問控制(RBAC)。這些可以幫助運維人員更好地調試不同級別的網絡和編排功能的安全設置和API;更面向企業,包括開始對跨一系列產品進行滾動升級的支持,以及對管理性和可擴展性的增強。 3>.引入了Magum容器管理,支持Kubernetes,Mesos和Docker Swarm。
13>.2016-04-08

OpenStack的第13個版本,也就是4月份最新頒布的一版——新版本Mitaka聚焦於可管理性、可擴展性和終端用戶體驗三方面。 1>.重點在用戶體驗上簡化了Nova,Keynote的使用; 2>.使用一致的API調用創建資源; 3>.Mitaka版本中可以處理更大的負載和更為復雜的橫向擴展。
14>.2016-10-10

OpenStack的第14個版本。推出的新功能包括: 1>.Ironic裸機開通服務; 2>.Magnum容器編排集群管理器; 3>.Kuryr容器組網項目可將容器、虛擬和物理基礎設施無縫集成於統一控制面板; 4>.Newton還可解決擴展性和彈性問題; 5>.Newton可大大降低實現架構性和功能性擴展的難度,可實現跨平台、跨地域的向上擴展和向下擴展,從而提升OpenStack在搭建各類規模雲解決方案中的主導作用; 6>.Newton在高可用性、適應性以及自我修復功能方面提升顯著,無論負載需求有多大,都可以滿足運營商對穩定性的要求。其中,項目組件Cinder、Ironic、Neutron以及Trove都可提供增強的高可用功能; 7>.Newton的安全性也得以提升,例如,Keystone提供的升級中包括PCI合規和加密證書。Cinder增加了對重新錄入加密文件到解密流量的支持,反之亦然; 8>.Cinder還包含微版本支持,可借助集聯功能使用快照方式來刪除流量,同時提供備份服務可擴展至多個實例; 9>.Newton版本顯著提升了OpenStack作為單一雲平台對虛擬化、裸機及容器的管理,並為運營商及應用開發者增高了易用性,令OpenStack的安裝、運行、變更及維修變得更加便捷和自動化;
15>.2017-02-22

1>.新的Nova計算“取代”原有應用編程接口(簡稱API),旨在幫助用戶更為智能地根據應用需求分配資源; 2>.Cells v2亦作為默認配置以提升Nova可擴展性; 3>.OpenStack的Horizon儀表板現在提供新的OS配置UI以實現各keystone間聯動,意味着運營人員能夠在各項OpenStack服務之間檢測性能問題; 4>.Keystone身份聯動機制如今能夠自動動態配置項目,並在驗證成功后為聯動用戶分配角色; 5>.Ironic裸機服務迎來網絡與驅動程序增強; 6>.Telemetry各項目實現性能與CPU使用量改進:如今用戶可利用Ceilometer配合Gnocchi存儲引擎每秒存儲數百萬條指標; 7>.Cinder塊存儲服務中的主動/主動高可用性如今可通過驅動程序實現; 8>.Congress治理框架現在迎來政策語言增強,旨在實現網絡地址操作以實現更好的網絡與安全性治理。 9>.Ocata亦在網絡層對基於容器的應用框架提供更為出色的支持能力; 10>.在最新版本當中,大家亦可對OpenStack各服務進行容器化。這意味着我們將能夠更輕松地將OpenStack作為微服務應用進行部署與管理。 11>.OpenStack還引入了新的基於容器應用框架及部署工具。其中具體包括用於實現OpenStack服務容器化的Kolla、用於橋接容器網絡與存儲資源的Kuryr以及用於容器管理的Zun; 12>.新引入的“nova-status upgrade check”命令允許運營人員測試其部署的准備情況,從而使其了解其是否能夠安全升級至Ocata。如果無法安全升級,該命令將提示其需要解決相應問題后再行升級。
五.OpenStack的核心組件
1>.OpenStack Compute(code-name Nova,core project since Austin release)
項目名稱Nova,管理VM的整個生命周期,主要職責包括啟動,調度VMS,即通過虛擬化技術提供虛擬機計算資源池。
2>.OpenStack Networking(code-name Neutron,core project sinse Folsom release)
項目名稱Netron(早期叫Quantum,獨立之前為nova-networking),為OpenStack提供Ncaas的功能,插件化設計,支持眾多流行的網絡管理插件,實現了虛擬機的網絡資源管理,虛擬機網絡。
3>.OpenStack Object Storage(code-name Swift,core project since Austin release)
項目名稱swift,分布式存儲,基於RESTful的API實現非結構化數據對象的存儲及檢索。即對象存儲,適用於一次寫入多次讀取,如圖片/ISO鏡像。
4>.OpenStack Block Storage(code-name Cinder,core project since Folsom release)
項目名稱Cinder(早期由Nova提供,代碼為Nova-storate),為VM提供長久的塊存儲能力。即塊存儲,提供存儲資源池,保存虛擬機的的磁盤鏡像等信息。
5>.OpenStack Identity(code-name Keystone,core project since Essex release)
項目名稱Keystone,為OpenStack中的所有服務器提供了認證,授權以及端點編錄目錄。即提供常熟登錄安全認證。
6>.OpenStack Image Service(code-name Glance,core project since Bexar release)
項目名稱Glance, 用於存儲和檢索磁盤映像文件。即提供虛擬機鏡像的注冊和存儲管理。
7>.OpenStack Dashboard(code-name Horizon,core project since the Essex release)
項目名稱為Horizon,基於openstack API接口使用django開發的web管理服務。
8>.OpenStack Telemetry(code-name Ceilometer,core project since the Havana release)
項目名稱Ceilometer,用於實現監控和計量服務的實現。即提供監控和數據采集,計量服務。
9>.OpenStack Orcheestration(code-name Heat,core project since the Havana release)
項目名稱Heat,用戶組件聯動。即自動化組件的部署。
10>.OpenStack Database
項目名稱Trove,提供DBaas服務的實現。即提供數據庫應用服務。
11>.OpenStack processing
項目名稱sahara,用於在OpenStack中實現Hadoop的管理。
更多關於OpenStack的組件可參考官方鏈接:https://www.openstack.org/software/project-navigator/openstack-components#openstack-services。,下圖為OpenStack官方的邏輯架構圖。
六.Openstack部署准備環境
安裝文檔請參考OpenStack的中文文檔,官方鏈接地址:https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/environment.html