OpenStack概述
OpenStack與云計算
大家比較公認的云計算架構分為三層,從下往上,依次是基礎設施層、平臺層、軟件服務層,如圖1所示。OpenStack就處于基礎設施層,也就是IaaS層。IaaS層的核心在于虛擬化技術,通過虛擬化技術可以將各種計算設備、網絡設備、存儲設備等虛擬化為虛擬資源池中的資源。
圖1 云計算架構圖
OpenStack是什么
OpenStack是一個云操作系統,可控制整個數據中心內的大型計算,存儲和網絡資源池,所有資源均通過具有通用身份驗證機制的API進行管理和配置。
還提供了一個儀表板,可讓管理員進行控制,同時授權其用戶通過Web界面配置資源。
除了標準的基礎架構即服務功能外,其他組件還提供業務流程,故障管理和服務管理等其他服務,以確保用戶應用程序的高可用性。
另外,OpenStack還與一些流行的企業(如 設備商、運營商)和開源技術(如 ceph、docker)一起使用。
圖2 OpenStack功能圖
OpenStack社區發展
OpenStack從2010年到現在,已經發布了22個版本,版本名稱是按照字母順序從A到Z排列的,今年5月份發布了U版本,10月份發布了V版本。
在U版本中新增的功能有:Kuryr添加了對IPV6的支持(OpenStack與容器網絡之間的橋梁);Ironic 增加了對硬件退回工作流的支持,以實現托管云中的自動化停用;Kolla(OpenStack的容器化部署)增加了對后端API服務的TLS加密的初始支持;Magnum提供對Kubernetes版本升級支持、對Kubernetes集群的操作系統升級支持等。
V版本的核心亮點有:推進OpenStack與容器融合,增強裸金屬管理功能、對多計算架構和標準的支持以及針對復雜網絡問題提供高效解決方案的能力。
從OpenStack最近幾個版本的新增功能來看,OpenStack社區的發展趨勢為:跨開源項目的融合與協作——OpenStack與硬件、智能、容器等相關開源社區項目的整合與調適。
OpenStack 全景圖
OpenStack有很多服務,我們可以根據需要安裝和使用這些服務。圖3提供了OpenStack的全景視圖,我們可查看這些服務的位置以及它們如何協同工作。
圖3 OpenStack全景圖
龍芯平臺OpenStack適配情況
我們在龍芯平臺loongnix-server系統上對OpenStack做了適配和測試。
適配版本和組件
據了解,國內主流廠商使用的版本有Ocata、Pike、Rocky等。我們目前適配的版本為Rocky。
下載地址:
http://www.loongnix.org/index.php/OpenStack
為什么要適配Rocky版本呢?
(1)Rocky版本是2018年8月發布的,龍芯是在2019年開始做OpenStack相關適配工作。
(2)OpenStack基金會非??粗剡@個版本,在這個版本中,大大增強了核心組件穩定性,增加了對很多新興技術的兼容,如:人工智能、機器學習、NFV、邊緣計算、軟件容器、支持裸機架構等。
表1 龍芯平臺已適配的基礎組件列表
如表1所示,目前做了適配分析的OpenStack組件有:nova、neutron、glance、keystone、cinder、swift這6個基礎組件。另外,客戶端工具OpenStackClient以及horizon組件也是支持的,在龍芯平臺上可以正常使用。
部署工具
OpenStack環境的搭建是比較復雜的,我們從主流的環境部署工具中選擇了packstack來做適配,它集成了OpenStack puppet模塊,非常成熟和穩定,使用方法也比較簡單。具體的使用方法可以參考龍芯社區的《OpenStack安裝和使用文檔》。
測試工具
測試工具,我們選擇了rally,這是OpenStack社區推出的一款開源測試工具。我們使用“rally + tempest”對6大基礎組件做了功能測試。
功能測試結果
表2列出了在龍芯平臺和x86平臺上,OpenStack基礎組件功能測試的結果對比。
其中,對x86平臺測試結果需要說明的是:我們使用的x86平臺環境是使用虛擬機搭建的,有些測試例的測試條件不滿足,導致fail較多。列出這個對比結果,是為了說明龍芯平臺部署的OpenStack環境能支持6大基礎組件的絕大部分功能。
表2 OpenStack基礎組件功能測試結果對比
分析過的重點功能
在對基礎組件功能測試結果分析的過程中,遇到了很多問題,多數都與配置有關。表3列出了我們分析驗證過的基礎組件的部分重要功能。
表3 分析過的基礎組件的重點功能列表
注:關于基礎組件的使用方法,可參考龍芯社區的文檔《OpenStack ssh VM的網絡配置和操作》、《OpenStack實例遷移配置和使用指南》、《cinder組件的配置和使用文檔》。
與架構有關的bug
解決的架構問題多數與nova組件有關。在龍芯平臺,nova通過libvirt管理KVM云主機。與架構有關的問題,見表4。
表4 龍芯平臺OpenStack架構相關問題
運行情況
dashboard登錄
我們在龍芯平臺上部署了openstack環境,圖4是openstack環境的登錄界面。圖5是登錄后的實例概況界面。
圖4 openstack環境登錄界面
圖5 實例概況界面
實例運行情況
在龍芯平臺上部署的OpenStack環境中,對實例進行的各項操作都是正常的。
圖6是一個網絡拓撲圖,外部網絡是flat類型,內部網絡是vxlan類型。圖7是實例vm-03控制臺(vnc)的截圖,表示可以和外網正常通信。
圖6 網絡拓撲圖
圖7 實例控制臺
龍芯未來工作規劃
雖然OpenStack已經發展了10年時間,但龍芯涉足OpenStack領域的時間只有1年,還有許多工作要做。其中,首要任務是對基礎組件和其它重要組件的適配測試工作,使OpenStack能夠在龍芯平臺跑起來,并滿足基本功能的使用。
組件適配計劃
我們以圖3作為組件適配工作的藍圖,結合客戶的反饋、運營商/銀行/鐵路/網絡設備商等OpenStack用戶的組件使用情況,制定了兩個階段的組件適配計劃。
表5是第一階段的適配計劃,主要是對基礎組件和客戶反饋所需要組件的適配分析。表6是第二階段的適配計劃,是在調研了運營商/銀行/鐵路/網絡設備商等行業對OpenStack組件的使用情況后,做出規劃。
表5 組件適配計劃-階段1
表6 組件適配計劃-階段2