齊東蘭,向 娟,杜 鑫,魏永強(qiáng),楊雨佳
(1.國家測繪地理信息局重慶測繪院,重慶 400015)
ISCSI(internet small computer system interface,網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口)是一種在TCP/IP協(xié)議網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)塊傳輸?shù)臉?biāo)準(zhǔn)[1]。其目的是用IP協(xié)議將存儲設(shè)備連接在一起,使服務(wù)器可以與使用TCP/IP網(wǎng)絡(luò)的存儲設(shè)備互相交換存儲資料[2],它包括發(fā)起端和目標(biāo)端,其工作原理是發(fā)起端將SCSI指令和數(shù)據(jù)封裝成ISCSI協(xié)議數(shù)據(jù)單元,提交給TCP,最后封裝成IP數(shù)據(jù)包在IP網(wǎng)絡(luò)上傳輸,到達(dá)目標(biāo)端后通過解封裝還原成SCSI指令和數(shù)據(jù),實(shí)現(xiàn)SCSI命令和數(shù)據(jù)在IP網(wǎng)絡(luò)上的透明傳輸。
ORACLE RAC(ORACLE real application clusters)通常稱作ORACLE真正應(yīng)用集群[3],其實(shí)質(zhì)是使位于不同服務(wù)器系統(tǒng)的ORACLE實(shí)例可以同時訪問同一個ORACLE數(shù)據(jù)庫。一個ORACLE集群由多臺服務(wù)器組成,每臺服務(wù)器是一個獨(dú)立的數(shù)據(jù)庫實(shí)例[4],用于監(jiān)聽自己的網(wǎng)絡(luò)端口;每臺服務(wù)器有自己的ORACLE RAC服務(wù),用于數(shù)據(jù)庫的集群訪問;所有的服務(wù)器通過自己的操作系統(tǒng)訪問一個共享的存儲設(shè)備,數(shù)據(jù)庫存儲在共享設(shè)備上。
GlusterFS是一個開源的分布式文件系統(tǒng),能夠利用普通的存儲設(shè)備來部署可集中管理、橫向擴(kuò)展、虛擬化的存儲池,使用單一全局命名空間來管理數(shù)據(jù),支持PB存儲容量[5],支持運(yùn)行在任何標(biāo)準(zhǔn)IP網(wǎng)絡(luò)上標(biāo)準(zhǔn)應(yīng)用程序的標(biāo)準(zhǔn)客戶端。
地理國情普查數(shù)據(jù)量大,如何有效進(jìn)行管理,是必須考慮的問題。本文利用計(jì)算資源、網(wǎng)絡(luò)資源、存儲資源等構(gòu)建數(shù)據(jù)庫服務(wù)器集群和文件服務(wù)器集群,提供分布式存儲環(huán)境。在數(shù)據(jù)庫服務(wù)器集群和文件服務(wù)器集群上結(jié)合ISCSI技術(shù),搭建ORACLE RAC數(shù)據(jù)庫和分布式文件系統(tǒng),其架構(gòu)如圖1所示。根據(jù)《第一次全國地理國情普查數(shù)據(jù)庫建設(shè)技術(shù)設(shè)計(jì)》的要求,將地理國情普查的地表覆蓋、地理國情要素及其元數(shù)據(jù)等矢量數(shù)據(jù)存儲于ORACLE RAC數(shù)據(jù)庫中,地形地貌數(shù)據(jù)、遙感影像數(shù)據(jù)、遙感影像解譯樣本數(shù)據(jù)等存放在分布式文件系統(tǒng)中,實(shí)現(xiàn)海量地理國情普查數(shù)據(jù)的分布式管理,然后驗(yàn)證使用ISCSI構(gòu)建的存儲環(huán)境能夠滿足海量地理國情普查數(shù)據(jù)的存儲和讀??;最后通過對比驗(yàn)證基于ISCSI的分布式管理和普通管理方式在數(shù)據(jù)存儲和負(fù)載均衡方面的性能。
圖1 分布式存儲架構(gòu)
2.2.1 基于ISCSI的ORACLE RAC數(shù)據(jù)庫
使用相同配置的兩臺服務(wù)器部署ORACLE RAC集群,集群節(jié)點(diǎn)同時作為數(shù)據(jù)存儲服務(wù)器,其配置信息如表1所示?;贗SCSI將服務(wù)器上的存儲資源通過網(wǎng)絡(luò)輸送到所有ORACLE RAC節(jié)點(diǎn),再利用ORACLE 的 ASM[6](automatic storage management,自動存儲管理)將這兩臺服務(wù)器上的存儲資源創(chuàng)建成共享存儲來管理地理國情普查數(shù)據(jù),集群內(nèi)部實(shí)現(xiàn)分布式存儲設(shè)備的維護(hù)。
表1 ORACLE RAC配置信息表
構(gòu)建過程如下:
1)整體部署,包括硬件和軟件環(huán)境部署,如表1。
2)配置公共網(wǎng)絡(luò)和專用網(wǎng)絡(luò)。
3)基于ISCSI配置共享存儲。在網(wǎng)絡(luò)協(xié)議的基礎(chǔ)上,在集群節(jié)點(diǎn)上配置好ISCSI協(xié)議并添加ISCSI虛擬磁盤,啟動ISCSI發(fā)起程序,連接至虛擬磁盤,從而綁定磁盤,實(shí)現(xiàn)磁盤的本地使用,再配置成共享存儲。
4)安裝集群軟件和數(shù)據(jù)庫。
5)配置客戶端連接ORACLE RAC。
2.2.2 基于ISCSI的GlusterFS分布式文件系統(tǒng)
在GlusterFS中將服務(wù)器上剩余的存儲空間使用ISCSI技術(shù)虛擬發(fā)布成網(wǎng)絡(luò)存儲設(shè)備,并加載多個網(wǎng)絡(luò)存儲設(shè)備和本地存儲設(shè)備,采用兩臺配置信息如表1的服務(wù)器,搭建分布式文件系統(tǒng)環(huán)境。其構(gòu)建過程如下:
1)將服務(wù)器上的空閑存儲資源以虛擬ISCSI Target服務(wù)的方式發(fā)布出來,形成私有的存儲區(qū)域網(wǎng)絡(luò)SAN。
2)在5臺存儲服務(wù)器上分別安裝GlusterFS,創(chuàng)建GlusterFS集群,各臺服務(wù)器上使用GlusterFS將ISCSI存儲設(shè)備或本地存儲掛載為數(shù)據(jù)塊并納入管理。
3)配置多個節(jié)點(diǎn)的數(shù)據(jù)存儲數(shù)據(jù)塊融合成組,合并創(chuàng)建成大容量的網(wǎng)絡(luò)存儲卷,在網(wǎng)絡(luò)上形成NAS存儲網(wǎng)絡(luò)。
4)主服務(wù)器節(jié)點(diǎn),通過掛載分布式集群創(chuàng)建的NAS卷,使用Samba(Linux下的文件共享服務(wù)軟件)為選定的目錄建立網(wǎng)絡(luò)共享,將NAS卷的存儲空間提供出來,供網(wǎng)絡(luò)內(nèi)的其他服務(wù)器進(jìn)行共享訪問。
選用一臺配置為Intel(R) Core(TM)i5-2400、內(nèi)存為4 GB、操作系統(tǒng)為Windows 7的臺式機(jī)作為客戶端,以某地地理國情普查成果數(shù)據(jù)為實(shí)驗(yàn)數(shù)據(jù),分別對本文提出的分布式存儲與普通集中式管理方式進(jìn)行了存儲效率和負(fù)載均衡性能的測試。
2.3.1 存儲效率性能測試
1)選取記錄數(shù)目分別為3萬條、10萬條和100萬條的地理國情普查矢量數(shù)據(jù),其對應(yīng)的數(shù)據(jù)大小分別是50 M、200 M、1 000 M,比較導(dǎo)入基于ISCSI的ORACLE RAC數(shù)據(jù)庫和ORACLE數(shù)據(jù)庫的耗時,從ORACLE數(shù)據(jù)庫中查詢分別需要70 s、185 s和354 s;基于ISCSI的ORACLE RAC數(shù)據(jù)庫查詢分別需要31 s、93 s和159 s,其效率提高2.3倍,如圖2所示。
2)選取數(shù)據(jù)量分別為0.1TB、1TB、5TB的地理國情普查影像數(shù)據(jù),比較導(dǎo)入基于ISCSI的分布式文件系統(tǒng)和普通文件系統(tǒng)的耗時,導(dǎo)入普通文件系統(tǒng)分別需要4min、360min和1 800min;導(dǎo)入基于ISCSI的分布式文件系統(tǒng)分別需要2min、240min和1 200min,其效率提高1.5倍,如圖2所示。
圖2 存儲性能測試
從圖2可以明顯看到,基于本文提出的分布式存儲方式具有優(yōu)勢,存儲效率高于普通的數(shù)據(jù)管理方式。
2.3.2 負(fù)載均衡性能測試
在ORACLE RAC集群上,首先關(guān)閉節(jié)點(diǎn)1上的數(shù)據(jù)庫實(shí)例,在節(jié)點(diǎn)2上頻繁執(zhí)行查詢操作,節(jié)點(diǎn)2的大量資源被占用,CPU利用率迅速升高,達(dá)到90%;再啟動節(jié)點(diǎn)1上的數(shù)據(jù)庫實(shí)例,此時節(jié)點(diǎn)1的CPU利用率升高到46%左右,節(jié)點(diǎn)2的CPU利用率降低到55%左右,幾分鐘之后兩個節(jié)點(diǎn)的CPU利用率都保持在20%左右,如圖3所示。
圖3 ORACLE RAC集群CPU使用情況
通過測試驗(yàn)證,當(dāng)集群某一節(jié)點(diǎn)的負(fù)載過高,而其他節(jié)點(diǎn)負(fù)載較小時,將請求分配給當(dāng)前負(fù)載較小的節(jié)點(diǎn)上,從而實(shí)現(xiàn)數(shù)據(jù)交互的均衡分配。
在反復(fù)的驗(yàn)證測試中,最終得出結(jié)論,基于ISCSI的ORACLE RAC數(shù)據(jù)庫和分布式文件系統(tǒng)完全可以應(yīng)用于地理國情普查數(shù)據(jù)的管理,且具有硬件成本低、存儲效率高、負(fù)載能力強(qiáng)等優(yōu)勢。
深入研究了利用ISCSI技術(shù)構(gòu)建的ORACLE RAC集群來管理地理國情普查數(shù)據(jù),將數(shù)據(jù)分散地存儲在多個普通的存儲物理設(shè)備上,降低了硬件成本,實(shí)現(xiàn)了數(shù)據(jù)的高并發(fā)讀寫和海量數(shù)據(jù)存儲,提高了系統(tǒng)的響應(yīng)效率,并且系統(tǒng)具備靈活的分布式體系結(jié)構(gòu),支持橫向伸縮;即便隨著地理國情普查后續(xù)工作的推進(jìn)造成數(shù)據(jù)量的幾何級增長,也可以無縫擴(kuò)展該存儲系統(tǒng)以滿足需求。