雲平台核心架構設計要點


雲平台核心架構設計要點

1.1 架構設計介紹

1.全異步架構:異步消息、異步方法、異步HTTP調用。

 使用消息總線進行各服務的通信連接,在調用服務時,源服務發消息給目的服務,並注冊一個回調函數,然后立即返回;一旦目的服務完成任務,就會觸發回調函數回復任務結果。異步消息可以並行處理。

 服務之間采用異步消息進行通信,對於服務內部,一系列相關組件或插件,也是通過異步方法來調用,調用方法與異步消息一致。

 采用的插件機制,給每個插件設置相應的代理程序。 為每個請求設置了回調URL在HTTP的包頭,任務結束后,代理程序會發送應答給調用者的URL。

基於異步消息、異步方法、異步HTTP調用這三種方式, 構建了一個分層架構,保證了所有組件均能實現異步操作。

基於全異步架構機制,單管理節點的 每秒可並發處理上萬條API請求,還可同時管理上萬台服務器和數十萬台雲主機。

2.無狀態服務:單次請求不依賴其他請求。

• 的計算節點代理、存儲代理、網絡服務、控制台代理服務、配置服務等,均不依賴其他請求,一次請求可包含所有信息,相關節點無須維護存儲任何信息。

• 使用一致性哈希環對管理節點、計算節點或者其他資源以UUID為唯一ID進行認證的哈希環處理,消息發送者無需知道待處理消息的服務實例,服務也無須維護、交換相關的資源信息,服務只需單純的處理消息即可。

• 管理節點間共享的信息非常少,兩個管理節點即可滿足高可用性和可擴展性需求。•無狀態服務機制讓系統更為健壯,重啟服務器不會丟失任何狀態信息,數據中心的彈性擴展和伸縮性維護更為簡單。

3.無鎖架構:一致性哈希算法。

•一致性哈希算法保證了同一資源的所有消息均被同一個服務實例來處理。這種聚合消息到特定節點的方法,降低了同步與並行的復雜度。

• 使用工作隊列來避免競爭鎖的問題,串行任務以工作隊列的方式保存在內存中,工作隊列可對任意資源的任意操作進行並行處理來提高系統並行度。

• 基於隊列的無鎖架構,使得任務可以簡單地控制並行度,從而提升系統性能。

4.進程內微服務:微服務解耦。

• 使用消息總線對各服務進行隔離控制,例如,雲主機服務、身份認證服務、快照服務、雲盤服務、網絡服務、存儲服務等。所有的微服務都集合在管理節點的進程內,各服務之間利用消息總線進行交互,所有消息發送到消息總線后,再通過一致性哈希環選擇目的服務進行轉發處理。

•進程內微服務,以星狀架構實現各服務獨立運行,將高度集中的控制業務進行解耦,實現了系統的高度自治和高度隔離,任何服務出現故障並不影響其他組件。可靠性與穩定性得到有效保障。5.全插件結構:插件支持橫向擴展。

• 使用中任何新加入的插件對目前其他的插件沒有任何影響。均是獨立自主提供服務。

• 支持策略模式和觀察者模式進行插件設計。策略插件會繼承父類的接口然后執行具體實現;觀察者插件,會注冊listener進行監控內部的業務邏輯的事件變化,當應用內部發現事件時,插件會對此事件做出自響應,在插件自身的代碼里執行相應的業務流。

• 支持插件的橫向擴展,雲平台可以快速更迭,而整體系統架構依然健壯。

6.工作流引擎:順序管理,出錯回滾。

• 工作流基於XML對每個工作流程進行清晰定義,在任何步驟出現錯誤均可按照原本執行路徑進行回滾,清理掉執行過程的垃圾資源。

•每個工作流還可以包含子工作流用於擴展業務邏輯。

7.標簽系統:支持業務邏輯變更,增加資源屬性。

• 支持利用系統標簽和插件機制對原本的業務邏輯進行擴展變更。

•使用標簽機制,可對資源進行分組划分,支持對指定標簽進行資源搜索。

8.瀑布流架構:支持資源的級聯操作。

• 使用CascadeFramework對資源管理進行瀑布狀的級聯操作,對資源進行卸載或者刪除時,會對相關的資源進行級聯操作。

