(廈門海洋學(xué)院 信息技術(shù)系,福建 廈門 361000)
網(wǎng)絡(luò)發(fā)展越發(fā)成熟,數(shù)據(jù)信息的存儲也越來越重要[1]。因此,從數(shù)據(jù)安全方面考慮,多媒體網(wǎng)絡(luò)、電子商務(wù)等在線網(wǎng)絡(luò)服務(wù)領(lǐng)域,都離不開磁盤數(shù)據(jù)在線存儲系統(tǒng)的技術(shù)支持,測試數(shù)據(jù)存儲的完整性,可有效處理存儲性能缺陷。當(dāng)前很多大型網(wǎng)絡(luò)企業(yè)和企業(yè)集團(tuán)都紛紛構(gòu)建自己的在線數(shù)據(jù)存儲中心、數(shù)據(jù)庫及存儲服務(wù)器,以保證數(shù)據(jù)服務(wù)的連續(xù)性。由此可見,數(shù)據(jù)在線存儲系統(tǒng)及存儲緩存是大數(shù)據(jù)及云計算的核心架構(gòu),能夠有效提高對在線用戶的服務(wù)體驗。目前,主流大型網(wǎng)絡(luò)的存儲緩存系統(tǒng)多基于磁盤陣列技術(shù),組成部分包括控制器和存儲磁盤陣列,并基于RAID方式對冗余數(shù)據(jù)進(jìn)行存儲[2]??刂圃詭б蕴W(wǎng)數(shù)據(jù)接口,該種連接方式可以直接接收上位機(jī)的要求,控制磁盤陣列的存儲速度和存儲方式。計算機(jī)處理器的主頻逐年升高,數(shù)據(jù)處理能力不斷增強(qiáng),要求磁盤的兼容度和數(shù)據(jù)讀寫速度與之相匹配。為實現(xiàn)這一目的中高端的磁盤控制裝置大都帶有較大的內(nèi)存,造成了大量成本的浪費和閑置。ISCSI協(xié)議的啟用實現(xiàn)了局域網(wǎng)用于與互聯(lián)網(wǎng)的對接,是以太網(wǎng)的數(shù)據(jù)存儲與傳輸變得更為迅速和便捷。各大學(xué)者對數(shù)據(jù)存儲的完整性作出了相關(guān)研究。文獻(xiàn)[3]提出一種本地?zé)o數(shù)據(jù)的ISCSI磁盤數(shù)據(jù)保護(hù)機(jī)制,通過對本地數(shù)據(jù)的預(yù)處理減少存儲數(shù)據(jù)的響應(yīng)時間,提高磁盤數(shù)據(jù)的讀寫效率,同時增加了自主保護(hù)機(jī)制,但由于未考慮存儲數(shù)據(jù)的丟幀情況,使得數(shù)據(jù)的完整性過差。文獻(xiàn)[4]提出了一種采用閃存的iSCSI存儲端融合緩存機(jī)制研究,能夠有效的完成將存儲數(shù)據(jù)動態(tài)存儲,有效減少內(nèi)存的占用,但為考慮讀寫響應(yīng)時間問題,會造成服務(wù)器處理時間過長,沒有效率。文獻(xiàn)[5]提出一種大數(shù)據(jù)存儲中數(shù)據(jù)完整性驗證結(jié)果的檢測算法研究,能夠在海量數(shù)據(jù)中提取有效信息,并對存儲數(shù)據(jù)進(jìn)行智能提出,檢測獲取數(shù)據(jù)的完整性,但這種算法十分復(fù)雜,系統(tǒng)資金損耗過大,響應(yīng)時間上優(yōu)勢不明顯,故而效果不佳。為了解決存儲過程中經(jīng)常會出現(xiàn)讀寫響應(yīng)時間過長、數(shù)據(jù)丟幀等問題。提出了ISCSI磁盤數(shù)據(jù)雙控制器存儲完整性測試技術(shù),能夠有效改善系統(tǒng)出現(xiàn)故障時的在線數(shù)據(jù)丟失現(xiàn)象。
ISCSI磁盤數(shù)據(jù)雙控制器存儲系統(tǒng)分為六大模塊,分別是為電源模塊,預(yù)警模塊,網(wǎng)絡(luò)接口模塊,控制模塊,數(shù)據(jù)采集模塊,動態(tài)存儲模塊。電源模塊為整個ISCSI磁盤數(shù)據(jù)雙控制存儲系統(tǒng)提供電量,預(yù)警模塊能夠在存儲控制系統(tǒng)內(nèi)存量不足之前就發(fā)出警報,通過數(shù)據(jù)采集模塊進(jìn)行數(shù)據(jù)采集,然后將采集到的數(shù)據(jù)經(jīng)由控制中心進(jìn)行預(yù)處理,對采集到的數(shù)據(jù)進(jìn)行去噪,然后經(jīng)由動態(tài)存儲模塊完成數(shù)據(jù)的周期性存儲,在控制中心模塊存在網(wǎng)絡(luò)接口,能夠獲得實時數(shù)據(jù),保障數(shù)據(jù)的及時性,采集到的數(shù)據(jù)通過上述模塊的處理,然后通過預(yù)警模塊輸出,完成整個ISCSI磁盤數(shù)據(jù)雙控控制存儲系統(tǒng)對數(shù)據(jù)的動態(tài)存儲。其存儲系統(tǒng)的結(jié)構(gòu)如圖1所示。
圖1 ISCSI磁盤數(shù)據(jù)雙控制器存儲系統(tǒng)結(jié)果圖
其中,動態(tài)存儲模塊主要為網(wǎng)絡(luò)用戶提供在線的存儲服務(wù),內(nèi)部功能單元包含接收接口命令、程序功能設(shè)定及工具配置參數(shù)設(shè)定。系統(tǒng)用戶層模塊接收的在線存儲命令為上位機(jī)的ISCSI指令,該模塊還負(fù)責(zé)對指令的解析、傳遞、發(fā)送及接收等,動態(tài)存儲模塊將處理完的數(shù)據(jù)返回給中心控制模塊。雙控制器存儲系統(tǒng)中心控制模塊是基于ISCSI控制器的核心模塊,在功能性方面中心控制模塊統(tǒng)籌全局,實現(xiàn)對現(xiàn)有網(wǎng)絡(luò)資源的協(xié)調(diào)與優(yōu)化配置,加快用戶的訪問速度,中心控制模塊還加速了系統(tǒng)資源共享的速率,快速、高效實現(xiàn)對ISCSI磁盤數(shù)據(jù)的交互與存儲。在市場商業(yè)化的趨勢下,基于ISCSI協(xié)議雙控制器存儲系統(tǒng)緩存,還可以實現(xiàn)對網(wǎng)絡(luò)產(chǎn)品的良性封裝,滿足不同類型客戶的差異化需求[6]。
基于ISCSI協(xié)議設(shè)計的雙控制器存儲系統(tǒng)中心控制模塊,遵循層次化的設(shè)計理念每一個具體的組成部分都具有獨立的功能,各個部分之間也存在緊密的聯(lián)系,中心控制模塊中具體包括網(wǎng)絡(luò)單元組成部分、命令解析功能、異常問題處理、緩存處理、緩存數(shù)據(jù)讀寫、同步及寫回等具體的功能。雙控制器存儲系統(tǒng)中心控制模塊設(shè)計的優(yōu)勢在于,采用了嵌入式的緩存結(jié)構(gòu)與系統(tǒng)軟件的功能性實現(xiàn)統(tǒng)一[7-8],基于Windows系統(tǒng)實現(xiàn)對塊數(shù)據(jù)、流數(shù)據(jù)及其他文件的梳理和管控。ISCSI磁盤數(shù)據(jù)讀寫環(huán)境下,雙控系統(tǒng)緩存縮短了I/O的執(zhí)行路徑,在文件系統(tǒng)與應(yīng)用路徑之間搭建了一個橋梁,釋放出軟件操作系統(tǒng)的功能。系統(tǒng)緩存數(shù)據(jù)處理模式有助釋放硬件的多線程性能,降低數(shù)據(jù)存儲中丟失的風(fēng)險,還能夠抵御惡意數(shù)據(jù)的網(wǎng)絡(luò)攻擊。
雙控制器動態(tài)存儲設(shè)計對于軟硬件冗余的處理,使用了兩個配置相同的控制元件,可以連續(xù)不斷地提供持續(xù)服務(wù)。如果一個控制部分發(fā)生故障時,備用元件可以持續(xù)提供服務(wù),避免客戶讀寫數(shù)據(jù)的丟失。在數(shù)的更新與交換時,兩個控制器同時進(jìn)行,以保證原始數(shù)據(jù)采集的同步性和一致性,兩個部分也可以同時實現(xiàn)對冗余數(shù)據(jù)的刪減與備份。ISCSI協(xié)議中也包括了IP協(xié)議,以太網(wǎng)數(shù)據(jù)同步協(xié)議等,以實現(xiàn)系統(tǒng)功能的完整性[9]。
為提高整體緩存設(shè)計的命中率,雙控制器存儲系統(tǒng)的內(nèi)存需要預(yù)留出更大的空間,在上位機(jī)系統(tǒng)啟動時可以確保系統(tǒng)資源的連續(xù)分配,而不會受到其他模塊占用資源的影響,緩存的獨立空間設(shè)計組織結(jié)構(gòu),如圖2所示。
圖2 ISCSI磁盤數(shù)據(jù)雙控制存儲緩存空間組織結(jié)構(gòu)
圖2中的陰影部分為獨立的緩存結(jié)構(gòu),其中一部分用于數(shù)據(jù)的保存,另一部分為磁盤序列提供足夠的數(shù)據(jù)空間。緩存模塊的工作流程按照windows系統(tǒng)的要求,保證數(shù)據(jù)存儲中的整數(shù)倍[10]。系統(tǒng)緩存中包括海量的數(shù)據(jù)存儲塊,為了便于數(shù)據(jù)的管理與控制,將這些塊狀數(shù)據(jù)納入總體的結(jié)構(gòu)當(dāng)中,并通過ISCSI磁盤數(shù)據(jù)讀寫協(xié)議隨時進(jìn)行數(shù)據(jù)的交互與存儲。數(shù)據(jù)體中包含了大量的結(jié)構(gòu)信息,可以判斷出是否存在臟數(shù)據(jù)、磁盤的邏輯性是否合理?;贗SCSI協(xié)議下雙控制器存儲系統(tǒng)的框架結(jié)構(gòu)設(shè)定緩存控制系統(tǒng)的完整性測試總體流程和算法實現(xiàn)流程成,為網(wǎng)絡(luò)客戶提供快速、穩(wěn)定的數(shù)據(jù)存儲和數(shù)據(jù)交互[11-12]。
設(shè)計一個具有穩(wěn)定功能性的雙控制器存儲系統(tǒng)測試模塊,可以穩(wěn)定提高系統(tǒng)的工作效率。首先,對系統(tǒng)參數(shù)進(jìn)行設(shè)定,然后系統(tǒng)初始化,通過獲取采集模塊識別出用戶的網(wǎng)絡(luò)需求,獲取數(shù)據(jù)信息,緩存中的內(nèi)容會被迅速地壓縮傳遞到主機(jī)系統(tǒng),不需要往復(fù)地進(jìn)行數(shù)據(jù)庫存儲,以減少資源的占用和系統(tǒng)耗時。ISCSI磁盤數(shù)據(jù)交互路徑下,降低了數(shù)據(jù)交互與傳輸?shù)某杀荆@時從雙控制器存儲系統(tǒng)中采集的用戶數(shù)據(jù),成功率和準(zhǔn)確率都較高;如果請求的數(shù)據(jù)系統(tǒng)數(shù)據(jù)庫緩存中不存在,那么應(yīng)用程序的識別與對接中就需要在額外拷貝一份數(shù)據(jù)之后,在釋放系統(tǒng)緩存。ISCSI雙控制器存儲系統(tǒng)緩存控制流程,如圖3所示。
圖3 雙控制器存儲系統(tǒng)完整性測試流程圖
雙控制器存儲系統(tǒng)完整性測試模塊中,不但需要檢查采集到的數(shù)據(jù)是否為冗余數(shù)據(jù),進(jìn)行去噪處理,還需要檢測系統(tǒng)緩存是否足夠,同時擁有數(shù)據(jù)處理與恢復(fù)的能力,當(dāng)系統(tǒng)緩存與數(shù)據(jù)配置文件存在不一致的情形時,應(yīng)選擇在ISCSI網(wǎng)絡(luò)磁盤中自動清除該數(shù)據(jù),并可以依據(jù)用戶的要求進(jìn)行恢復(fù)或徹底刪除。當(dāng)MIS網(wǎng)絡(luò)系統(tǒng)關(guān)閉時,雙控制器存儲系統(tǒng)緩存中的數(shù)據(jù)對象,會被上位機(jī)系統(tǒng)做序列化處理。當(dāng)網(wǎng)絡(luò)系統(tǒng)重新啟動或被強(qiáng)制啟動時,網(wǎng)絡(luò)化的存儲功能就可以降低來自與系統(tǒng)內(nèi)存的壓力,將一些不變的數(shù)據(jù)對象直接上傳的網(wǎng)絡(luò)系統(tǒng),供客戶直接的篩選和使用。而另一部關(guān)鍵數(shù)據(jù)就會暫時地停留在系統(tǒng)緩存之中,用于臨時的數(shù)據(jù)提取與交互。ISCSI協(xié)議在此過程中,可以為客戶和主機(jī)系統(tǒng)提供較為廉價的數(shù)據(jù)云存儲服務(wù),實現(xiàn)本地以太網(wǎng)與因特網(wǎng)的實時對接,在網(wǎng)絡(luò)的功能性和安全性方面也可以滿足用戶的要求。但一些Java虛擬機(jī)可能會存儲與同一臺主機(jī)或同一個局域網(wǎng)絡(luò),ISCSI磁盤數(shù)據(jù)保證了數(shù)據(jù)之間的共享性,雙控制器存儲系統(tǒng)緩存模塊基于Java語言實現(xiàn),在與系統(tǒng)、用戶之間的兼容性和適配性方面更具有優(yōu)勢。
在具體的ISCSI磁盤數(shù)據(jù)雙控制器存儲系統(tǒng)完整性測試算法方面,考慮到總體業(yè)務(wù)流程中都具有自相似的特點,系統(tǒng)緩存的這一特征可能會引起數(shù)據(jù)動態(tài)分配方式的改變,雙控制器存儲系統(tǒng)緩存預(yù)留了足夠的資源和數(shù)據(jù)存儲空間,緩存大小變化具有動態(tài)性和智能性的特點,從很大程度上節(jié)省了網(wǎng)絡(luò)用戶和上位機(jī)系統(tǒng)數(shù)據(jù)提取時間,及資源占用的空間。同時也使緩存的變化過程調(diào)整為一個動態(tài)變化的過程,具有良好的彈性和延展性,與ISCSI協(xié)議下磁盤數(shù)據(jù)的讀寫過程相一致,提高了網(wǎng)絡(luò)資源的利用率和流媒體資源的共享特性。網(wǎng)絡(luò)用戶在數(shù)據(jù)提取與資源使用中,會遇到一些突發(fā)性的狀況進(jìn)行大量占用系統(tǒng)的緩存資源,雙控制器存儲系統(tǒng)完整性測試設(shè)計從一定程度上提高了系統(tǒng)的穩(wěn)定性,即使過多的用戶使用網(wǎng)絡(luò)資源而造成信道的擁塞,雙控制器存儲系統(tǒng)完整性測試也可以保證系統(tǒng)的穩(wěn)定性和數(shù)據(jù)讀寫的流暢性,保證數(shù)據(jù)完整且不會丟失。
在完整性測試算法設(shè)計方面,本文在ISCSI磁盤數(shù)據(jù)讀寫環(huán)境下,設(shè)計的雙控制器存儲系統(tǒng)完整性測試算法采用了一種更為靈活的方式,可以在各種不同的情況下降低數(shù)據(jù)傳輸中的丟幀率。在網(wǎng)絡(luò)客戶系統(tǒng)的接收端,存在大量的緩存數(shù)據(jù)資源,基于塊數(shù)據(jù)的方式進(jìn)行存儲行為的緩沖,并在緩沖區(qū)設(shè)定了安全閾值,保留了足夠的緩存空間。在對ISCSI磁盤數(shù)據(jù)緩存控制時,需要分別對緩存隊列的長度和數(shù)據(jù)達(dá)到時間進(jìn)行估算,并通過對數(shù)據(jù)緩存資源的配置與釋放達(dá)到控制數(shù)據(jù)傳輸針對和縮短數(shù)據(jù)存儲相應(yīng)時間的目的。如果設(shè)雙控制器存儲系統(tǒng)中緩存數(shù)據(jù)隊列長度為d1,這種緩存狀態(tài)會決定數(shù)據(jù)上溢的程度:
d1=t[v(t+1)-Fmax]+n
(1)
其中:t為數(shù)據(jù)采集模塊采樣的間隔時間、v網(wǎng)絡(luò)數(shù)據(jù)流到達(dá)緩存的速度、Fmax為緩存數(shù)據(jù)的最大溢出量、n緩存最大的容忍幀數(shù)。如果設(shè)定緩存區(qū)中數(shù)據(jù)長度的安全閾值為d2,如果d1 圖4 雙控制器存儲動態(tài)緩存示意圖 ISCSI磁盤數(shù)據(jù)緩存控制業(yè)務(wù)數(shù)據(jù)在網(wǎng)絡(luò)傳輸和交互中呈現(xiàn)出自相似模式,要分別對緩存區(qū)和非緩存區(qū)數(shù)據(jù)的隊列的到達(dá)速度進(jìn)行準(zhǔn)確估計,基于冪率滑動平均算法估算的數(shù)據(jù)緩存速度v可以表示為: (2) 其中:參數(shù)β是與自相關(guān)系數(shù)ξ相關(guān)的變量,如果β不斷增大,表明數(shù)據(jù)緩存的速度增加;如果參數(shù)β不斷縮小,則證明數(shù)據(jù)緩存的速率不斷地降低。測試完整性的過程中,如果兩者的比例關(guān)系為3:2時,為最優(yōu)狀態(tài):此時公式(2)可以轉(zhuǎn)化為: (3) 由此完成了ISCSI磁盤雙控制器存儲系統(tǒng)的完整性測試,確保數(shù)據(jù)存儲的高響應(yīng)時間以及高精度。 ISCSI磁盤雙控制器存儲系統(tǒng)緩存模塊的測試仿真在windows10環(huán)境下運行,存儲器的詳細(xì)配置參數(shù)如下:處理器Intel Core i7、RAM16G、Windows ISCSI發(fā)起程序。為保證系統(tǒng)緩存的服務(wù)性能,將產(chǎn)生的虛擬用戶訪問量,在另外一臺獨立的計算機(jī)上運行和監(jiān)控。首先使用Lasdrunner中的VUG錄制系統(tǒng)腳本并構(gòu)建虛擬網(wǎng)絡(luò)用戶。 對緩存的運行場景設(shè)置,要與用戶的網(wǎng)絡(luò)使用習(xí)慣向匹配,采用特定時間段相繼登錄的模式,虛擬用戶使用量的設(shè)定為120。在相同的測試環(huán)境下采用相同測試工具對比了所提應(yīng)用完整性測試技術(shù)的存儲系統(tǒng)與傳統(tǒng)基于預(yù)留資源的ISCSI磁盤數(shù)據(jù)雙控制器存儲系統(tǒng)在響應(yīng)時間和丟幀率方面的表現(xiàn)。 對于網(wǎng)絡(luò)用戶而言,系統(tǒng)存儲的響應(yīng)速度具有決定性的意義,本文從數(shù)據(jù)讀寫響應(yīng)時間研究上述兩種不同存儲控制設(shè)計的性能表現(xiàn),進(jìn)行了十組仿真實驗,采用的實驗數(shù)據(jù)如圖5所示。 圖5 系統(tǒng)存儲讀寫響應(yīng)速度 由圖5分析可知,傳統(tǒng)方法的響應(yīng)時間明顯高于本文存儲系統(tǒng),同時本文存儲系統(tǒng)響應(yīng)時間一直很穩(wěn)定,沒有常出現(xiàn)傳統(tǒng)系統(tǒng)。由此可以看出,加入完整性測試的所提系統(tǒng)提高了整體的讀寫效率,降低了系統(tǒng)采樣時間。 磁盤數(shù)據(jù)傳輸和使用中,用戶關(guān)注的另一個重點問題是數(shù)據(jù)的丟幀率,這也是保證用戶流暢使用存儲功能的前提條件之一。因此本文比較存儲設(shè)計與傳統(tǒng)設(shè)計在數(shù)據(jù)丟幀率方面的對比結(jié)果,總體的變化趨勢如圖6所示。 圖6 兩種控制系統(tǒng)設(shè)計的丟幀率對比 由于數(shù)據(jù)突發(fā)而占用了系統(tǒng)中的一部分內(nèi)存,進(jìn)而導(dǎo)致數(shù)據(jù)丟幀率增加,而文中的雙控存儲控制設(shè)計能夠起到有效的緩解作用。傳統(tǒng)單控控制算法在數(shù)據(jù)長度和速度控制上不具備優(yōu)勢,增加了用戶數(shù)據(jù)的丟幀現(xiàn)象,如圖6所示,在相同的ISCSI磁盤數(shù)據(jù)讀寫時間點,文中算法的丟幀率0.05%之內(nèi);而反觀傳統(tǒng)控制設(shè)計,最高的丟幀率出現(xiàn)在1.0s時間點,數(shù)據(jù)丟幀率達(dá)到了0.20%。由于網(wǎng)絡(luò)持續(xù)突發(fā)中,對于隊列的長度和數(shù)據(jù)的讀寫速度都會有很高的要求,如果存儲系統(tǒng)的性能無法滿足具體的要求,就會出現(xiàn)較大的丟幀率。實驗結(jié)果表明,所提控制系統(tǒng)在加入了完整性測試技術(shù)后,系統(tǒng)響應(yīng)時間和數(shù)據(jù)丟幀率控制方面都具有一定優(yōu)勢,得到了更好的控制結(jié)果。 為改善當(dāng)前測試ISCSI磁盤數(shù)據(jù)雙控制器存儲時存在的響應(yīng)速度慢、測試誤差較大等缺陷,在磁盤數(shù)據(jù)雙控制器系統(tǒng)設(shè)計中,加入了完整性測試技術(shù),確保數(shù)據(jù)存儲的準(zhǔn)確性。本文設(shè)計了整體的ISCSI磁盤數(shù)據(jù)雙控制器存儲完整性測試系統(tǒng)框架,提出磁盤數(shù)據(jù)雙控存儲系統(tǒng)具體控制算法。實驗數(shù)據(jù)結(jié)果表明,所提控制算法存儲系統(tǒng)響應(yīng)時間降低,能夠有效測試數(shù)據(jù)存儲完整性,并降低存儲系統(tǒng)數(shù)據(jù)的整體丟幀率。3 實驗結(jié)果與分析
3.1 測試環(huán)境搭建
3.2 系統(tǒng)存儲的響應(yīng)時間
3.3 丟幀率對比
4 結(jié)束語