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