摘 要:本文通過分析文件緩存服務(wù)器和虛擬光盤庫的技術(shù)優(yōu)勢,結(jié)合光盤庫系統(tǒng)的實際應(yīng)用,給出了高訪問性能的光盤庫系統(tǒng)解決方案。
關(guān)鍵詞:二級緩存;緩存服務(wù)器;虛擬光盤庫
中圖分類號:TP333.4
隨著科學(xué)技術(shù)的不斷發(fā)展,人們所接觸到的數(shù)據(jù)量越來越大,對數(shù)據(jù)的存取訪問也提出了越來越高的要求,數(shù)據(jù)存儲系統(tǒng)的存儲容量、存取速度、安全性、可靠性等都是十分重要的。光盤庫系統(tǒng)作為一種海量存儲方式,因為大容量、高安全性、高可靠性的特點而被廣泛應(yīng)用。
光盤庫一般配置有1~6臺CD-ROM驅(qū)動器,可容納100~600片CD- ROM光盤。用戶訪問光盤庫時,自動換盤機(jī)構(gòu)首先將CD-ROM驅(qū)動器中光盤取出并放置到盤架上的指定位置,然后再從盤架中取出所需的CD-ROM光盤并送入CD-ROM驅(qū)動器中。由于自動換盤機(jī)構(gòu)的換盤時間通常在秒量級[1],因此光盤庫的訪問速度較低,本文對此提出了特有的解決方案。
1 二級緩存系統(tǒng)總體架構(gòu)
對系統(tǒng)的高性能需求意味著高成本的投入,而在實際使用中,并不是所有的文件都需要提供高性能訪問的,根據(jù)20/80原則,只需要提供20%左右文件的高速訪問即可。如果利用磁盤存取性能高于光盤庫的特點,將光盤庫中訪問頻率較高的部分?jǐn)?shù)據(jù)保存在磁盤中,并對外提供存取服務(wù),則可以在占用較小的磁盤空間的代價下,通過磁盤中的數(shù)據(jù)服務(wù)大部分的數(shù)據(jù)請求,減少對光盤驅(qū)動器和機(jī)械手的操作,縮短請求等待時間,提供較好的用戶體驗。
因此系統(tǒng)考慮將文件和數(shù)據(jù)光盤存儲在硬盤上,使用廉價的文件服務(wù)器提供高頻文件的訪問,使用相對成本較高的虛擬光盤庫提供對中頻文件的訪問,使用成本最為低廉的光盤庫提供對低頻文件的訪問并作為所有文件的永久存儲。關(guān)鍵技術(shù)如下:
(1)參考虛擬光盤庫的用法[2],在光盤庫系統(tǒng)中增加一個由高速磁盤或者高速磁盤陣列所組成的虛擬光盤庫來提高光盤庫的存取速度。虛擬光盤庫將光盤片上的應(yīng)用軟件和資料,壓縮存放在硬盤上,并產(chǎn)生一個虛擬光盤圖標(biāo),之后不再需要此片光盤便可執(zhí)行。使用時無需將光盤放入光驅(qū)中,也不用找尋光盤片,更不需要等待光驅(qū)的緩慢激活,只需加載虛擬光盤,就可以提供硬盤級的速度訪問光盤數(shù)據(jù)。
(2)參考虛擬服務(wù)器的用法[3],在光盤庫系統(tǒng)前置多臺文件服務(wù)器,提供文件緩存訪問機(jī)制。文件服務(wù)器可以將最近訪問的文件緩存在本地硬盤中,直接提供本地訪問;對于不在本地的文件,則將請求前轉(zhuǎn)到虛擬光盤庫。由于文件服務(wù)器提供了分布式訪問能力,可以大大提高并發(fā)訪問速度。
本文給出的系統(tǒng)總體架構(gòu)如下:
客戶端:訪問時以文件名稱按照給定的HASH規(guī)則計算對應(yīng)的文件緩存服務(wù)器,向該文件緩存服務(wù)器發(fā)送文件訪問請求。如果客戶端訪問量大,則可以增加文件緩存服務(wù)器數(shù)量,調(diào)整文件HASH規(guī)則,以提供更高訪問性能。
文件緩存服務(wù)器:收到客戶端的文件訪問請求后,首先根據(jù)Cache模塊中保存的文件Cache隊列定位有無存在對應(yīng)的文件,如果文件存在,則讀取對應(yīng)文件內(nèi)容并返回響應(yīng)給客戶端;如果文件不存在,則說明本地?zé)o文件,則將請求轉(zhuǎn)發(fā)到虛擬光盤庫服務(wù)器。文件傳輸模塊收到文件傳輸請求后,接收文件保存到本地,并通知Cache模塊更新文件訪問信息。
虛擬光盤庫服務(wù)器:收到文件訪問請求后,調(diào)用鏡像管理模塊提供的文件訪問服務(wù)。鏡像管理模塊讀取數(shù)據(jù)庫中保存的文件存儲信息,如果文件在本地有鏡像,則讀取本地鏡像中的文件,同時向?qū)?yīng)文件服務(wù)器的文件傳輸模塊發(fā)送請求,觸發(fā)該文件傳輸?shù)綄?yīng)文件服務(wù)器上;如果文件在本地沒有鏡像,則根據(jù)該文件所在的光盤庫中光盤位置信息,調(diào)用光盤庫訪問接口驅(qū)動機(jī)械手讀取對應(yīng)的數(shù)據(jù)光盤,同時觸發(fā)文件的傳輸處理。
2 文件緩存服務(wù)器實現(xiàn)
根據(jù)系統(tǒng)總體架構(gòu)設(shè)計,文件緩存服務(wù)器主要包括三個模塊:通訊模塊、Cache模塊、文件傳輸模塊,提供三個主要流程:文件訪問流程、文件傳輸流程、文件Cache流程。三個模塊的功能如下:
通訊模塊:處理各種外部消息,可以是Web請求或者自定義TCP請求,解析請求內(nèi)容,進(jìn)行相應(yīng)的流程處理。
Cache模塊:負(fù)責(zé)管理本地緩存的文件,包括磁盤管理、目錄管理、文件查找、替換、LRU隊列管理、文件訪問屬性管理等。為了避免系統(tǒng)重啟時丟失文件訪問屬性和LRU隊列,在數(shù)據(jù)庫中保存文件的訪問屬性,在重啟時根據(jù)文件訪問屬性重新生成LRU隊列。
文件傳輸模塊:負(fù)責(zé)處理虛擬光盤庫發(fā)送過來的文件傳輸請求,包括文件隊列管理、數(shù)據(jù)傳輸、差錯校驗等。
文件緩存服務(wù)器處理流程如下:
對于本地緩存表中找不到的文件,說明本地沒有文件副本,需要轉(zhuǎn)發(fā)請求到虛擬光盤服務(wù)器,收到虛擬光盤服務(wù)器的響應(yīng)后,說明文件已經(jīng)傳送到本地,此時讀取文件,返回響應(yīng)給客戶端。主要流程如下:
(1)系統(tǒng)啟動后,Cache模塊從文件訪問屬性表中讀取文件列表,根據(jù)文件訪問時間、訪問次數(shù)在內(nèi)存中生成LRU隊列。
(2)通訊模塊收到客戶端文件訪問請求后,根據(jù)請求的文件信息查找文件訪問屬性表,如果找到記錄,則說明緩存有本地文件,更新文件訪問屬性表和LRU隊列,返回本地文件給客戶端;如果沒有找到記錄,則說明本地文件缺失,轉(zhuǎn)發(fā)請求到虛擬光盤服務(wù)器。
(3)通訊模塊收到虛擬光盤服務(wù)器的文件傳輸請求后,調(diào)用Cache模塊接口判斷磁盤空間是否充裕,如果空間充裕,則接收文件;如果空間小于限額,則根據(jù)Cache模塊的LRU隊列刪除最少使用的文件以騰出空間,然后接收文件。最后向虛擬光盤服務(wù)器返回響應(yīng)。
(4)通訊模塊收到虛擬光盤服務(wù)器的文件訪問響應(yīng),則表明文件已經(jīng)傳輸?shù)轿募彺娣?wù)器,更新文件訪問屬性后,返回本地文件給客戶端。
對于文件的寫入訪問,文件緩存服務(wù)器需要通過傳輸模塊將文件發(fā)送到虛擬庫服務(wù)器上進(jìn)行處理。
3 虛擬光盤庫服務(wù)器實現(xiàn)
根據(jù)系統(tǒng)總體架構(gòu)設(shè)計,虛擬光盤服務(wù)器主要包括四個模塊:通訊模塊、鏡像管理模塊、文件傳輸模塊和光盤庫管理模塊,各個模塊的功能如下:
通訊模塊:處理各種外部消息,根據(jù)請求類型解析請求內(nèi)容,調(diào)用對應(yīng)的處理流程請求類型可以是文件緩存服務(wù)器的文件訪問請求,也可以是文件傳輸響應(yīng)等。
鏡像管理模塊:負(fù)責(zé)管理本地的光盤鏡像文件,包括磁盤管理、目錄管理、文件查找、替換、鏡像LRU隊列管理、鏡像訪問屬性管理等。為了避免系統(tǒng)重啟時丟失鏡像訪問屬性和LRU隊列,在數(shù)據(jù)庫中保存鏡像的訪問屬性,在重啟時根據(jù)鏡像訪問屬性重新生成鏡像LRU隊列。
文件傳輸模塊:負(fù)責(zé)處理鏡像管理模塊的文件傳送請求,包括文件隊列管理、數(shù)據(jù)傳輸、差錯校驗等。
光盤庫管理模塊:負(fù)責(zé)根據(jù)鏡像管理模塊的請求,驅(qū)動機(jī)械手取放光盤,然后讀取光盤內(nèi)容,或者向光盤寫入鏡像。
虛擬光盤庫服務(wù)器處理流程如下:
虛擬光盤庫文件信息表中保存了文件名稱、所在虛擬鏡像ID、所在光盤庫ID等信息,對于文件信息表中找不到的文件,說明不存在該文件。對于虛擬鏡像ID有效的文件,說明可以從本地鏡像中訪問;對于虛擬鏡像ID無效而光盤庫ID有效的文件,則說明需要從光盤庫中調(diào)取文件所在光盤,并保存到本地鏡像中。主要流程如下:
(1)系統(tǒng)啟動后,鏡像管理模塊從鏡像訪問屬性表中讀取鏡像列表,根據(jù)鏡像訪問時間、訪問次數(shù)在內(nèi)存中生成鏡像LRU隊列。
(2)通訊模塊收到文件訪問請求后,根據(jù)請求的文件查找文件信息表,如果找不到記錄,則說明系統(tǒng)無此文件,直接返回失敗。
(3)如果找到記錄且鏡像ID有效,則說明本地鏡像中有訪問的文件。
(4)如果找到記錄但鏡像ID無效,則說明本地鏡像中沒有訪問的文件,此時根據(jù)文件所在的光盤庫ID讀取光盤內(nèi)容,并替換本地鏡像。
(5)將讀取到的文件傳送到文件緩存服務(wù)器。
(6)收到文件緩存服務(wù)器文件傳送成功響應(yīng)后,通訊模塊向文件緩存服務(wù)器返回成功響應(yīng)。
對于文件的寫入訪問,流程相對復(fù)雜,鏡像管理模塊需要判斷當(dāng)前歸檔的文件總量適合刻錄光盤,則生成虛擬光盤鏡像,并調(diào)用光盤庫模塊進(jìn)行鏡像刻錄。
4 系統(tǒng)應(yīng)用
兩級Cache的性能改進(jìn)結(jié)構(gòu)提高了整個系統(tǒng)的訪問性能,對于高頻訪問的文件,可以通過多臺廉價的PC服務(wù)器提供分布式訪問來提高訪問性能,對于一般訪問的文件由于緩存在磁盤陣列上,也能提供優(yōu)于光盤庫的訪問性能。
本系統(tǒng)在實際測試和商用實踐中都取得了良好的效果,為某用戶開發(fā)的虛擬庫檔案管理系統(tǒng)滿足了日常訪問和歸檔的需求,并且可以根據(jù)訪問量進(jìn)行平滑擴(kuò)展。
考慮到廉價PC服務(wù)器磁盤有一定的故障率可能引起文件損壞,下一步考慮采用增加本地校驗和兩級校驗的方式,提高數(shù)據(jù)文件的正確性。
參考文獻(xiàn):
[1]許靜.多級存儲技術(shù)及光盤庫在實際工程中的應(yīng)用探討[J].智能建筑電氣技術(shù),2011,03.
[2]易法令,萬繼光.虛擬光盤庫數(shù)據(jù)流服務(wù)器的設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2006,07.
[3]胡秀敏,郭成城,杜曉.基于文件類型的光盤庫緩存系統(tǒng)設(shè)計與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2005,15.
作者簡介:盧云許(1975-),男,碩士,系統(tǒng)工程師,主要研究方向:大容量數(shù)據(jù)存儲管理。
作者單位:中興通訊股份有限公司,南京 210012