深入了解CloudStack中的網路設計

2021-10-01 01:34:31 字數 2717 閱讀 9005

網路的設計規劃是cloudstack的乙個亮點,也是cloudstack被廣泛商業應用的乙個主要原因.本篇深入討論一下cloudstack中網路的設計方式.

cloudstack中根據不同的資料流量型別設計了管理,公共,客戶及儲存網路,可以簡稱為pmgs ( public, management, guest, storage) 網路.

public:當虛擬機器需要訪問internet或外部網路時,需要通過公共網路;這就說明客戶虛擬機器必須被分配某種形式的外網ip.使用者可以在cloudstack的ui上獲得乙個ip來做nat對映,也可以在guest與public之間做負載均衡.所有的hypervisor都需要共享public vlan以保證虛擬機器對外的訪問.

management:cloudstack內部資源相互通訊會產生management流量,這些流量包括管理伺服器節點與hypervisor集群之間的通訊,與系統虛擬機器之間的通訊或與其它元件之間的通訊等;集群規模較小時管理流量只占用很少的頻寬.

guest:終端使用者執行cloudstack建立的虛擬機器例項時產生guest流量,虛擬機器例項之間的相互通訊通過客戶網路.

storage:主儲存與hypervisor之間互連互通的流量;主儲存與二級儲存之間也會產生stroage流量,比如虛擬機器模板和快照的搬移.

cloudstack中網路模式可以分成基本網路和高階網路兩種.其中mgs(management,guest,storage)三種網路對於基本網路及高階網路通用.而p(public)則只是針對高階網路才存在.可以對比下圖:

基本網路 vs 高階網路

這裡強烈建議不同的流量型別單獨設定網絡卡,而對於儲存網路最好用網絡卡繫結(nic bonding),這樣在系統的穩定性和效能方面都會有極大的提高.

基本網路模式下ip位址規劃

如果打算使用基本網路模式建立cloudstack雲計算環境,那就意味著客戶虛擬機器例項將會和cloudstack,hypervisor整體架構擁有相同的cidr段.這樣在規劃ip位址時每個資源域都要預留足夠的ip位址.假設你規劃有8個資源域,每個資源域容納2000臺虛擬機器,那ip位址cidr可規劃成192.168.0.0/20,這樣能保證最多16個資源域,每個資源域ip數量有2^12-1=4095個,除去機架,系統虛擬機器,主機占用的ip,提供2000個vm的ip綽綽有餘.

注:具體環境中採用哪個段的ip位址可能要與it環境相一致.

高階網路模式下的ip位址規劃

高階網路模式相對來說較為複雜,在這種模式下,每個賬號都要分配:

1. 公網ip,這為了保證對外網的訪問,通常這個ip設定在虛擬路由器上

2. guest網路ip範圍,比如預設的:10.1.1.0/24

3. guest網路隔離的vlan id

以上預設的guest網路ip範圍對於所有賬戶都是一樣的,只有管理員可以進行更改使不同賬號使用不同的的guest網路ip範圍.

乙個賬戶下的客戶虛擬機器例項通過它專屬的vlan進行相互之間的訪問或與這個賬戶的虛擬路由器互通.客戶虛擬機器可以執行在資源域內任意一台主機上;通過二層交換的vlan埠匯聚(trunk)功能,可以保證同乙個vlan下所有的虛擬機器互連互通.

預留系統ip位址

當配置乙個機架時,需要為系統虛擬機器保留一些ip位址,這部分是管理網路也稱為私有ip位址.通常情況下10個ip位址對乙個機架是足夠用了.這些ip位址會被ssvm(二級儲存系統虛機)和cpvm(控制台系統虛機).如果系統很龐大,cpvm會被自動部署多台來分擔負載.

在整個雲計算環境中,所有的主機和系統虛擬機器都必須有乙個唯一的ip位址,因此在新增新的資源域時,也需要考慮當前環境中資源域的網路規劃.

本地鏈路ip(link-local)

在使用xenserver或kvm作為主機時,系統虛擬機器(ssvm,cpvm,v-router)會被分配乙個本地鏈路的ip位址.這個位址的cidr是169.254.0.0/16;這樣看來本地鏈路的ip位址會有2^16-1=65535個,目前來看不太可能超過這個範圍.如果乙個機架只包含xenserver或kvm的集群,那可以分配給這個機架下的主機乙個c類段的位址形如:x.x.x.x/24.如果是vmware的集群,給機架分配的ip位址範圍會被系統虛擬機器占用一些那麼就要考慮比c類段大一些的範圍作為機架的ip位址段,形如:x.x.x.x/21,這樣會有2^11-2=2046個ip供給主機,儲存以及系統虛擬機器使用.

虛擬機器隔離

在同乙個資源域內,虛擬機器有兩種方式進行隔離:安全組和vlan.

安全組隔離

當使用安全組時,每乙個建立的賬戶都會有乙個預設的安全組生成,以保證通過這個賬戶建立的虛擬機器例項預設要以互連互通.當使用者建立虛擬機器例項後,可以對這些虛擬機器例項設定乙個或多個安全組.

使用者可以在任意時間建立額外的安全組,但正在執行中的此使用者的例項不能應用新建的安全組規則,需要關機後更改設定.

同乙個安全組下的使用者虛擬機器例項可以相互通訊.安全組通過ingress和egress來進行流量控制.

vlan

高階網路模式中預設是通過vlan進行虛擬機器例項之間的相互隔離.當乙個賬戶的第乙個虛擬機器被建立並執行時,乙個隔離的網路也同時建立完成.在乙個資源域下,乙個賬戶的虛擬機器網路預設的cidr配置:10.1.1.0/24;在整個雲環境中,只有系統管理員有許可權建立乙個隔離的客戶虛擬機器網路,並指定乙個ip範圍和乙個vlan.

深入了解CloudStack中的網路設計

網路的設計規劃是cloudstack的乙個亮點,也是cloudstack被廣泛商業應用的乙個主要原因 本篇深入討論一下cloudstack中網路的設計方式 cloudstack中根據不同的資料流量型別設計了管理,公共,客戶及儲存網路,可以簡稱為pmgs public,management,guest...

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...