溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

OpenStack架構(gòu)設(shè)計方法是什么

發(fā)布時間:2021-12-21 11:57:08 來源:億速云 閱讀:168 作者:iii 欄目:開發(fā)技術(shù)

本篇內(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 邏輯架構(gòu)

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 項目和組件

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)來進行部署。

生產(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)卡。

塊設(shè)備存儲

可選的塊存儲節(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é)點。

網(wǎng)絡(luò)

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。

OpenStack架構(gòu)設(shè)計方法是什么

如上圖所示,為VLAN模式下,網(wǎng)絡(luò)節(jié)點的通信方式。

在我們后續(xù)實施安裝的時候,選擇使用VXLAN網(wǎng)絡(luò)模式,下面我們來重點介紹一下VXLAN模式。

OpenStack架構(gòu)設(shè)計方法是什么

VXLAN網(wǎng)絡(luò)模式,可以隔離廣播風(fēng)暴,不需要交換機配置chunk口,解決了vlan id個數(shù)限制,解決了gre點對點隧道個數(shù)過多問題,實現(xiàn)了大2層網(wǎng)絡(luò),可以讓vm在機房之間無縫遷移,便于跨機房部署。缺點是,vxlan增加了ip頭部大小,需要降低vm的mtu值,傳輸效率上會略有下降。

涉及的 Linux 網(wǎng)絡(luò)技術(shù)

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ì)量的實用文章!

向AI問一下細節(jié)

免責(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)容。

AI