Openstack Newton 極速部署、快速入門
文/圖:何曉龍
OpenStack 自 20110 年起誕生,如今已經在全球 IaaS 的標準。本文將針對 Openstack Newton,介紹極速部署技巧。先從快速安裝 OpenStack 開始,學習 OpenStack 關鍵概念和術語,循序漸進推進 OpenStack 學習和使用核心組件,讓大家成為 IT 職場上的搶手貨。
IT 設施對現代企業很重要,企業寧可讓計算資源浪費,也無法承受當機而導致的業務中斷。即使是 3 到 5 分鐘的當機,對於 Amazon、eBay 等公司都是災難性的。雲端運算的基石就是虛擬化,通過虛擬化技術,可以精確度量的計算服務,並且方便管理。
新瓶老酒虛擬化
虛擬化技術最早是 IBM 在其大型機 IBM CP-40 上實現的,並且成功地執行了 14 部客製化的 IBM System/360,這就是 IBM 著名的分區虛擬化技術。然而在市場上佔主導地位的 X86 的 CISC 架構上實現卻困那重重,始作俑者就是 Intel。X86 處理器存在者先天不足,處理器預先定義好了四個特權級別 Ring0、Ring1、Ring2 和 Ring3,規定作業系統的核心執行在 Ring0 這個級別,作業系統的應用程式執行在 Ring3 級別之上,所以 Ring0 和 Ring3 也就成為 X86 處理器最常用的執行級別。至於 Ring1 和 Ring2 則較少用到。1998 年,VMware 率先通過其 BT(Binary Translation) 技術,繞開了處理器層級的限制。其作用於欺騙在 Ring1 中所執行的虛擬機器作業系統,將其所不能執行的 Ring0 命令,由執行在 Ring0 的虛擬機器管理器 VMM 代為翻譯和執行,虛擬機器中的作業系統以為自己直接控制硬體,從而達到實現 X86 虛擬化的目的。VMware 成為了虛擬化主導廠商,佔有虛擬化市場 60% 以上的份額,產品線也擴展到企業虛擬化、桌面虛擬化、虛擬數據中心、軟體定義網路 SDN,以及雲端運算等多個領域(圖1及圖2)。


硬體虛擬化
Intel「知錯便改」,推出了硬體輔助虛擬化(Hardware-Assisted Virtualization),支援虛擬化技術 VT-x 的處理器(即 AMD 處理器的 AMD-V),為處理器加入了 Rin g的 -1 層級,以根模式Root Mode 執行 VMM,在 Ring0 上名正言順地執行虛擬機器,並加入了令虛擬化效率大增的 vmx 命令集(即 AMD 的 svm),這樣一來 X86 虛擬化就暢通無阻,可以拋開繁瑣和低效的 BT 技術。後來 Intel 再接再推出了第二代輔助虛擬化技術,增加了 EPT 擴展分頁表技術(即 AMD 的 NPT),加速從虛擬機器地址至主機物理地址的轉換。目前絕大多數虛擬化產品如 KVM、VMware ESXi,Xen 及 HyperV,都依賴此技術。 更重要的是網路和儲存虛擬化,OpenStack 就有支援這兩種虛擬化的專門組件,如負責網路虛擬化的 Neutron,可定義和管理虛擬網路及網路設備,還有以及負責儲存虛擬化的 Cinder 和 Swift。
網路及儲存虛擬化
網路虛擬化即將物理網路中的所有設備,如交換機,路由器,防火牆,VPN 以及負載均衡器等設備虛擬化,稱之為 Network as a Service(NaaS)。網路虛擬化發展迅速,Cisco 早就推出了 Nexus 1000v 虛擬交換機,可應用在 vShpere 雲端運算環境中。OpenStack 則通過傳統的 Linux Bridge 及最新的 Open vSwitch (OVS) 和 Neutron,實現類似功能。可以預見,網路虛擬化將是虛擬化的下一個重要戰場,IT 巨頭都在摩拳擦掌,積極開發相關產品,並通過收購相關廠商布局 SDN,期待在網路虛擬化領域有所作為。 至於儲存虛擬化,就是將物理儲存設備變成虛擬的儲存設備。
三種雲和三朵雲
無論是商業雲端運算產品/服務,如 Amazon 雲端服務,VMware 的雲端運算產品,還是開源雲端運算產品,如 OpenStack 開源項目及相關的技術服務提供商,成熟的虛擬化技術為雲端運算的實現和發展奠定了堅實的基礎。雲端運算分為三種雲和三朵雲,所謂三種雲就是公有雲,私有雲和混合雲,三朵雲是 IaaS,PaaS 和 SaaS。OpenStack 不但可以架設公有雲,私有雲,且實現混合雲更是其一大絕技。因為是開放架構,各大虛擬化和雲端運算廠商都將自己的技術集成進去,保證自己產品和 OpenStack 足夠兼容,這樣一來,通過 OpenStack 搭建混合雲就方便多了(圖3)。

OpenStack 簡介
開源雲端運算項目 OpenStack,理論上是可以相容和管理任何虛擬化技術,當然主要還是開源的 KVM 虛擬化。此外,很多公司發展的雲端運算技術大多是基於 OpenStack 和 KVM,如 IBM 主推的 PowerKVM,就是針對 Power 架構的 KVM 虛擬化實現。根據統計數據,超過 80% 的 OpenStack 用戶並不是炙手可熱的科技企業,而是廣泛地分布在制造、零售、金融、醫療等多個行業,除了雲端運算基礎架構外,還包括網路虛擬化,儲存虛擬化和大數據分析等等。Openstack 設計之初的挑戰對象是 Amazon 的雲端運算技術,所以相應的功能組件都有對應的 Amazon 服務,如 Cinder 組件對應 Amazon 的 EBS 塊儲存服務,Neutron 組件對應 Amazon VPC 服務,Nova 組件對應 Amazon EC2 服務,而 Swift 組件則對應 Amazon S3 服務。但筆者認為目前OpenStack 更類似 VMware vSphere 及類似 VMware 產品線的開源生態系統,就像是開源版本虛擬機器管理程式vCenter,除 VMware 虛擬機器,還可以管理各種開源的不開源的、商業的、免費的虛擬機器,並輔以 SDN,SDS 以及 PB 級別的檔案系統儲存 Ceph,實現 SDDC(圖5及圖6)。

