燕楊
一、電子文件長(zhǎng)期保存之困
電子文件是以二進(jìn)制編碼形式存儲(chǔ)于光電或磁電等載體中,依賴(lài)計(jì)算機(jī)系統(tǒng)處理并可在網(wǎng)絡(luò)中快速傳輸?shù)臄?shù)字信息。從技術(shù)層面看,電子文件長(zhǎng)期保存包含兩層含義:長(zhǎng)期可靠存儲(chǔ)和長(zhǎng)期可靠識(shí)讀。
但是由于電子文件存儲(chǔ)介質(zhì)的脆弱性和文件格式的技術(shù)過(guò)時(shí)性?xún)纱箅y題,使得其長(zhǎng)期保存面臨著嚴(yán)峻挑戰(zhàn)。一方面,磁電或光電介質(zhì)作為電子文件的主要存儲(chǔ)載體,其理化性能極不穩(wěn)定,極易受外部環(huán)境的影響,任何細(xì)微的損傷都可能導(dǎo)致其無(wú)法正常識(shí)讀。另一方面,計(jì)算機(jī)技術(shù)發(fā)展日新月異,使得對(duì)上向電子文件應(yīng)用系統(tǒng)提供標(biāo)準(zhǔn)接口,對(duì)下管理硬件資源的操作系統(tǒng)不斷更新?lián)Q代,而電子文件又對(duì)運(yùn)行環(huán)境具有很強(qiáng)的依賴(lài)性,這種軟、硬件環(huán)境的快速更新會(huì)導(dǎo)致在低版本系統(tǒng)中生成的電子文件在新的數(shù)字環(huán)境中無(wú)法正常識(shí)讀。而試圖保存一個(gè)過(guò)時(shí)的軟、硬件系統(tǒng),以便在新的數(shù)字環(huán)境中識(shí)讀低版本電子文件,不具有可行性。
近年來(lái),隨著“云計(jì)算”的興起,虛擬化技術(shù)得到了空前的發(fā)展。虛擬化技術(shù)可將現(xiàn)有的計(jì)算機(jī)硬件整合成資源池,在一個(gè)特定的硬件環(huán)境中模擬出另一個(gè)不同的數(shù)字環(huán)境,資源池中個(gè)別硬件的故障并不影響整個(gè)系統(tǒng)的運(yùn)行,這些特性都為電子文件的長(zhǎng)期保存開(kāi)辟了新的途徑。
二、虛擬化技術(shù)用于解決電子文件的技術(shù)過(guò)時(shí)性
虛擬化技術(shù)的核心是虛擬機(jī)監(jiān)控器(VMM)。在非虛擬化環(huán)境中,操作系統(tǒng)直接運(yùn)行在硬件上,管理著底層的物理硬件資源。在虛擬化環(huán)境中,VMM占據(jù)了操作系統(tǒng)的位置,管理著真實(shí)的物理硬件資源,呈現(xiàn)出虛擬的硬件平臺(tái),“欺騙”著上層的操作系統(tǒng),這樣低版本的操作系統(tǒng)就可以在虛擬化環(huán)境中正常運(yùn)行。
VMM對(duì)物理資源的虛擬化主要是通過(guò)處理器虛擬化、內(nèi)存虛擬化和I/O虛擬化三個(gè)方面進(jìn)行的。以主流服務(wù)器x86體系架構(gòu)為例,其虛擬化平臺(tái)如圖1所示。
1.處理器虛擬化。VMM創(chuàng)建虛擬機(jī)時(shí),首先要?jiǎng)?chuàng)建vCPU。處理器虛擬化實(shí)際上是VMM調(diào)度不同的vCPU。x86體系結(jié)構(gòu)計(jì)算機(jī)通常具有兩個(gè)或兩個(gè)以上的特權(quán)級(jí),從而使操作系統(tǒng)和應(yīng)用系統(tǒng)彼此分離。而計(jì)算機(jī)指令系統(tǒng)又分成特權(quán)指令和非特權(quán)指令。特權(quán)指令是操作和管理關(guān)鍵資源的指令,只能運(yùn)行在最高特權(quán)級(jí)上,如果運(yùn)行在非最高特權(quán)級(jí)上,則會(huì)引發(fā)異常使處理器陷入到最高特權(quán)級(jí),并將特權(quán)指令交由操作系統(tǒng)處理。在虛擬化技術(shù)中,將配置硬件資源的指令稱(chēng)為敏感指令。傳統(tǒng)的虛擬化技術(shù)將VMM運(yùn)行在系統(tǒng)的最高特權(quán)級(jí),而將客戶機(jī)(運(yùn)行了應(yīng)用系統(tǒng)的虛擬機(jī))運(yùn)行在非特權(quán)級(jí)上,當(dāng)客戶機(jī)操作系統(tǒng)執(zhí)行某些敏感指令(此時(shí)也是特權(quán)指令)時(shí),則會(huì)引發(fā)異常而陷入到最高特權(quán)級(jí)。VMM捕獲到該指令后,便對(duì)硬件資源進(jìn)行操作。因此,這就要求所有的敏感指令都是特權(quán)指令,但x86體系架構(gòu)有17條敏感指令不屬于特權(quán)指令,當(dāng)這些指令運(yùn)行在低級(jí)別特權(quán)級(jí)上時(shí),VMM并不能捕獲而成為漏網(wǎng)之魚(yú)。為此,Intel公司在硬件上對(duì)虛擬化技術(shù)進(jìn)行了支持。較為典型的是Intel的VT-x,如圖2所示。VT-x提供了兩種操作模式:根操作模式和非根操作模式。VMM運(yùn)行在根操作模式,客戶機(jī)運(yùn)行在非根操作模式。當(dāng)客戶機(jī)執(zhí)行某個(gè)敏感指令時(shí),會(huì)自動(dòng)觸發(fā)VMExit,而進(jìn)入根操作模式,這時(shí)VMM獲得控制權(quán),對(duì)硬件資源進(jìn)行操作,之后再次通過(guò)VMEntry進(jìn)入到非根操作模式,繼續(xù)客戶機(jī)的運(yùn)行。
2.內(nèi)存虛擬化。x86架構(gòu)計(jì)算機(jī)將內(nèi)存真實(shí)的機(jī)器地址空間定義為物理地址空間。一個(gè)硬件平臺(tái)只有一個(gè)物理地址空間。為了讓多個(gè)應(yīng)用系統(tǒng)能相互隔離并能有效地訪問(wèn)物理地址空間,引入了虛擬的線性地址空間。一個(gè)硬件平臺(tái)可以有多個(gè)線性地址空間,CPU通過(guò)頁(yè)表的方式將線性地址轉(zhuǎn)換成物理地址,保證各應(yīng)用系統(tǒng)能正確訪問(wèn)到該線性地址所映射的物理地址空間。在系統(tǒng)虛擬化后,由于在客戶機(jī)與物理主機(jī)(簡(jiǎn)稱(chēng)宿主機(jī))之間隔著一個(gè)VMM層,客戶機(jī)操作系統(tǒng)并不能直接訪問(wèn)到宿主機(jī)的真實(shí)地址空間,因而,又引入了客戶機(jī)物理地址空間的概念,這樣,每個(gè)客戶機(jī)都有各自的客戶機(jī)物理地址空間??蛻魴C(jī)操作系統(tǒng)訪問(wèn)到的是一個(gè)虛擬的客戶機(jī)物理地址空間,但客戶機(jī)物理地址并不能被直接發(fā)送到系統(tǒng)總線上,需要由VMM將它轉(zhuǎn)換成宿主機(jī)真實(shí)的物理地址后,再交物理處理器來(lái)執(zhí)行。為此,VMM為每個(gè)客戶機(jī)動(dòng)態(tài)地建立一張“影子頁(yè)表”??蛻魴C(jī)維護(hù)著自身的頁(yè)表,將客戶機(jī)線性地址轉(zhuǎn)換為客戶機(jī)物理地址,VMM則負(fù)責(zé)維護(hù)影子頁(yè)表,將客戶機(jī)物理地址轉(zhuǎn)換為宿主機(jī)物理地址。一份影子頁(yè)表對(duì)應(yīng)一份客戶機(jī)頁(yè)表。當(dāng)客戶機(jī)進(jìn)行頁(yè)表操作時(shí)會(huì)導(dǎo)致VMExit, VMM捕獲這一事件后,先由客戶機(jī)操作系統(tǒng)更新其頁(yè)表,然后根據(jù)客戶機(jī)物理地址與宿主機(jī)物理地址間的映射關(guān)系,用宿主機(jī)物理地址更新相應(yīng)的影子頁(yè)表,并將影子頁(yè)表載入到物理MMU(內(nèi)存管理單元),保證客戶機(jī)可以訪問(wèn)到真實(shí)的宿主機(jī)物理地址空間。為了提高內(nèi)存虛擬化的效率,Intel開(kāi)發(fā)了Intel EPT技術(shù),其原理如圖3所示。通過(guò)EPT頁(yè)表,可以很方便地將客戶機(jī)物理地址轉(zhuǎn)換為宿主機(jī)物理地址,并載入到EPT MMU中,以訪問(wèn)真實(shí)的物理內(nèi)存。
3. I/O虛擬化。計(jì)算機(jī)系統(tǒng)的I/O操作是通過(guò)CPU讀/寫(xiě)外設(shè)的寄存器和RAM來(lái)完成的,而現(xiàn)代計(jì)算機(jī)DMA技術(shù)允許外設(shè)繞開(kāi)CPU直接向內(nèi)存讀/寫(xiě)數(shù)據(jù),所以I/O虛擬化面臨以下兩個(gè)基本問(wèn)題:①讓客戶機(jī)直接訪問(wèn)到真實(shí)的I/O地址空間②讓DMA操作直接訪問(wèn)到客戶機(jī)的內(nèi)存地址空間,而Intel VT-d技術(shù)將這兩個(gè)問(wèn)題得到了較好地解決。如圖4所示。
從上述分析可以看出,采用虛擬化技術(shù)后, VMM不僅掌管著底層硬件資源,而且還為客戶機(jī)模擬出特定的硬件環(huán)境,使得客戶機(jī)的運(yùn)行不依賴(lài)于底層硬件環(huán)境?;谔摂M化技術(shù)的這一特性,可以將電子文件管理系統(tǒng)及操作系統(tǒng)安裝在虛擬機(jī)上,電子文件管理系統(tǒng)及操作系統(tǒng)通過(guò)VMM與底層硬件相互隔離,這樣無(wú)論底層硬件如何升級(jí),并不影響上層虛擬環(huán)境,電子文件管理系統(tǒng)及操作系統(tǒng)的運(yùn)行環(huán)境始終處于穩(wěn)定狀態(tài),保證了電子文件的長(zhǎng)期可靠識(shí)讀。endprint
三、虛擬化技術(shù)用于解決電子文件的存儲(chǔ)介質(zhì)脆弱性
在虛擬化環(huán)境中,由于VMM對(duì)底層硬件資源整合成計(jì)算資源池、存儲(chǔ)資源池、網(wǎng)絡(luò)資源池,個(gè)別硬件的故障并不影響整個(gè)系統(tǒng)的工作,這樣保證了電子文件的長(zhǎng)期可靠存儲(chǔ)。以虛擬化主流產(chǎn)品VMware vSphere為例,它具有如下三大項(xiàng)獨(dú)特的功能
1. vMotion。該功能可以將虛擬機(jī)從一臺(tái)物理服務(wù)器即時(shí)遷移到另一臺(tái)物理服務(wù)器。在虛擬化環(huán)境中,虛擬機(jī)的整個(gè)運(yùn)行狀態(tài)及網(wǎng)絡(luò)身份和網(wǎng)絡(luò)連接都被封裝在共享存儲(chǔ)器上的一組文件中。在遷移過(guò)程中,vMotion會(huì)自動(dòng)ping網(wǎng)絡(luò)路由器,確定虛擬MAC地址的新物理位置,保證虛擬機(jī)的精確執(zhí)行狀態(tài)、網(wǎng)絡(luò)身份和網(wǎng)絡(luò)連接快速?gòu)脑碋SX Server遷移到目標(biāo)ESX Server上(即vSphere的VMM ),而不會(huì)引起停機(jī)和網(wǎng)絡(luò)連接中斷。
2. Storage vMotion。運(yùn)用vMotion遷移虛擬機(jī),要求在共享存儲(chǔ)上進(jìn)行。而Storage vMotion功能則可以將運(yùn)行中的虛擬機(jī)的磁盤(pán)存儲(chǔ)從一個(gè)數(shù)據(jù)存儲(chǔ)器中遷移到另一個(gè)數(shù)據(jù)存儲(chǔ)器中,如圖5所示。
3.高可用性HA( High Availability)。該功能可將多臺(tái)運(yùn)行ESXi的物理服務(wù)器組織起來(lái),構(gòu)建一個(gè)虛擬化集群,形成一個(gè)大的資源池,包括處理器資源池、存儲(chǔ)資源池、網(wǎng)絡(luò)資源池,集群中的虛擬機(jī)可在集群中的任意服務(wù)器上自由移動(dòng),集群中某臺(tái)服務(wù)器出現(xiàn)故障時(shí),該臺(tái)服務(wù)器上運(yùn)行的虛擬機(jī)可被自動(dòng)遷移至群中其他服務(wù)器上,如圖6所示。
四、基于虛擬化技術(shù)的電子文件長(zhǎng)期保存技術(shù)平臺(tái)搭建
利用虛擬化技術(shù)原理及虛擬化產(chǎn)品的技術(shù)特性,可以搭建如下的電子文件長(zhǎng)期保存技術(shù)平臺(tái),如圖7所示。
1.將操作系統(tǒng)及電子文件管理系統(tǒng)安裝在運(yùn)行了VMware vSphere的ESXi層上的虛擬機(jī)內(nèi),解決電子文件技術(shù)過(guò)時(shí)性問(wèn)題,保證電子文件長(zhǎng)期可靠識(shí)讀。
2.將兩臺(tái)或多臺(tái)服務(wù)器構(gòu)建成一個(gè)虛擬化集群,當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障,則安裝有電子文件管理系統(tǒng)及操作系統(tǒng)的客戶機(jī)則自動(dòng)在另一臺(tái)服務(wù)器中重啟,解決硬件脆弱性問(wèn)題,保證電子文件長(zhǎng)期可靠存儲(chǔ)。
3.建立遠(yuǎn)程容災(zāi)備份。綜合運(yùn)用vMotion及Storage vMotion功能,將運(yùn)行了電子文件管理系統(tǒng)和操作系統(tǒng)的客戶機(jī),整體自動(dòng)遷移至遠(yuǎn)程運(yùn)行了ESXi虛擬機(jī)中,一旦出現(xiàn)災(zāi)難,可以快速恢復(fù),實(shí)現(xiàn)服務(wù)保存。
(作者單位:蘇州市國(guó)土資源局相城分局 )endprint