前面討論了 Neutron 的架構和基礎知識,接下來就要通過實驗深入學習和實踐了。
第一步就是准備實驗用的物理環境,考慮如下幾個問題:
需要幾個節點?
如何分配節點的角色?
節點上部署哪些服務?
配幾個網卡?
物理網絡如何連接?
1 控制節點 + 1 計算節點 的部署方案
我們的目的是通過實驗學習 Neutron 的各種特性。 為了達到這個目的,實驗環境應盡量貼近典型的部署方案;但同時,由於是個人學習使用,受物理條件的限制需要盡量利用有限的資源,所以我們采用下面的部署方案:
Q:需要幾個節點? A:2 節點 = 1 控制節點 + 1 計算節點
Q:如何分配節點的角色? A:控制節點合並了網絡節點的功能,同時也是一個計算節點
Q:節點上部署哪些服務? A:如上圖
配置多個網卡區分不同類型的網絡數據
OpenStack 至少包含下面幾類網絡流量
Management
API
VM
External
Management 網絡
用於節點之間 message queue 內部通信以及訪問 database 服務,所有的節點都需要連接到 management 網絡。
API 網絡
OpenStack 各組件通過該網絡向用戶暴露 API 服務。Keystone, Nova, Neutron, Glance, Cinder, Horizon 的 endpoints 均配置在 API 網絡上。
通常,管理員也通過 API 網絡 SSH 管理各個節點。
VM 網絡
VM 網絡也叫 tenant 網絡,用於 instance 之間通信。 VM 網絡可以選擇的類型包括 local, flat, vlan, vxlan 和 gre。 VM 網絡由 Neutron 配置和管理。
External 網絡
External 網絡指的是 VM 網絡之外的網絡,該網絡不由 Neutron 管理。 Neutron 可以將 router attach 到 External 網絡,為 instance 提供訪問外部網絡的能力。 External 網絡可能是企業的 intranet,也可能是 internet。
這幾類網絡只是邏輯上的划分,物理實現上有非常大的自由度。
我們可以為每種網絡分配單獨的網卡; 也可以多種網絡共同使用一個網卡; 為提高帶寬和硬件冗余,可以使用 bonding 技術將多個物理網卡綁定成一個邏輯的網卡
我們的實驗環境采用下面的網卡分配方式:
控制節點 3 網卡(eth0, eth1, eth2),計算節點 2 網卡(eth0, eth1) 合並 Management 和 API 網絡,使用 eth0,IP 段為 192.168.104.0/24 VM 網絡使用 eht1 控制節點的 eth2 與 External 網絡連接,IP 段為 10.10.10.0/24
網絡拓撲
實驗環境的網絡拓撲如下圖所示
分割線上方的網絡由網絡管理員(就是我們啦)配置。 主要涉及 Management, API 和 external 網絡。 配置的內容包括節點上的物理網卡,物理交換機和外部路由器,防火牆以及物理連線等
分割線下方主要是 VM 網絡,由 Neutron 管理。 我們只需要通過 Web GUI 或者 CLI 操作,Neutron 會負責實現。
下一節我們將安裝和配置控制節點和計算節點。