•資源也可以通過插件形式加入到瀑布框架中,加入或者退出瀑布框架,並不影響其他資源。•級聯機制使得 的配置靈活輕便,快速滿足客戶資源配置的變更。

9.全自動化Ansible部署:Ansible無代理自動部署。

10.全API查詢:任意資源的任意屬性均可查詢。

• 支持數百萬個條件的資源查詢,支持全API查詢,支持任意組合。

1.2雲平台核心架構設計特點

 

 

 

 

 主要包括以下資源:

•區域: 中最大的一個資源定義,包括集群、二層網絡、主存儲等資源。

•集群:一組物理主機(計算節點)的邏輯集合。

•物理主機:也稱之為計算節點,主要為雲主機實例提供計算、網絡、存儲等資源的物理服務器。•主存儲:用於存儲雲主機磁盤文件(包括:根雲盤、數據雲盤、根雲盤快照、數據雲盤快照、鏡像緩存等)的存儲服務器。支持本地存儲、NFS、SharedMountPoint、SharedBlock、Ceph類型。

•鏡像服務器:用於保存鏡像模板的存儲服務器,支持鏡像倉庫、Sftp、Ceph類型。

•VXLANPool:VXLAN網絡中的Underlay網絡,一個VXLANPool可以創建多個VXLANOverlay網絡,這些Overlay網絡運行在同一組Underlay網絡設施上。

•二層網絡:對應於一個二層廣播域,進行二層相關的隔離。一般用物理網絡的設備名稱標識。支持L2NoVLANNetwork、L2VLANNetwork、VXLANNetwork類型。

•三層網絡:雲主機使用的網絡配置,包含了IP地址范圍、網關、DNS、網絡服務等。

•計算規格:雲主機的CPU、內存、磁盤帶寬、網絡帶寬的數量或大小規格定義。

•雲盤規格:雲主機使用的雲盤的大小規格定義。

•雲主機:運行在物理主機上的虛擬機實例,具有獨立的IP地址,可以訪問公共網絡,運行應用服務,是 的核心組成部分。

•鏡像:雲主機或雲盤所使用的鏡像模板文件,鏡像模板包括系統雲盤鏡像和數據雲盤鏡像,其中系統雲盤鏡像支持ISO和Image類型,數據雲盤鏡像支持Image類型。

•根雲盤:安裝雲主機操作系統的磁盤,用於支撐雲主機的系統運行。

•數據雲盤:為雲主機提供了額外的存儲空間,用於雲主機的存儲擴展。

•快照:采用增量機制對雲盤在特定時間點上的數據進行備份。•網絡服務模塊:用於提供網絡服務的模塊。在UI界面已隱藏。

•網絡服務:給雲主機提供的各種網絡服務,主要包括安全組、虛擬IP、彈性IP、端口轉發、負載均衡、IPsec隧道等。

•安全組:給雲主機提供三層網絡防火牆控制。

•雲路由規格:指定雲路由器使用的CPU、內存、雲路由鏡像、管理網絡、公有網絡等資源定義。

•雲路由器:為雲主機提供分布式DHCP、DNS、SNAT、彈性IP、端口轉發、負載均衡、IPsec隧道、安全組等各種網絡服務的定制雲主機。

•VPC路由器:基於雲路由規格直接創建的路由器,擁有公有網絡和管理網絡,是VPC的核心。公有網絡作為默認網絡,用於提供各種網絡服務,包括:DHCP、DNS、SNAT、彈性IP、端口轉發、負載均衡、IPsec隧道、安全組等。

 資源間存在以下關系:

•父子關系:一個資源可以是另一個資源的父親或孩子。例如集群和物理主機,物理主機和雲主機。

•兄弟關系:擁有同樣父資源的資源為兄弟關系。例如集群和二層網絡,集群和主存儲。

•祖先和后裔關系:一個資源可以是另一個資源的直系祖先或者直系后裔。例如集群和雲主機,區域和物理主機。

•朋友關系:一些資源與資源之間沒有以上三種關系,但是這些資源在某些情境下需要分工合作,這時它們是朋友關系。例如主存儲和鏡像服務器,區域和鏡像服務器。

