羅士美,沈克農
1.浙江農林大學 經濟管理學院,浙江 杭州 311300
2.武漢噢易云計算股份有限公司,湖北 武漢 430074
計算機實驗室門類廣、分布廣,設備數量大、性能差異大,且安裝軟件多、設置要求多,導致管理服務難集中,運行效率難提升,運維成本難下降。因此,計算機實驗室建設管理模式亟待轉變。國內有學者指出[1-3],利用云技術構建虛擬實驗云是未來實驗教學改革的必由之路,運用KVM 虛擬化技術有助于促進云桌面融合,基于OpenStack 云系統架構可實現云資源高效管理和計算資源彈性分配。可見,以KVM 和OpenStack 為云應用集成框架,構建跨不同架構的桌面云融合實驗平臺,是計算機實驗室實現共建共享、高效管理、經濟運維的重要途徑。
平臺基于“云端集中化”總體思路,運用分層結構設計思想,創建“1+6+N”融合桌面云服務標準架構(見圖1)。該架構分為基礎設施層、平臺層、桌面層、終端層和用戶層。基礎設施層由服務器集群等設備構成,為平臺提供統一的資源池服務。平臺層基于KVM 和OpenStack 架構,負責桌面云各業務邏輯處理,為用戶提供統一的可視化融合管理平臺。桌面層具備VDI 桌面的移動特性和VOI、IDV 桌面的高性能;支撐瘦終端、胖終端、一體機和PC 利舊等多類型終端;滿足公共機房、專業機房及實習實訓室等不同教學場景需要。
硬件設計主要體現在服務器集群與客戶機集成兩個方面。在服務器設計方面,一是采用全集群架構設計,主機、磁盤、硬盤均運用冗余部署和高可用觸發機制,確保桌面業務安全穩定運行;二是采用“SSD+HDD”混合設計,利用高效緩存技術,提升系統I/O 性能;三是支持在線擴容,自動實現資源平衡,輕松實現性能升級。在客戶機設計方面,一是采用集成化、一體化設計,精簡多余零部件,盡可能降低設備運行發熱量,延長設備使用壽命;二是采用X86 和ARM 兩種芯片架構,確保終端的高效平穩運行;三是采用綠色環保設計,增強終端設備兼容性,降低運營成本與運行功耗。

圖1 融合桌面云實驗平臺服務標準架構Fig.1 The service standard framework of the integration desktop cloud experimental platform

圖2 融合桌面云實驗平臺軟件架構Fig.2 The software framework of the integration desktop cloud experimental platform
平臺基于KVM 和OpenStack 框架設計,由Web GUI、OpenStack API、Libvirt、KVM Hypervisor和Linux Kernel 等構成(見圖2)。底層以Linux 內核為基礎,通過kvm.ko 實現宿主機CPU 和內存虛擬化,利用QEMU-KVM 實現磁盤、網卡等設備功能模擬,調用ioctl 接口實現與KVM 內核模塊交互[4]。中間層負責KVM Hypervisor 與OpenStack API 連接,主要由libvirt API、libvirtd 和virsh 組成,對下通過基于驅動程序的架構來實現,對上提供一個屏蔽底層細節的統一、穩定接口[4]。平臺層基于OpenStack 框架,依托Nova、Keystone 及Horizon 等API 實現,與KVM 集成實現對服務器計算資源池化,記錄與維護資源池的狀態,并根據用戶需求向KVM 下發各類控制命令[5]。表現層即Web GUI 融合管理平臺,具有跨VDI、VOI 和IDV 桌面特性,可根據現場環境靈活選擇交付桌面。
虛擬機創建管理的實現以OpenStack 的Nova 組件為核心,以Glance、Neutron、Cinder 及Keystone等為輔助。以創建虛擬機為例,用戶通過Horizon 或命令行CLI 向novaclient 發起請求,novaclient收到請求并經Keystone 驗證授權后,向nova-api 發出請求;nova-api 驗證用戶身份,初始化虛擬機信息(nova-db),請求nova-scheduler 分配虛擬機;nova-scheduler 監聽消息隊列(queue),截獲請求后查詢nova-db 中對應新建虛擬機信息,根據調度算法遴選出符合條件的最佳主機并更新nova-db,請求nova-compute 創建虛擬機;nova-compute 監聽queue 中請求,向nova-conductor 發出請求;nova-conductor 從queue 中獲取請求,根據請求查詢nova-db 并獲得虛擬機信息,將信息發送到queue;nova-compute 從queue 中獲取信息,分別向Glance、Neutron、Cinder 發出創建虛擬機所需鏡像、網絡和存儲請求,生成Hypervisor driver()所需數據,調用KVM 完成虛擬機的創建(見圖3)。
虛擬機通常采用資源調度策略來實現最優配置。虛擬機調度策略主要由FilterScheduler 和ChanceScheduler 實現,其中FilterScheduler 是OpenStack 的默認調度器。FilterScheduler 實現了基于主機過濾(filtering)和權值計算(weighing)的調度算法;先根據過濾規則Filter 剔除不滿足條件的節點,如之前已調度失敗的或狀態不為active 的節點;再以內存、CPU 和存儲空間等因素為規則計算節點權值,選擇權值最大的節點創建虛擬機。FilterScheduler 的核心算法由FilterScheduler 類_scheduler()方法實現,該方法調用了HostManger 類的get_all_host_states()、get_filtered_hosts()及get_weighed_hosts()等方法(見圖4)。
模板是一臺公共的云桌面樣機,是批量克隆創建桌面的基礎。在創建模板后,可根據需要創建多個桌面組成的場景或者單一桌面。虛擬機模板創建主要基于OpenStack.nova 組件的flavor 模塊實現。flavor 不僅規定了主機內存、CPU 等大小,而且可限制虛擬機的一系列配置,使用同一個flavor創建出來的虛擬機,在規格上保持一致。對于創建、刪除操作,通過FlavorManage 映射,最終映射到Flavor Manage Controller 來處理;而對于查詢等操作,則通過Flavors 映射,最終映射到Flavors Controller 來處理(見圖5)。上述不同的處理在于,查詢是可同時對多個模板進行處理的,而創建和刪除則均是針對單一模板進行處理的。



Horizon 是OpenStack 的Web GUI,主要包含horizon 和openstack_dashboard 兩個核心構件,劃分為Dashboard、Panel Group、Panel 三個設計層次。融合管理平臺基于Horizon 實現,調用horizon.Dashboard 類創建project、admin、identity 及settings 等dashboard,調用horizon.Panel Group類創建資源、網絡、桌面、模板、終端及用戶等Panel Group,調用horizon.Panel 類創建overview、instances 及metering 等Panel。每個Panel 均代表一個django APP,含panel.py、tables.py 及views.py等文件,其中panel.py 用于定義panels 屬性,tables.py 用于定義所需的展示數據,views.py 負責集成table、獲取數據和集中展示。融合管理平臺為用戶提供基于Web 的GUI 門戶,實現了桌面的標準化管控和機房的集中高效管理,提升了平臺友好性,增強了用戶體驗感。
以VDI 桌面為例,配備30 臺Arm 終端和兩臺云服務器,對平臺關鍵性能進行測試。其中:VDI版本為V4.2.1,后臺版本為V1.1.0.34,Arm 端版本為V4.2.0,云服務器為2×Intel(R)Xeon(R)2.40GHz、6×Samsung 16GB、2×ATA WDC 931G 及Intel SSD 372G 等。
在30 臺虛擬機并發啟動情況下,選擇win7-32、win7-64 和win10-64 三個桌面系統,分別進行連續3 次測試并取均值,獲得磁盤性能測試數據(見表1)。在win7-32 和win7-64 操作系統下,虛擬機啟動速度快,開機平均用時均小于75 s,明顯快于實驗室普通PC 的開機速度;在win10-64 操作系統下,磁盤IOPS 和吞吐量均達到較高水平,性能明顯高于純SATA 磁盤,介于SSD 與SATA之間。可見,該平臺采用SSD 與HDD 混合設計,不僅提升了云桌面運行速度,而且有效化解了計算機實驗室PC 普遍開機慢的問題。
以一臺云服務器帶30 臺虛擬機為例,采用本地存儲,模板配置50 G 的系統盤、無數據盤,桌面安裝win7-32 操作系統,配有Office、PS、CAD 等應用軟件,按照30 臺虛擬機在管理端同時開機、同步運行多個軟件(Excel、Word、CAD)、并發持續播放視頻文件(梔子花開.mpg)三種情況,分別測試虛擬機CPU 使用率、內存使用率、磁盤I/O 讀寫速度和網絡上下行流量(見表2)。CPU 負荷除視頻并發播放較高外(85.5%),其余情形均保持在合理區間(40%~70%);內存使用率波動不大,維持在67.9~72.4%之間;I/O 速度差異不大,sda 讀、寫速度維持10 k/s 以內,ssd 讀、寫速度介于100~1000 k/s 之間;網絡流量介于10 k/s~100 m/s 之間,不易造成網絡擁塞。可見,在軟件并發情況下,虛擬機各核心指標均保持在較合理區間,整體性能表現優異。

表1 虛擬機并發啟動磁盤測試數據Table 1 Virtual machine concurrent boot disk test data

表2 軟件并發運行虛擬機性能測試數據Table 2 Software performance test data for concurrent running of virtual machines
經實例部署驗證,融合桌面云實驗平臺具有三大優勢。一是運行速度更快。同時部署30 個win7桌面小于90 s,并發啟動30 個win7 桌面小于75 秒,同步更新30 個win7 桌面的1GB 課件小于90 s;二是系統兼容性更強。全面支持VDI、VOI 和IDV 等不同桌面架構,全面支持windows 和Linux 操作系統,全面支持胖終端、X86/ARM 瘦終端、X86/ARM 一體機和舊PC 等終端;三是管理便捷性更好。支持服務器、終端及桌面可視化管理,支持VDI、VOI 及IDV 桌面遠程部署和管控,支持桌面資源彈性分配和云端資源平滑擴展。但是,平臺在并發處理3D 動畫和圖形圖像時,整體性能還有所欠缺,還需在vGPU 資源調度等方面進行優化改進。