您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“OpenStack架構(gòu)設(shè)計方法是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
OpenStack 是開源云計算平臺,支持多種虛擬化環(huán)境,并且其服務(wù)組件都提供了 API接口 便于二次開發(fā)。
OpenStack通過各種補充服務(wù)提供基礎(chǔ)設(shè)施即服務(wù) Infrastructure-as-a-Service (IaaS)的解決方案。每個服務(wù)都提供便于集成的應(yīng)用程序接口
Application Programming Interface (API)。
OpenStack 本身是一個分布式系統(tǒng),不但各個服務(wù)可以分布部署,服務(wù)中的組件也可以分布部署。 這種分布式特性讓 OpenStack 具備極大的靈活性、伸縮性和高可用性。 當(dāng)然從另一個角度講,這也使得 OpenStack 比一般系統(tǒng)復(fù)雜,學(xué)習(xí)難度也更大。
后面章節(jié)我們會深入學(xué)習(xí) Keystone、Glance、Nova、Neutron 和 Cinder 這幾個 OpenStack 最重要最核心的服務(wù)。
openstack的核心和擴展的主要項目如下:
OpenStack Compute (code-name Nova) 計算服務(wù)
OpenStack Networking (code-name Neutron) 網(wǎng)絡(luò)服務(wù)
OpenStack Object Storage (code-name Swift) 對象存儲服務(wù)
OpenStack Block Storage (code-name Cinder) 塊設(shè)備存儲服務(wù)
OpenStack Identity (code-name Keystone) 認證服務(wù)
OpenStack Image Service (code-name Glance) 鏡像文件服務(wù)
OpenStack Dashboard (code-name Horizon) 儀表盤服務(wù)
OpenStack Telemetry (code-name Ceilometer) 告警服務(wù)
OpenStack Orchestration (code-name Heat) 流程服務(wù)
OpenStack Database (code-name Trove) 數(shù)據(jù)庫服務(wù)
OpenStack的各個服務(wù)之間通過統(tǒng)一的REST風(fēng)格的API調(diào)用,實現(xiàn)系統(tǒng)的松耦合。上圖是OpenStack各個服務(wù)之間API調(diào)用的概覽,其中實線代表client 的API調(diào)用,虛線代表各個組件之間通過rpc調(diào)用進行通信。松耦合架構(gòu)的好處是,各個組件的開發(fā)人員可以只關(guān)注各自的領(lǐng)域,對各自領(lǐng)域的修改不會影響到其他開發(fā)人員。不過從另一方面來講,這種松耦合的架構(gòu)也給整個系統(tǒng)的維護帶來了一定的困難,運維人員要掌握更多的系統(tǒng)相關(guān)的知識去調(diào)試出了問題的組件。所以無論對于開發(fā)還是維護人員,搞清楚各個組件之間的相互調(diào)用關(guān)系是怎樣的都是非常必要的。
對Linux經(jīng)驗豐富的OpenStack新用戶,使用openstack是非常容易的,在后續(xù)openstack系列
文章中會逐步展開介紹。
OpenStack services
Dashboard 【Horizon】 提供了一個基于web的自服務(wù)門戶,與OpenStack底層服務(wù)交互,諸如啟動一個實例,分配IP地址以及配置訪問控制。
Compute 【Nova】 在OpenStack環(huán)境中計算實例的生命周期管理。按需響應(yīng)包括生成、調(diào)度、回收虛擬機等操作。
Networking 【Neutron】 確保為其它OpenStack服務(wù)提供網(wǎng)絡(luò)連接即服務(wù),比如OpenStack計算。為用戶提供API定義網(wǎng)絡(luò)和使用?;诓寮募軜?gòu)其支持眾多的網(wǎng)絡(luò)提供商和技術(shù)。
Object Storage 【Swift】 通過一個 RESTful,基于HTTP的應(yīng)用程序接口存儲和任意檢索的非結(jié)構(gòu)化數(shù)據(jù)對象。它擁有高容錯機制,基于數(shù)據(jù)復(fù)制和可擴展架構(gòu)。它的實現(xiàn)并像是一個文件服務(wù)器需要掛載目錄。在此種方式下,它寫入對象和文件到多個硬盤中,以確保數(shù)據(jù)是在集群內(nèi)跨服務(wù)器的多份復(fù)制。
Block Storage 【Cinder】 為運行實例而提供的持久性塊存儲。它的可插拔驅(qū)動架構(gòu)的功能有助于創(chuàng)建和管理塊存儲設(shè)備。
Identity service 【Keystone】 為其他OpenStack服務(wù)提供認證和授權(quán)服務(wù),為所有的OpenStack服務(wù)提供一個端點目錄。
Image service 【Glance】 存儲和檢索虛擬機磁盤鏡像,OpenStack計算會在實例部署時使用此服務(wù)。
Telemetry服務(wù) 【Ceilometer】 為OpenStack云的計費、基準、擴展性以及統(tǒng)計等目的提供監(jiān)測和計量。
Orchestration服務(wù) 【Heat服務(wù)】 Orchestration服務(wù)支持多樣化的綜合的云應(yīng)用,通過調(diào)用OpenStack-native REST API和CloudFormation-compatible Query API,支持HOT <Heat Orchestration Template (HOT)>
格式模板或者AWS CloudFormation格式模板
通過對這些組件的介紹,可以幫助我們在后續(xù)的內(nèi)容中,了解各個組件的作用,便于排查問題,而在你對基礎(chǔ)安裝,配置,操作和故障診斷熟悉之后,你應(yīng)該考慮按照生產(chǎn)架構(gòu)來進行部署。
建議使用自動化部署工具,例如Ansible, Chef, Puppet, or Salt來自動化部署,管理生產(chǎn)環(huán)境。
這個示例架構(gòu)需要至少2個(主機)節(jié)點來啟動基礎(chǔ)服務(wù)virtual machine <virtual machine (VM)>
或者實例。像塊存儲服務(wù),對象存儲服務(wù)這一類服務(wù)還需要額外的節(jié)點。
網(wǎng)絡(luò)代理駐留在控制節(jié)點上而不是在一個或者多個專用的網(wǎng)絡(luò)節(jié)點上。
私有網(wǎng)絡(luò)的覆蓋流量通過管理網(wǎng)絡(luò)而不是專用網(wǎng)絡(luò)
控制節(jié)點上運行身份認證服務(wù),鏡像服務(wù),計算服務(wù)的管理部分,網(wǎng)絡(luò)服務(wù)的管理部分,多種網(wǎng)絡(luò)代理以及儀表板。也需要包含一些支持服務(wù),例如:SQL數(shù)據(jù)庫,term:消息隊列, and NTP。
可選的,可以在計算節(jié)點上運行部分塊存儲,對象存儲,Orchestration 和 Telemetry 服務(wù)。
計算節(jié)點上需要至少兩塊網(wǎng)卡。
計算節(jié)點上運行計算服務(wù)中管理實例的管理程序部分。默認情況下,計算服務(wù)使用 KVM。
你可以部署超過一個計算節(jié)點。每個結(jié)算節(jié)點至少需要兩塊網(wǎng)卡。
可選的塊存儲節(jié)點上包含了磁盤,塊存儲服務(wù)和共享文件系統(tǒng)會向?qū)嵗峁┻@些磁盤。
為了簡單起見,計算節(jié)點和本節(jié)點之間的服務(wù)流量使用管理網(wǎng)絡(luò)。生產(chǎn)環(huán)境中應(yīng)該部署一個單獨的存儲網(wǎng)絡(luò)以增強性能和安全。
你可以部署超過一個塊存儲節(jié)點。每個塊存儲節(jié)點要求至少一塊網(wǎng)卡。
可選的對象存儲節(jié)點包含了磁盤。對象存儲服務(wù)用這些磁盤來存儲賬號,容器和對象。
為了簡單起見,計算節(jié)點和本節(jié)點之間的服務(wù)流量使用管理網(wǎng)絡(luò)。生產(chǎn)環(huán)境中應(yīng)該部署一個單獨的存儲網(wǎng)絡(luò)以增強性能和安全。
這個服務(wù)要求兩個節(jié)點。每個節(jié)點要求最少一塊網(wǎng)卡。你可以部署超過兩個對象存儲節(jié)點。
openstack網(wǎng)絡(luò)是非常復(fù)雜的,并且也支持多種模式其中支持GRE,VLAN,VXLAN等,在openstack中網(wǎng)絡(luò)是通過一個組件Neutron
提供服務(wù),Neutron 管理的網(wǎng)絡(luò)資源包括如下。
network 是一個隔離的二層廣播域。Neutron 支持多種類型的 network,包括 local, flat, VLAN, VxLAN 和 GRE。
local 網(wǎng)絡(luò)與其他網(wǎng)絡(luò)和節(jié)點隔離。local 網(wǎng)絡(luò)中的 instance 只能與位于同一節(jié)點上同一網(wǎng)絡(luò)的 instance 通信,local 網(wǎng)絡(luò)主要用于單機測試。
flat 網(wǎng)絡(luò)是無 vlan tagging 的網(wǎng)絡(luò)。flat 網(wǎng)絡(luò)中的 instance 能與位于同一網(wǎng)絡(luò)的 instance 通信,并且可以跨多個節(jié)點。
vlan 網(wǎng)絡(luò)是具有 802.1q tagging 的網(wǎng)絡(luò)。vlan 是一個二層的廣播域,同一 vlan 中的 instance 可以通信,不同 vlan 只能通過 router 通信。vlan 網(wǎng)絡(luò)可以跨節(jié)點,是應(yīng)用最廣泛的網(wǎng)絡(luò)類型。
vxlan 是基于隧道技術(shù)的 overlay 網(wǎng)絡(luò)。vxlan 網(wǎng)絡(luò)通過唯一的 segmentation ID(也叫 VNI)與其他 vxlan 網(wǎng)絡(luò)區(qū)分。vxlan 中數(shù)據(jù)包會通過 VNI 封裝成 UPD 包進行傳輸。因為二層的包通過封裝在三層傳輸,能夠克服 vlan 和物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施的限制。
gre 是與 vxlan 類似的一種 overlay 網(wǎng)絡(luò)。主要區(qū)別在于使用 IP 包而非 UDP 進行封裝。 不同 network 之間在二層上是隔離的。以 vlan 網(wǎng)絡(luò)為例,network A 和 network B 會分配不同的 VLAN ID,這樣就保證了 network A 中的廣播包不會跑到 network B 中。當(dāng)然,這里的隔離是指二層上的隔離,借助路由器不同 network 是可能在三層上通信的。network 必須屬于某個 Project( Tenant 租戶),Project 中可以創(chuàng)建多個 network。 network 與 Project 之間是 1對多關(guān)系。
subnet 是一個 IPv4 或者 IPv6 地址段。instance 的 IP 從 subnet 中分配。每個 subnet 需要定義 IP 地址的范圍和掩碼。
port 可以看做虛擬交換機上的一個端口。port 上定義了 MAC 地址和 IP 地址,當(dāng) instance 的虛擬網(wǎng)卡 VIF(Virtual Interface) 綁定到 port 時,port 會將 MAC 和 IP 分配給 VIF。port 與 subnet 是 1對多 關(guān)系。一個 port 必須屬于某個 subnet;一個 subnet 可以有多個 port。
如上圖所示,為VLAN模式下,網(wǎng)絡(luò)節(jié)點的通信方式。
在我們后續(xù)實施安裝的時候,選擇使用VXLAN網(wǎng)絡(luò)模式,下面我們來重點介紹一下VXLAN模式。
VXLAN網(wǎng)絡(luò)模式,可以隔離廣播風(fēng)暴,不需要交換機配置chunk口,解決了vlan id個數(shù)限制,解決了gre點對點隧道個數(shù)過多問題,實現(xiàn)了大2層網(wǎng)絡(luò),可以讓vm在機房之間無縫遷移,便于跨機房部署。缺點是,vxlan增加了ip頭部大小,需要降低vm的mtu值,傳輸效率上會略有下降。
Neutron 的設(shè)計目標(biāo)是實現(xiàn)“網(wǎng)絡(luò)即服務(wù)”,為了達到這一目標(biāo),在設(shè)計上遵循了基于“軟件定義網(wǎng)絡(luò)”實現(xiàn)網(wǎng)絡(luò)虛擬化的原則,在實現(xiàn)上充分利用了 Linux 系統(tǒng)上的各種網(wǎng)絡(luò)相關(guān)的技術(shù)。理解了 Linux 系統(tǒng)上的這些概念將有利于快速理解 Neutron 的原理和實現(xiàn)。
bridge:網(wǎng)橋,Linux中用于表示一個能連接不同網(wǎng)絡(luò)設(shè)備的虛擬設(shè)備,linux中傳統(tǒng)實現(xiàn)的網(wǎng)橋類似一個hub設(shè)備,而ovs管理的網(wǎng)橋一般類似交換機。
br-int:bridge-integration,綜合網(wǎng)橋,常用于表示實現(xiàn)主要內(nèi)部網(wǎng)絡(luò)功能的網(wǎng)橋。
br-ex:bridge-external,外部網(wǎng)橋,通常表示負責(zé)跟外部網(wǎng)絡(luò)通信的網(wǎng)橋。
GRE:General Routing Encapsulation,一種通過封裝來實現(xiàn)隧道的方式。在openstack中一般是基于L3的gre,即original pkt/GRE/IP/Ethernet
VETH:虛擬ethernet接口,通常以pair的方式出現(xiàn),一端發(fā)出的網(wǎng)包,會被另一端接收,可以形成兩個網(wǎng)橋之間的通道。
qvb:neutron veth, Linux Bridge-side
qvo:neutron veth, OVS-side
TAP設(shè)備:模擬一個二層的網(wǎng)絡(luò)設(shè)備,可以接受和發(fā)送二層網(wǎng)包。
TUN設(shè)備:模擬一個三層的網(wǎng)絡(luò)設(shè)備,可以接受和發(fā)送三層網(wǎng)包。
iptables:Linux 上常見的實現(xiàn)安全策略的防火墻軟件。
Vlan:虛擬 Lan,同一個物理 Lan 下用標(biāo)簽實現(xiàn)隔離,可用標(biāo)號為1-4094。
VXLAN:一套用 UDP 協(xié)議作為底層傳輸協(xié)議的 Overlay 實現(xiàn)。一般認為作為 VLan 技術(shù)的延伸或替代者。
namespace:用來實現(xiàn)隔離的一套機制,不同 namespace 中的資源之間彼此不可見。
“OpenStack架構(gòu)設(shè)計方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。