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