在學習 OpenStack 各服務以前,須要先搭建一個實驗環境。
一個看獲得摸得着並且能讓咱們隨便折騰的 OpenStack 會大大提升學習效率。由於是咱們本身學習用的實驗環境,因此這裏推薦使用 DevStack()
DevStack 豐富的選項讓咱們可以靈活地選取和部署想要的OpenStack服務,很是適合學習和研究。
部署拓撲
首先咱們來設計 OpenStack 的部署拓撲。
OpenStack 是一個分佈式系統,由若干不一樣功能的節點(Node)組成:
一、控制節點(Controller Node)管理OpenStack ,其上運行的服務有 Keystone、Glance 、Horizon 以及 Nova 和 Neutron 中管理相關的組件。控制節點也運行支持 OpenStack的服務,例如 SQL 數據庫(一般是MySQL)、消息隊列(一般是 RabbitMQ)和網絡時間服務NTP。
二、網絡節點(Network Node)其上運行的服務爲 Neutron 。爲OpenStack提供 L2 L3 網絡。包括虛擬機網絡、DHCP、路由、NAT等。
三、存儲節點(Storage Node)提供塊存儲(Cinder)和對象存儲(Swift)服務
四、計算節點(Compute Node)其上運行 Hypervisor (默認使用KVM)。同時運行 Neutron 服務的agent,爲虛機提供網絡支持。
這幾類節點是從功能上進行的邏輯劃分,在實際部署時能夠根據需求靈活配置,好比:
一、在大規模OpenStack 生產環境中,每類節點都分別部署在若干臺物理服務器上,各司其職並互相協做。這樣的環境具有不少的性能、伸縮性和高可用性。
二、在最小的實驗環境中,能夠將4類節點部署到一個物理的甚至是虛擬的服務器上。麻雀雖小五臟俱全,一般也成爲 All-inOne 部署。
在咱們的實驗環境中,爲了使拓撲簡潔同時功能完備,咱們使用兩臺虛擬機完成:
一、devstack-controller:控制節點 + 網絡節點 + 塊存儲節點 + 計算節點
二、devstack-compute:計算節點
物理資源需求:
CPU 和 內存供參考。確定是配置越高性能越好,看本身的實際狀況。
網絡規劃
網絡上規劃了三個網絡:
一、Management Network:用於OpenStack 內部管理用,好比各個服務之間通訊,這裏使用eth0
二、VM(Tenant)Network:OpenStack 部署的虛擬機所使用的網絡,OpenStack支持多租戶(Tenant),虛擬機是放在Tenant下的,因此叫 Tenat Network,這裏使用eth1
三、External Network:通常來講Tenant Network 是內部私有網絡,只用於VM之間通訊,與其餘非VM網絡是隔離的。這裏咱們規劃了一個外部網絡(External Network),經過 devstack-controller 的eth2 鏈接。Neutron 經過 L3 服務讓 VM 可以訪問到 External Network。對於公有云,External Network 通常指的是Internet。對於企業私有云,External Network 則能夠是 Internet中的某個網絡。