:主存儲和鏡像服務器的關系為:

•創建VM時,主存儲會從鏡像服務器下載復制雲主機的鏡像模板文件作為緩存。

•創建鏡像時,主存儲會將根雲盤拷貝到鏡像服務器保存為模板。

 資源均含有以下基本屬性:

•UUID:通用唯一識別碼UUIDv4(UniversallyUniqueIdentifier)來唯一標識一個資源。

•名稱:用於標記資源的可讀字符串,名稱可以重復,一般為必選項。

•描述:也稱之為簡介,用於概述資源,可選項。

創建日期:資源創建的日期。

•上次操作日期:資源上次被更新的時間。

 資源一般都支持CRUD操作:

•創建:創建或者添加新的資源。

•查詢:讀取查詢資源信息。

•更新:更新資源信息。

•刪除:刪除資源, 使用的瀑布框架級聯機制,使得父資源被刪除后,相關子資源和后裔資源均會被刪除。

1.7雲資源池

雲主機:運行在物理機上的虛擬機實例,具有獨立的IP地址,可以訪問公共網絡,運行應用服務,是 的核心組成部分。

雲盤:為雲主機提供存儲。可分為:

•根雲盤:雲主機的系統雲盤,用於支撐雲主機的系統運行。

•數據雲盤:雲主機使用的數據雲盤,一般用於擴展的存儲使用。

雲盤管理主要涉及數據雲盤的管理。

鏡像:雲主機或雲盤所使用的鏡像模板文件。

•鏡像模板包括系統雲盤鏡像和數據雲盤鏡像。

•系統雲盤鏡像支持ISO和Image類型,數據雲盤鏡像支持Image類型。

•Image類型支持raw和qcow2兩種格式。

•鏡像保存在鏡像服務器上,首次創建雲主機/雲盤時,會下載到主存儲上作為鏡像緩存。

鏡像平台類型決定了創建雲主機時是否使用KVMVirtio驅動(包括磁盤驅動和網卡驅動),支持以下類型:

•Linux:使用Virtio驅動;•Windows:不使用Virtio驅動,使用Qemu模擬設備。鏡像操作系統是未安裝Virtio的Windows;

WindowsVirtio:使用Virtio驅動。鏡像操作系統是已安裝Virtio驅動(包括磁盤驅動和網卡驅動)的Windows;

•Other:不使用Virtio驅動,使用Qemu模擬設備。鏡像操作系統可以是任何操作系統。

•Paravirtualization:使用Virtio驅動。鏡像操作系統可以是已安裝Virtio驅動的任何操作系統;

鏡像路徑支持添加URL路徑或本地文件上傳兩種方式:

1.URL:采用指定的URL路徑來添加鏡像。

支持HTTP/HTTPS方式

支持FTP/SFTP方式

鏡像服務器上的絕對路徑,支持Sftp鏡像服務器和鏡像倉庫

2.本地文件上傳:表示選擇當前瀏覽器可訪問的鏡像直接上傳,支持鏡像倉庫和Ceph鏡像服務器。

親合組

親和組(AffinityGroup)是一種針對IaaS資源的簡單編排策略,可用於保障用戶業務的高性能或高可用。

硬件設施

1.3區域

區域: 中最大的一個資源定義,包括集群、二層網絡、主存儲等資源。

•在數據中心中,區域一般對應了一個機房。

•區域定義了一個可見的邊界,同一區域內的子資源互相可見並且可以形成某種關系,但不同區域內的子資源是不可見的,不能互相發生關系。

•如圖5:區域資源結構所示,區域中的資源以如下形式組織:

 

 

 

 

5:區域資源結構

1.4集群

集群:一組物理機(計算節點)的邏輯集合。在數據中心中,一個集群一般對應了一個機架。

規划集群時,需注意:

1.集群內所有物理機須擁有相同的操作系統;

2.集群內所有物理機須擁有相同的網絡配置;

3.集群內所有物理機須能夠訪問相同的主存儲;

4.集群需掛載主存儲、二層網絡后,才可提供雲主機服務;

5.集群的規模,也就是每個集群中可以包含物理機的最大數量,沒有限制。

集群和各個資源之間的關系定義如下:

集群|區域

