圖 3-2 為網路模擬雲端系統的實體架構、線路圖。其中 Front-end、Worker、
Controller、Node*皆為實體機器。NFS 及資料庫則架設於在 Worker 中。如 Openstack 介紹中所述,Openstack 內部網路中的實體機器皆需兩張網路介面卡,
一負責對外連線,一為負責與虛擬機器溝通、處理虛擬機器的網路傳輸。因此 Controller 及所有 Node 皆有兩張網路介面卡,分別連接到兩台 Switch。以下說明 各台機器的用途。
圖 3-2、實體機器架構圖
17
Front-end
網路模擬雲端系統的連外閘道,所有連線皆須經過此機器。在我們的實際建 置上目前僅有一台 Front-end,但在架構及軟體設計上若配合 DNS 的伺服器負載 平衡(Load Balancing),則可有多台 Front-end。本論文中以一台 Front-end 說明。
Worker
網路模擬雲端系統的控制中心,Manager、File Manager 等主要控制元件的 執行處。資料庫及 NFS 架設於此。
Controller
Openstack 的控制中心,Nova-Network、Nova-Scheduler、Nova-Api、Glance 等服務皆運行於此。Controller 僅負責 Openstack 的控制與管理,不會執行 Nova-Compute 提供運算資源。
Node*
提供運算資源,用以開啟虛擬機器。Nova-Compute 服務執行於此。
此雲端系統中的網路是一封閉的內部網路,連接各虛擬機器及實體機器。接 下來我們說明此雲端系統的內部網路架構。圖 3-3 為雲端系統內部網路邏輯架構 圖。此雲端系統的內部網路分為兩層,外層是我們自行設置的網路(圖 3-3 上半 部),內層是由 Openstack 建立之虛擬機器內部網路(圖 3-3 下半部),內外層分 屬不同網段,而這兩部分以 Controller 連接。虛擬機器與外層網路中的機器進行 傳輸或經由 Front-end 連向網際網路時,其網路傳輸皆會通過 Controller。
18
圖 3-3、雲端系統內部網路架構
在雲端系統中,虛擬機器會開啟於多台實體機器,即我們系統中的 Node。
虛擬機器的網路傳輸會透過實體機器的網路介面卡往外傳送,因此虛擬機器與實 體機器須有相關網路組態設置,以使虛擬機器的流量可以先傳送到實體機器,再 由實體機器往外傳送。此組態設置如圖 3-4 所示,一個 Node 中有多台虛擬機器,
每台虛擬機器的網路介面卡 eth0 及 Node 的網路介面卡 eth1 會橋接至 Node 虛擬 出來的橋接器(bridge)br100 上。因此虛擬機器的網路傳輸會經由它的 eth0 傳 到 br100,再由 Node1 的 eth1 往外傳輸,Node 的 eth1 即為內部網路介面卡。
19
圖 3-4、Node 與虛擬機器的網路橋接
在背景介紹中提到,Openstack 對虛擬機器的內部網路有多種組態及管理模 式,我們使用 Flat DCHP 組態及 single-host 管理模式作為內部網路組態。我們將 Nova-Network 執行在 Controller 上,因此所有虛擬機器對外的網路流量會經過 Controller。我們以圖 3-5 說明虛擬機器對外傳輸的封包流向。封包從虛擬機器的 網卡 eth0 傳至 Node 的虛擬橋接器 br100。接著流向 Node 的網卡 eth1,再傳至 Switch2。Controller 的內部網路介面卡收到後,經過 Controller 的處理再將封包 往外傳至 Switch1。最後傳至 Worker 或者透過 Front-end 傳送到網際網路。
20
圖 3-5、虛擬機器對外傳輸的封包流向
Openstack 網路架構中所提到的 Floating IP Address 關聯機制在我們的網路架 構中,是在 Controller 上以類似 NAT(Network Address Translation)的機制達成。
虛擬機器的封包往外傳、流經 Controller 時,Controller 會將封包的來源 IP Address 從虛擬機器的 Fixed IP Address 改為 Floating IP Address。當有封包要傳給某台虛 擬機器,該封包流經 Controller 時,Controller 會將目的 IP Address 從虛擬機器的 Floating IP Address 改為 Fixed IP Address,讓虛擬機器可正確接收。因此虛擬機
21
器本身無法直接得知自己的 Floating IP Address,只能知道 Fixed IP Address。而 對於非內層網路的實體機器來說,如 Worker、Front-end,它們得知的虛擬機器 IP Address 會是 Floating IP Address 而非 Fixed IP Address。
在我們的設置中,如圖 3-3,192.168.4.0 網段是 Fixed IP Address,而 10.10.10.0 網段是 Floating IP Address。虛擬機器存取 Worker 上的服務時,Controller 會將虛 擬機器的 Fixed IP Address 轉換為這台虛擬機器對應的 Floating IP Address。這個 Fixed IP Address 及 Floating IP Address 轉換機制影響到我們部分元件的設計與實 作,此將於章節 4.2.3 說明。