孫志剛
摘 要: 我們正處于一場(chǎng)幾十年未見(jiàn)的數(shù)字化革命性轉(zhuǎn)變中,究其技術(shù)核心,這一轉(zhuǎn)變是由“軟件”基礎(chǔ)設(shè)施的崛起而驅(qū)動(dòng)。虛擬機(jī)、虛擬網(wǎng)絡(luò)和存儲(chǔ)設(shè)備能夠以高速自動(dòng)化的方式分配與重新配置,不會(huì)受到非動(dòng)態(tài)設(shè)置的硬件基礎(chǔ)設(shè)施的限制,在“軟件定義數(shù)據(jù)中心”的模型下,用戶首先考慮的是應(yīng)用,根據(jù)應(yīng)用的模式便可靈活的調(diào)配其所需的IT基礎(chǔ)架構(gòu)資源,也就是通過(guò)軟件化的方式實(shí)現(xiàn)硬件資源調(diào)配。我們需要通過(guò)理論研究來(lái)指導(dǎo)用戶解決在云化和數(shù)字化轉(zhuǎn)型過(guò)程中遇到的各種技術(shù)難題,幫助用戶應(yīng)對(duì)高昂的轉(zhuǎn)型成本。
關(guān)鍵詞: 軟件;數(shù)據(jù)中心;虛擬化;超融合;網(wǎng)絡(luò);服務(wù)器;存儲(chǔ)
一、引言
云計(jì)算、大數(shù)據(jù)、人工智能等新技術(shù)正在顛覆各行各業(yè),推動(dòng)各企業(yè)的數(shù)字化轉(zhuǎn)型與創(chuàng)新。隨著云計(jì)算和虛擬化技術(shù)向構(gòu)建新一代數(shù)據(jù)中心方向發(fā)展,以虛擬化為基礎(chǔ),實(shí)現(xiàn)管理以及業(yè)務(wù)的集中,對(duì)數(shù)據(jù)中心資源進(jìn)行動(dòng)態(tài)調(diào)整和分配,滿足關(guān)鍵應(yīng)用向X86 系統(tǒng)遷移對(duì)于資源高性能、高可靠、安全性和高可適應(yīng)性上的要求,同時(shí)提高基礎(chǔ)架構(gòu)的自動(dòng)化管理水平,確保滿足基礎(chǔ)設(shè)施快速適應(yīng)業(yè)務(wù)訴求,支持應(yīng)用云化部署。在云計(jì)算之前,業(yè)務(wù)應(yīng)用上線,需要經(jīng)歷組網(wǎng)規(guī)劃、容量規(guī)劃、設(shè)備選型、下單、付款、發(fā)貨、運(yùn)輸、安裝、部署、調(diào)試的整個(gè)完整過(guò)程。這個(gè)周期在大型項(xiàng)目中需要以周甚至月來(lái)計(jì)算,而在引入云計(jì)算后,這整個(gè)周期可以縮短到以分鐘來(lái)計(jì)算。
二、計(jì)算虛擬化
1.CPU虛擬化
對(duì)虛擬機(jī)來(lái)說(shuō),不直接感知物理 CPU,虛擬機(jī)的計(jì)算單元通過(guò) vCPU 對(duì)象來(lái)呈現(xiàn)。虛擬機(jī)只看到 VMM 呈現(xiàn)給它的 vCPU。在 VMM 中,每個(gè) vCPU 對(duì)應(yīng)一個(gè) VMCS(Virtual-MachineControl Structure)結(jié)構(gòu),當(dāng) vcpu 被從物理 CPU 上切換下來(lái)的時(shí)候,其運(yùn)行上下文會(huì)被保存在其對(duì)應(yīng)的 VMCS 結(jié)構(gòu)中;當(dāng) vcpu 被切換到 pcpu 上運(yùn)行時(shí),其運(yùn)行上下文會(huì)從對(duì)應(yīng)的 VMCS 結(jié)構(gòu)中導(dǎo)入到物理 CPU 上。通過(guò)這種方式,實(shí)現(xiàn)各 vCPU 之間的獨(dú)立運(yùn)行。
從虛擬機(jī)系統(tǒng)的結(jié)構(gòu)與功能劃分可以看出,客戶操作系統(tǒng)與虛擬機(jī)監(jiān)視器共同構(gòu)成了虛擬機(jī)系統(tǒng)的兩級(jí)調(diào)度框架,如圖所示是一個(gè)多核環(huán)境下虛擬機(jī)系統(tǒng)的兩級(jí)調(diào)度框架??蛻舨僮飨到y(tǒng)負(fù)責(zé)第 2 級(jí)調(diào)度,即線程或進(jìn)程在 vCPU 上的調(diào)度(將核心線程映射到相應(yīng)的虛擬 CPU 上)。虛擬機(jī)監(jiān)視器負(fù)責(zé)第 1 級(jí)調(diào)度, 即 vCPU 在物理處理單元上的調(diào)度。兩級(jí)調(diào)度的調(diào)度策略和機(jī)制不存在依賴關(guān)系。vCPU 調(diào)度器負(fù)責(zé)物理處理器資源在各個(gè)虛擬機(jī)之間的分配與調(diào)度,本質(zhì)上即把各個(gè)虛擬機(jī)中的 vCPU 按照一定的策略和機(jī)制調(diào)度在物理處理單元上可以采用任意的策略來(lái)分配物理資源, 滿足虛擬機(jī)的不同需求。vCPU 可以調(diào)度在一個(gè)或多個(gè)物理處理單元執(zhí)行(分時(shí)復(fù)用或空間復(fù)用物理處理單元), 也可以與物理處理單元建立一對(duì)一固定的映射關(guān)系(限制訪問(wèn)指定的物理處理單元)。
2.內(nèi)存虛擬化
因?yàn)?VMM (Virtual Machine Monitor) 掌控所有系統(tǒng)資源,因此 VMM 握有整個(gè)內(nèi)存資源,其負(fù)責(zé)頁(yè)式內(nèi)存管理,維護(hù)虛擬地址到機(jī)器地址的映射關(guān)系。因 Guest OS 本身亦有頁(yè)式內(nèi)存管理機(jī)制,則有 VMM 的整個(gè)系統(tǒng)就比正常系統(tǒng)多了一層映射:
A. 虛擬地址(VA),指 Guest OS 提供給其應(yīng)用程序使用的線性地址空間;
B. 物理地址(PA),經(jīng) VMM 抽象的、虛擬機(jī)看到的偽物理地址;
C. 機(jī)器地址(MA),真實(shí)的機(jī)器地址,即地址總線上出現(xiàn)的地址信號(hào);
映射關(guān)系如下:Guest OS: PA = f(VA)、VMM: MA = g(PA)VMM 維護(hù)一套頁(yè)表,負(fù)責(zé) PA 到 MA 的映射。Guest OS 維護(hù)一套頁(yè)表,負(fù)責(zé) VA 到PA 的映射。實(shí)際運(yùn)行時(shí),用戶程序訪問(wèn) VA1,經(jīng) Guest OS 的頁(yè)表轉(zhuǎn)換得到 PA1,再由VMM 介入,使用 VMM 的頁(yè)表將 PA1 轉(zhuǎn)換為 MA1。
三、I/O 設(shè)備虛擬化
VMM 通過(guò) I/O 虛擬化來(lái)復(fù)用有限的外設(shè)資源,其通過(guò)截獲 Guest OS 對(duì) I/O 設(shè)備的訪問(wèn)請(qǐng)求,然后通過(guò)軟件模擬真實(shí)的硬件,目前 I/O 設(shè)備的虛擬化方式主要有三種:設(shè)備接口完全模擬、前端/后端模擬、直接劃分。
1、設(shè)備接口完全模擬:
即軟件精確模擬與物理設(shè)備完全一樣的接口,Guest OS 驅(qū)動(dòng)無(wú)須修改就能驅(qū)動(dòng)這個(gè)虛擬設(shè)備。優(yōu)點(diǎn):沒(méi)有額外的硬件開(kāi)銷,可重用現(xiàn)有驅(qū)動(dòng)程序;缺點(diǎn):為完成一次操作要涉及到多個(gè)寄存器的操作,使得 VMM 要截獲每個(gè)寄存器訪問(wèn)并進(jìn)行相應(yīng)的模擬,這就導(dǎo)致多次上下文切換;由于是軟件模擬,性能較低。
2、前端/后端模擬:
VMM 提供一個(gè)簡(jiǎn)化的驅(qū)動(dòng)程序后端,Guest OS 中的驅(qū)動(dòng)程序?yàn)榍岸?,前端?qū)動(dòng)將來(lái)自其他模塊的請(qǐng)求通過(guò)與 Guest OS 間的特殊通信機(jī)制直接發(fā)送給VMM,VMM后端驅(qū)動(dòng)在處理完請(qǐng)求后再發(fā)回通知給前端。優(yōu)點(diǎn):基于事務(wù)的通信機(jī)制,能在很大程度上減少上下文切換開(kāi)銷,沒(méi)有額外的硬件開(kāi)銷;缺點(diǎn):需要 GuestOS實(shí)現(xiàn)前端驅(qū)動(dòng),后端驅(qū)動(dòng)可能成為瓶頸。
3、直接劃分:
即直接將物理設(shè)備分配給某個(gè) Guest OS,由 Guest OS 直接訪問(wèn) I/O 設(shè)備(不經(jīng) VMM),目前與此相關(guān)的技術(shù)有 IOMMU(Intel VT-d, PCI-SIG 之 SR-IOV 等),旨在建立高效的I/O 虛擬化直通道。優(yōu)點(diǎn):可重用已有驅(qū)動(dòng),直接訪問(wèn)減少了虛擬化開(kāi)銷;缺點(diǎn):需要購(gòu)買較多額外的硬件。
四、存儲(chǔ)虛擬化
業(yè)界典型的分布式存儲(chǔ)技術(shù)主要有分布式文件系統(tǒng)存儲(chǔ)、分布式對(duì)象存儲(chǔ)和分布式塊設(shè)備存儲(chǔ)等幾種形式。分布式存儲(chǔ)技術(shù)ServerSAN及其相關(guān)產(chǎn)品已經(jīng)日趨成熟,并在IT行業(yè)得到了廣泛的使用和驗(yàn)證。分布式存儲(chǔ)軟件系統(tǒng)具有以下特點(diǎn):
高性能:數(shù)據(jù)分散存放,實(shí)現(xiàn)全局負(fù)載均衡,分布式緩存;
高可靠:采用集群管理方式,不存在單點(diǎn)故障,靈活配置多數(shù)據(jù)副本,不同數(shù)據(jù)副本存放在不同的機(jī)架、服務(wù)器和硬盤上,單個(gè)物理設(shè)備故障不影響業(yè)務(wù)的使用,系統(tǒng)檢測(cè)到設(shè)備故障后可以自動(dòng)重建數(shù)據(jù)副本;
高擴(kuò)展:沒(méi)有集中式存儲(chǔ)控制器,支持平滑擴(kuò)容,容量幾乎不受限制;
易管理: 存儲(chǔ)軟件直接部署在服務(wù)器上,沒(méi)有單獨(dú)的存儲(chǔ)專用硬件設(shè)備,通過(guò)Web 頁(yè)面的方式進(jìn)行存儲(chǔ)的管理,配置和維護(hù)簡(jiǎn)單。
我們目前在充分掌握了虛擬化環(huán)境存儲(chǔ)方面的需求基礎(chǔ)上,采用分布式存儲(chǔ)軟件。該軟件融合了分布式緩存、SSD讀寫緩存加速、多副本機(jī)制保障、故障自動(dòng)重構(gòu)機(jī)制等諸多存儲(chǔ)技術(shù),滿足關(guān)鍵業(yè)務(wù)的存儲(chǔ)需求。軟件基于底層Hypervisor之上,通過(guò)主機(jī)管理、磁盤管理、緩存技術(shù)、存儲(chǔ)網(wǎng)絡(luò)、冗余副本等技術(shù),管理集群內(nèi)所有硬盤,“池化”集群所有硬盤存儲(chǔ)的空間,使得虛擬機(jī)可以進(jìn)行業(yè)務(wù)數(shù)據(jù)的保存、管理和讀寫等整個(gè)存儲(chǔ)過(guò)程中的操作。
五、網(wǎng)絡(luò)及網(wǎng)絡(luò)安全虛擬化
以開(kāi)放取代封閉,以通用替代專有——將原本傳統(tǒng)的專業(yè)網(wǎng)元設(shè)備上的網(wǎng)絡(luò)功能提取出來(lái)虛擬化,運(yùn)行在通用的硬件平臺(tái)上,業(yè)界稱這種變化為NFV。N F V (Network Functions Virtualisation網(wǎng)絡(luò)功能虛擬化)的目標(biāo)是希望通過(guò)廣泛采用的硬件承載各種各樣的網(wǎng)絡(luò)軟件功能,實(shí)現(xiàn)軟件的靈活加載,在數(shù)據(jù)中心、網(wǎng)絡(luò)節(jié)點(diǎn)和用戶端等各個(gè)位置靈活的配置,加快網(wǎng)絡(luò)部署和調(diào)整的速度,降低業(yè)務(wù)部署的復(fù)雜度及總體投資成本,提高網(wǎng)絡(luò)設(shè)備的統(tǒng)一化、通用化、適配性。
通過(guò)NFV技術(shù), 將網(wǎng)絡(luò)功能資源進(jìn)行虛擬化,使得網(wǎng)絡(luò)資源升級(jí)為虛擬化、可流動(dòng)的流態(tài)資源, Overlay模型使流態(tài)網(wǎng)絡(luò)資源的流動(dòng)范圍跳出了物理網(wǎng)絡(luò)的束縛,可以在全網(wǎng)范圍內(nèi)按需流動(dòng),呈現(xiàn)出網(wǎng)絡(luò)資源的統(tǒng)一池化狀態(tài),最終實(shí)現(xiàn)了企業(yè)級(jí)云架構(gòu)中網(wǎng)絡(luò)資源的靈活定義、按需分配、隨需調(diào)整。
網(wǎng)絡(luò)功能虛擬化將網(wǎng)絡(luò)功能與專有硬件設(shè)備分離,并將這些功能使用軟件的方式實(shí)現(xiàn),以支持虛擬化組件完全融合的基礎(chǔ)架構(gòu)。通過(guò)這種方式,可以充分利用超融合平臺(tái)的硬件資源,降低網(wǎng)絡(luò)昂貴的設(shè)備、人力維護(hù)成本,其自有的功能抽象、快速部署、彈性伸縮、分布式的高可靠、故障自愈等特性也為用戶的網(wǎng)絡(luò)需求帶來(lái)極大的滿足度。
參考文獻(xiàn)
[1]應(yīng)用Hyper-V技術(shù)進(jìn)行服務(wù)器虛擬化[J]. 鄭毅. 電腦與信息技術(shù). 2016(05).
[2]存儲(chǔ)虛擬化技術(shù)探討[J]. 康瓊. 長(zhǎng)江大學(xué)學(xué)報(bào)(自然科學(xué)版)理工卷. 2010(03).
[3]基于OpenFlow的SDN技術(shù)研究[J]. 左青云,陳鳴,趙廣松,邢長(zhǎng)友,張國(guó)敏,蔣培成. 軟件學(xué)報(bào). 2013(05).
[4]性能虛擬化存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 柯劍,那文武,朱旭東,許魯. 計(jì)算機(jī)工程. 2009(23).