支持多集群操作。可在一個區域內創建多個集群,新增的物理機可以按需添加到不同的集群之中。

集群|主存儲和二層網絡

集群中可以加載或卸載主存儲和二層網絡,它們之間的結構關系如圖6:集群、主存儲、二層網絡的關系所示:

儲和二層網絡加載到集群時需注意:

1.集群|主存儲

•一個主存儲可以加載到多個集群。

•一個集群可以掛載多個主存儲。

•主存儲可以被所在集群中的所有物理機訪問。

•如果數據中心的網絡拓撲發生改變導致主存儲不能被集群中的物理機繼續訪問時,主存儲可以從集群卸載。

2.集群|二層網絡

•一個集群可以加載一個或多個二層網絡;一個二層網絡可以掛載到多個集群。

•集群可以掛載VXLANPool,VXLANPool下不同的Vni可用於創建不同的VxlanNetwork。

•一個網卡只能創建一個NoVlanNetwork。

•對於VlanNetwork,不同VLANID代表不同的二層網絡。

•如果數據中心的網絡拓撲發生改變導致集群中的物理機不再在二層網絡所代表的物理二層廣播域中,二層網絡也可以從集群卸載。

集群|鏡像服務器

集群與鏡像服務器沒有直接依賴關系,一個鏡像服務器可以為多個集群提供服務。

:

•集群中所加載的主存儲和鏡像服務器具有相關性。

•Ceph主存儲支持與鏡像倉庫類型的鏡像服務器一同工作。

•主存儲(PS)和鏡像服務器(BS)的相關性如表

3.主存儲與鏡像服務器的關系所示:

 

 

 

 

1.5物理機

物理機:也稱之為計算節點,主要為雲主機實例提供計算、網絡、存儲等資源的物理服務器。

如圖7:物理機所示:

 

 

 

 

7:物理機

•物理機是 雲管理平台里的核心資產,雲主機運行在物理機之上。

1.6主存儲

主存儲:用於存儲雲主機磁盤文件(包括:根雲盤、數據雲盤、根雲盤快照、數據雲盤快照、鏡像緩存等)的存儲服務器。

如圖8:主存儲所示:

 

 

 

 

8:主存儲

主存儲支持類型可分為以下兩大類:

•本地存儲(LocalStorage):使用物理機的硬盤進行存儲。

•網絡共享存儲:支持NFS、SharedMountPoint、Ceph、SharedBlock類型。

▬NFS為網絡文件系統的存儲方式。

▬SharedMountPoint支持常用的分布式文件系統提供的網絡共享存儲,支持的常見類型有MooseFS、GlusterFS、OCFS2、GFS2等。

▬Ceph采用了分布式塊存儲方式。

▬SharedBlock采用了共享塊存儲方式。

2.2.2.5鏡像服務器

鏡像服務器:用於保存鏡像模板的存儲服務器。

•鏡像服務器必須掛載到區域之后,區域中的資源才能訪問它。通過鏡像服務器,可在多個區域之間共享鏡像。

•如圖9:鏡像服務器所示:

 

 

 

 

9:鏡像服務器

:

UI界面為便於管理鏡像服務器和區域的關系,特別設置了一個鏡像服務器只能對應一個區域。UI界面上,添加鏡像服務器,默認會掛載到當前區域;刪除區域的同時會直接刪除掛載此區域的鏡像服務器。

鏡像服務器的類型

鏡像服務器支持以下類型:

1.ImageStore(鏡像倉庫):

•以鏡像切片方式存儲鏡像文件,支持增量存儲;

•支持雲主機的在線/關機快照、在線/關機創建鏡像;

•不帶數據雲盤克隆雲主機時,支持在線/暫停/關機克隆;

•整機克隆時,LocalStorage、NFS、SMP和Ceph類型的主存儲,支持在線/暫停/關機克隆;SharedBlock類型的主存儲,支持暫停/關機克隆;

•ImageStore類型的鏡像服務器間支持鏡像同步。

•支持獲取已有鏡像,可獲取該鏡像服務器中URL路徑下的已有鏡像文件。

鏡像服務器|主存儲

鏡像服務器的類型與主存儲的類型有關聯性要求,如主存儲與鏡像服務器關系所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM