羅士美,沈克農
1.浙江農林大學 經濟管理學院,浙江 杭州 311300
2.武漢噢易云計算股份有限公司,湖北 武漢 430074
計算機實驗室門類廣、分布廣,設備數(shù)量大、性能差異大,且安裝軟件多、設置要求多,導致管理服務難集中,運行效率難提升,運維成本難下降。因此,計算機實驗室建設管理模式亟待轉變。國內有學者指出[1-3],利用云技術構建虛擬實驗云是未來實驗教學改革的必由之路,運用KVM 虛擬化技術有助于促進云桌面融合,基于OpenStack 云系統(tǒng)架構可實現(xiàn)云資源高效管理和計算資源彈性分配。可見,以KVM 和OpenStack 為云應用集成框架,構建跨不同架構的桌面云融合實驗平臺,是計算機實驗室實現(xiàn)共建共享、高效管理、經濟運維的重要途徑。
平臺基于“云端集中化”總體思路,運用分層結構設計思想,創(chuàng)建“1+6+N”融合桌面云服務標準架構(見圖1)。該架構分為基礎設施層、平臺層、桌面層、終端層和用戶層。基礎設施層由服務器集群等設備構成,為平臺提供統(tǒng)一的資源池服務。平臺層基于KVM 和OpenStack 架構,負責桌面云各業(yè)務邏輯處理,為用戶提供統(tǒng)一的可視化融合管理平臺。桌面層具備VDI 桌面的移動特性和VOI、IDV 桌面的高性能;支撐瘦終端、胖終端、一體機和PC 利舊等多類型終端;滿足公共機房、專業(yè)機房及實習實訓室等不同教學場景需要。
硬件設計主要體現(xiàn)在服務器集群與客戶機集成兩個方面。在服務器設計方面,一是采用全集群架構設計,主機、磁盤、硬盤均運用冗余部署和高可用觸發(fā)機制,確保桌面業(yè)務安全穩(wěn)定運行;二是采用“SSD+HDD”混合設計,利用高效緩存技術,提升系統(tǒng)I/O 性能;三是支持在線擴容,自動實現(xiàn)資源平衡,輕松實現(xiàn)性能升級。在客戶機設計方面,一是采用集成化、一體化設計,精簡多余零部件,盡可能降低設備運行發(fā)熱量,延長設備使用壽命;二是采用X86 和ARM 兩種芯片架構,確保終端的高效平穩(wěn)運行;三是采用綠色環(huán)保設計,增強終端設備兼容性,降低運營成本與運行功耗。
圖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 實現(xiàn)宿主機CPU 和內存虛擬化,利用QEMU-KVM 實現(xiàn)磁盤、網(wǎng)卡等設備功能模擬,調用ioctl 接口實現(xiàn)與KVM 內核模塊交互[4]。中間層負責KVM Hypervisor 與OpenStack API 連接,主要由libvirt API、libvirtd 和virsh 組成,對下通過基于驅動程序的架構來實現(xiàn),對上提供一個屏蔽底層細節(jié)的統(tǒng)一、穩(wěn)定接口[4]。平臺層基于OpenStack 框架,依托Nova、Keystone 及Horizon 等API 實現(xiàn),與KVM 集成實現(xiàn)對服務器計算資源池化,記錄與維護資源池的狀態(tài),并根據(jù)用戶需求向KVM 下發(fā)各類控制命令[5]。表現(xiàn)層即Web GUI 融合管理平臺,具有跨VDI、VOI 和IDV 桌面特性,可根據(jù)現(xiàn)場環(huán)境靈活選擇交付桌面。
虛擬機創(chuàng)建管理的實現(xiàn)以OpenStack 的Nova 組件為核心,以Glance、Neutron、Cinder 及Keystone等為輔助。以創(chuàng)建虛擬機為例,用戶通過Horizon 或命令行CLI 向novaclient 發(fā)起請求,novaclient收到請求并經Keystone 驗證授權后,向nova-api 發(fā)出請求;nova-api 驗證用戶身份,初始化虛擬機信息(nova-db),請求nova-scheduler 分配虛擬機;nova-scheduler 監(jiān)聽消息隊列(queue),截獲請求后查詢nova-db 中對應新建虛擬機信息,根據(jù)調度算法遴選出符合條件的最佳主機并更新nova-db,請求nova-compute 創(chuàng)建虛擬機;nova-compute 監(jiān)聽queue 中請求,向nova-conductor 發(fā)出請求;nova-conductor 從queue 中獲取請求,根據(jù)請求查詢nova-db 并獲得虛擬機信息,將信息發(fā)送到queue;nova-compute 從queue 中獲取信息,分別向Glance、Neutron、Cinder 發(fā)出創(chuàng)建虛擬機所需鏡像、網(wǎng)絡和存儲請求,生成Hypervisor driver()所需數(shù)據(jù),調用KVM 完成虛擬機的創(chuàng)建(見圖3)。
虛擬機通常采用資源調度策略來實現(xiàn)最優(yōu)配置。虛擬機調度策略主要由FilterScheduler 和ChanceScheduler 實現(xiàn),其中FilterScheduler 是OpenStack 的默認調度器。FilterScheduler 實現(xiàn)了基于主機過濾(filtering)和權值計算(weighing)的調度算法;先根據(jù)過濾規(guī)則Filter 剔除不滿足條件的節(jié)點,如之前已調度失敗的或狀態(tài)不為active 的節(jié)點;再以內存、CPU 和存儲空間等因素為規(guī)則計算節(jié)點權值,選擇權值最大的節(jié)點創(chuàng)建虛擬機。FilterScheduler 的核心算法由FilterScheduler 類_scheduler()方法實現(xiàn),該方法調用了HostManger 類的get_all_host_states()、get_filtered_hosts()及get_weighed_hosts()等方法(見圖4)。
模板是一臺公共的云桌面樣機,是批量克隆創(chuàng)建桌面的基礎。在創(chuàng)建模板后,可根據(jù)需要創(chuàng)建多個桌面組成的場景或者單一桌面。虛擬機模板創(chuàng)建主要基于OpenStack.nova 組件的flavor 模塊實現(xiàn)。flavor 不僅規(guī)定了主機內存、CPU 等大小,而且可限制虛擬機的一系列配置,使用同一個flavor創(chuàng)建出來的虛擬機,在規(guī)格上保持一致。對于創(chuàng)建、刪除操作,通過FlavorManage 映射,最終映射到Flavor Manage Controller 來處理;而對于查詢等操作,則通過Flavors 映射,最終映射到Flavors Controller 來處理(見圖5)。上述不同的處理在于,查詢是可同時對多個模板進行處理的,而創(chuàng)建和刪除則均是針對單一模板進行處理的。
Horizon 是OpenStack 的Web GUI,主要包含horizon 和openstack_dashboard 兩個核心構件,劃分為Dashboard、Panel Group、Panel 三個設計層次。融合管理平臺基于Horizon 實現(xiàn),調用horizon.Dashboard 類創(chuàng)建project、admin、identity 及settings 等dashboard,調用horizon.Panel Group類創(chuàng)建資源、網(wǎng)絡、桌面、模板、終端及用戶等Panel Group,調用horizon.Panel 類創(chuàng)建overview、instances 及metering 等Panel。每個Panel 均代表一個django APP,含panel.py、tables.py 及views.py等文件,其中panel.py 用于定義panels 屬性,tables.py 用于定義所需的展示數(shù)據(jù),views.py 負責集成table、獲取數(shù)據(jù)和集中展示。融合管理平臺為用戶提供基于Web 的GUI 門戶,實現(xiàn)了桌面的標準化管控和機房的集中高效管理,提升了平臺友好性,增強了用戶體驗感。
以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 臺虛擬機并發(fā)啟動情況下,選擇win7-32、win7-64 和win10-64 三個桌面系統(tǒng),分別進行連續(xù)3 次測試并取均值,獲得磁盤性能測試數(shù)據(jù)(見表1)。在win7-32 和win7-64 操作系統(tǒng)下,虛擬機啟動速度快,開機平均用時均小于75 s,明顯快于實驗室普通PC 的開機速度;在win10-64 操作系統(tǒng)下,磁盤IOPS 和吞吐量均達到較高水平,性能明顯高于純SATA 磁盤,介于SSD 與SATA之間。可見,該平臺采用SSD 與HDD 混合設計,不僅提升了云桌面運行速度,而且有效化解了計算機實驗室PC 普遍開機慢的問題。
以一臺云服務器帶30 臺虛擬機為例,采用本地存儲,模板配置50 G 的系統(tǒng)盤、無數(shù)據(jù)盤,桌面安裝win7-32 操作系統(tǒng),配有Office、PS、CAD 等應用軟件,按照30 臺虛擬機在管理端同時開機、同步運行多個軟件(Excel、Word、CAD)、并發(fā)持續(xù)播放視頻文件(梔子花開.mpg)三種情況,分別測試虛擬機CPU 使用率、內存使用率、磁盤I/O 讀寫速度和網(wǎng)絡上下行流量(見表2)。CPU 負荷除視頻并發(fā)播放較高外(85.5%),其余情形均保持在合理區(qū)間(40%~70%);內存使用率波動不大,維持在67.9~72.4%之間;I/O 速度差異不大,sda 讀、寫速度維持10 k/s 以內,ssd 讀、寫速度介于100~1000 k/s 之間;網(wǎng)絡流量介于10 k/s~100 m/s 之間,不易造成網(wǎng)絡擁塞。可見,在軟件并發(fā)情況下,虛擬機各核心指標均保持在較合理區(qū)間,整體性能表現(xiàn)優(yōu)異。
表1 虛擬機并發(fā)啟動磁盤測試數(shù)據(jù)Table 1 Virtual machine concurrent boot disk test data
表2 軟件并發(fā)運行虛擬機性能測試數(shù)據(jù)Table 2 Software performance test data for concurrent running of virtual machines
經實例部署驗證,融合桌面云實驗平臺具有三大優(yōu)勢。一是運行速度更快。同時部署30 個win7桌面小于90 s,并發(fā)啟動30 個win7 桌面小于75 秒,同步更新30 個win7 桌面的1GB 課件小于90 s;二是系統(tǒng)兼容性更強。全面支持VDI、VOI 和IDV 等不同桌面架構,全面支持windows 和Linux 操作系統(tǒng),全面支持胖終端、X86/ARM 瘦終端、X86/ARM 一體機和舊PC 等終端;三是管理便捷性更好。支持服務器、終端及桌面可視化管理,支持VDI、VOI 及IDV 桌面遠程部署和管控,支持桌面資源彈性分配和云端資源平滑擴展。但是,平臺在并發(fā)處理3D 動畫和圖形圖像時,整體性能還有所欠缺,還需在vGPU 資源調度等方面進行優(yōu)化改進。