国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于Windows操作系統(tǒng)的存儲虛擬化在線擴展技術

2017-06-29 12:00王大鵬
計算機應用與軟件 2017年5期
關鍵詞:存儲系統(tǒng)磁盤條帶

王大鵬 劉 飛 王 建

1(遼寧師范大學計算機與信息技術學院 遼寧 大連 116081)2(大連醫(yī)科大學現(xiàn)代教育技術中心 遼寧 大連 116044)

一種基于Windows操作系統(tǒng)的存儲虛擬化在線擴展技術

王大鵬1劉 飛2*王 建2

1(遼寧師范大學計算機與信息技術學院 遼寧 大連 116081)2(大連醫(yī)科大學現(xiàn)代教育技術中心 遼寧 大連 116044)

云計算、大數(shù)據(jù)等傳統(tǒng)應用系統(tǒng)中的存儲系統(tǒng)往往以虛擬化的形式運行在開源的Linux平臺上,隨著存儲虛擬化技術不斷成熟并向多元化發(fā)展 ,用戶同樣需要基于Windows平臺的存儲虛擬化服務。針對這些需求,提出一種基于Windows操作系統(tǒng)平臺提供存儲虛擬化服務的軟件,可實現(xiàn)在Windows操作系統(tǒng)中創(chuàng)建虛擬的本地磁盤供用戶使用,磁盤中的數(shù)據(jù)以條帶化的形式平均分布在底層各個物理磁盤上。該軟件基于海量存儲網(wǎng)絡系統(tǒng)TH-MSNS,在存儲區(qū)域網(wǎng)SAN環(huán)境中為用戶提供虛擬磁盤服務并支持在線容量擴展。通過測試后證明,條帶卷在進行在線擴展時可以保證前臺應用不中斷,并且能夠快速準確地完成大規(guī)模的數(shù)據(jù)遷移。當用戶需要擴充虛擬磁盤的容量時,使用此項技術既可保證虛擬磁盤的可靠性又可提高擴容之后的讀寫性能。

存儲虛擬化 存儲區(qū)域網(wǎng) 在線擴展

0 引 言

當前信息技術在各項科研領域中均發(fā)揮著重要作用,在處理大規(guī)模數(shù)據(jù)應用時往往考慮使用云計算技術,而自身的存儲系統(tǒng)服務質(zhì)量直接影響著海量數(shù)據(jù)的高效流轉、數(shù)據(jù)挖掘的精準定位等應用。面對科研工作中越發(fā)龐大復雜的大數(shù)據(jù)應用,在選擇存儲系統(tǒng)結構時可以考慮使用帶外結構的存儲區(qū)域網(wǎng)SAN,利用異構的底層設備與高速網(wǎng)絡相結合,將數(shù)據(jù)流與控制流相分離,此舉可以減少管理節(jié)點的帶寬壓力并大幅提高數(shù)據(jù)傳輸效率。

云數(shù)據(jù)中心作為科研工作當中的重要依托,以存儲虛擬化系統(tǒng)作為主要的底層存儲環(huán)境。利用SAN的優(yōu)勢,可將原有存儲設備融合到新的存儲系統(tǒng)中來,通過統(tǒng)一的元數(shù)據(jù)服務器集中管理所有物理磁盤,達到將磁盤資源高度整合并合理高效利用的目的;在需要對虛擬磁盤進行容量擴展時,如何實現(xiàn)透明化的磁盤擴容,從而保證前端應用不受影響就顯得十分重要。在實際使用過程中,Linux系統(tǒng)的局限性已逐漸體現(xiàn)出來,而Windows系統(tǒng)仍然是當今應用最為廣泛的操作系統(tǒng),正是基于這個需求,本文提出了基于SAN環(huán)境,可應用于Windows操作系統(tǒng)的存儲虛擬化軟件VA(Virtualization Agent)。該軟件作為存儲虛擬化系統(tǒng)TH-MSNS[1]的一部分,能夠在Windows系統(tǒng)中形成一個虛擬的盤符,數(shù)據(jù)以條帶的方式分布在底層物理磁盤。利用帶外結構的優(yōu)勢[1],通過高速網(wǎng)絡完成數(shù)據(jù)從應用層到底層的傳輸。在虛擬磁盤由于空間所限需要容量擴展時,利用條帶卷在線擴展技術,可以實時地完成大規(guī)模數(shù)據(jù)遷移,并同時擴展虛擬磁盤的容量和性能。擴展的同時還能保證業(yè)務不中斷并保證數(shù)據(jù)的完整性。

1 相關工作

當前,Windows操作系統(tǒng)仍然是市場主流,在云計算、大數(shù)據(jù)應用越發(fā)廣泛應用的背景下,眾多的科研工作者在處理數(shù)量與日俱增且體積越發(fā)龐大的海量數(shù)據(jù)時同樣需要使用海量存儲系統(tǒng),但之前的此類應用大多基于Linux系統(tǒng),因此迫切需要在Windows平臺上找到使用存儲系統(tǒng)的辦法。近年來,隨著技術的不斷發(fā)展,成本的不斷降低,大家對存儲虛擬化技術的認知度也越來越高,對存儲虛擬化系統(tǒng)的諸多特性,特別是實用性、可靠性、節(jié)能等方面的需求也越來越多。

目前市面上,IBM、EMC、HP等主流廠商的存儲虛擬化產(chǎn)品,經(jīng)過長期的研發(fā)和實踐,確實積累出各自獨特的技術優(yōu)勢,但也存在一些例如兼容性差,操作繁瑣等缺陷,在實際使用過程尤為明顯。硬件方面過于依賴單一廠商、單獨品牌的磁盤設備,各自廠商的虛擬化產(chǎn)品各行其道,必須使用專用的存儲虛擬化軟件與專門的磁盤驅動程序相配合才能正常工作。單一型號的存儲控制器只能配套安裝指定型號的磁盤陣列,若要進行升級必須控制器和陣列同時更新,利舊困難,容易造成硬件資源的嚴重浪費。長此以往不利于用戶對存儲系統(tǒng)的后續(xù)升級,從長遠考慮,對用戶整個存儲虛擬化系統(tǒng)的可持續(xù)發(fā)展都極為不利。

本文提出的基于Windows平臺的存儲虛擬化軟件VA可以有效地避免上述情況的發(fā)生。因為在使用過程中,TH-MSNS具備良好的兼容性和擴展性,能夠兼容和整合原有設備上的物理磁盤和HBA卡,提高虛擬存儲系統(tǒng)升級后整體的可用性。虛擬磁盤服務和相關的基本功能都在Windows操作系統(tǒng)的內(nèi)核態(tài)實現(xiàn),因此不存在硬件兼容性差導致資源不可用的問題。當用戶需要對現(xiàn)有存儲系統(tǒng)進行擴展時,無論Windows中的本地磁盤還是存儲系統(tǒng)本身,都不必考慮現(xiàn)有環(huán)境中的磁盤屬性,直接將新購入的磁盤陣列并入到當前系統(tǒng)中,并在軟件中實現(xiàn)盤符的擴容。這樣用戶在購買新的存儲設備時就有了更多的選擇,不必受單一品牌限制,減少了額外的購置成本。

2 設計與實現(xiàn)

2.1 系統(tǒng)架構設計

VA主要由三大部分組成,如圖1所示:用戶態(tài)的通信模塊(AUI)、內(nèi)核態(tài)的驅動模塊(MAGICDISK)以及與元數(shù)據(jù)服務器的通信模塊。AUI作為用戶使用虛擬磁盤的入口,負責系統(tǒng)的啟動與關閉,連接應用層與底層設備的通信;MAGICDISK模塊作為虛擬磁盤的驅動程序,工作在Windows系統(tǒng)內(nèi)核的驅動棧中間層,虛擬磁盤的創(chuàng)建與部署、 I/O訪問從邏輯卷到物理磁盤的地址映射,以及實現(xiàn)虛擬磁盤的各種額外功能都由MAGICDISK模塊負責完成。通信模塊負責轉發(fā)來自元數(shù)據(jù)服務器MDS(Meta Data Server)的各項功能指令,并將執(zhí)行結果實時反饋[2]。

圖1 系統(tǒng)架構設計

作為虛擬磁盤的核心部分,MAGICDISK模塊與Windows內(nèi)核態(tài)當中的掛載管理器(Mount Manager)、I/O管理器以及I/O系統(tǒng)服務相配合。當元數(shù)據(jù)服務器發(fā)出指令后,可在Windows系統(tǒng)中建立一塊虛擬磁盤并將其掛載到指定的盤符上,整個過程對用戶完全透明,用戶無需考慮該盤符所在的磁盤設備的具體屬性,所有與底層磁盤有關的操作全部在驅動程序中完成。AUI是基于C++開發(fā)的圖形界面軟件,負責在SAN環(huán)境下從元數(shù)據(jù)服務器接收存儲虛擬化指令并向下轉發(fā)到內(nèi)核態(tài),包括虛擬磁盤到物理磁盤的地址映射表以及其他相關的配置信息等。將接收到的所有指令通過IOCTL機制轉發(fā)到MAGICDISK模塊,并將底層設備的執(zhí)行結果實時向上反饋,通過用戶態(tài)和內(nèi)核態(tài)同時確認的有效機制確保數(shù)據(jù)和服務的完整性。此外還可以實時監(jiān)控當前虛擬磁盤的性能指標。

2.2 通信機制簡介

用戶在虛擬盤符上的每一步操作都會產(chǎn)生一個新的I/O請求,在Windows系統(tǒng)中,這些I/O請求都是以IRP(I/O Request Packet)的形式存在的,實際上任何Windows系統(tǒng)驅動程序的編寫都是圍繞著IRP進行的。虛擬磁盤上運行的應用程序都來自用戶態(tài),在發(fā)出I/O請求后再由Windows內(nèi)核態(tài)打包成IRP的形式交給驅動程序處理。在MAGICDISK模塊中,要將新生成IRP進行從邏輯到物理的地址映射,并將處理結果發(fā)回給MDS。在IRP結構中設有專門的數(shù)據(jù)緩存區(qū),用來存放指令交互過程中的邏輯地址映射信息,將本次請求的地址信息歸納成一份完整的地址映射表。這樣下次訪問同樣的地址空間時就可以直接從緩存中讀取相應的地址[3]。在此過程中,由用戶態(tài)的AUI模塊新建一個專用線程負責指令的交互。虛擬磁盤中I/O的通信流程如圖2所示。

圖2 通信機制

當用戶態(tài)發(fā)出I/O請求后,首先由AUI模塊負責接收,同時把請求的邏輯地址和相關配置信息寫入IRP緩存區(qū),為保證數(shù)據(jù)正確性,此時會將這段邏輯地址置為等待狀態(tài),類似于暫時凍結這段邏輯地址的所有屬性,鑒于現(xiàn)在CPU的運算速度極快,這段時間可以忽略不計。然后MAGICDISK模塊從IRP緩存區(qū)中讀取請求的邏輯地址和映射表,完成邏輯地址到物理地址的映射關系。無論是數(shù)據(jù)更改還是映射表更改,都會先由AUI從MDS接收當前的映射表,再更新IRP的緩存區(qū),通過IOCTL機制向下發(fā)送給MAGICDISK模塊。讀取映射表后,還需要經(jīng)過校驗,確保本次映射操作的準確性,驗證無誤后方可完成本次映射,再使用IOCTL將正確的結果發(fā)回MDS。

2.3 工作原理分析

傳統(tǒng)的邏輯卷普遍采用串行I/O的方式,線性劃分存儲空間,在容量和性能上都存在局限性。條帶化的邏輯卷采用并行I/O,如圖3所示,分段劃分磁盤空間,類似RAID 0。條帶化是指在存儲虛擬化系統(tǒng)中,將一塊虛擬磁盤中所有數(shù)據(jù)所在的邏輯地址段分塊,以條帶的方式,按一定順序劃分到若干個物理磁盤上,實現(xiàn)在同一時刻,從多個物理磁盤上并發(fā)讀寫數(shù)據(jù)。采用這種方法能夠明顯提高磁頭的尋道效率和I/O的吞吐率[4]。較之傳統(tǒng)邏輯卷的串行I/O,在大規(guī)模的數(shù)據(jù)運算過程中,條帶卷的并行I/O能夠大幅地提高讀寫性能。

圖3 條帶卷與傳統(tǒng)的邏輯卷結構對比

對于每一次地址映射,每當用戶態(tài)的I/O請求傳遞到驅動程序時,首先將IRP以條帶化的形式進行拆分[5]。在請求的首尾邏輯地址范圍內(nèi),以條帶數(shù)為單位,先將主IRP拆分成幾個子IRP,這些子IRP由鏈表READ_SPLIT_LIST統(tǒng)一維護。在該結構中,等待列表(pendinglist)負責訪問控制,將待處理的IRP掛起;環(huán)鎖開關(spinlock)負責維護數(shù)據(jù)一致性;完成列表(completelist)負責保存子IRP的計算結果。MAGICDISK從子IRP中獲取拆分后的邏輯起始地址和映射長度。在映射表中,用Area域表示底層物理磁盤信息,子IRP分別負責在各自的Area域完成邏輯地址向磁盤扇區(qū)的地址映射操作[6]。子IRP每完成一個映射,完成列表completlist就遞增,相應的等待列表pendinglist就遞減。最后,所有子IRP都完成映射后,釋放READ_SPLIT_LIST鏈表,同時將計算結果返回父IRP,至此完成本次I/O請求。條帶卷的并行I/O處理流程如圖4所示。

圖4 條帶卷的并行I/O處理流程

2.4 在線擴展技術的具體實現(xiàn)

存儲虛擬化本身具備靈活的空間擴展功能,結合Windows系統(tǒng)的磁盤工具可以很方便地對盤符進行擴展。當需要擴充條帶卷的容量時,需要將部分數(shù)據(jù)從原有的條帶遷移到新的條帶中去,在此過程中,由VA與MDS進行數(shù)據(jù)交互來保證服務不中斷。通過“寫時請求”的方法,實現(xiàn)數(shù)據(jù)遷移和I/O訪問同時完成[7]。條帶數(shù)增加后,虛擬磁盤在容量上得到了擴展,I/O帶寬的增加提高了磁盤的性能,條帶上數(shù)據(jù)的重新分布也隨即完成[8]。

條帶卷在線擴展技術的具體實現(xiàn)過程如圖5所示。在數(shù)據(jù)遷移的過程中用模式切換的方法來保證數(shù)據(jù)的一致性。在擴展指令發(fā)出以前,即平常狀態(tài)下,MAGICDISK模塊保存一份原始的虛擬磁盤總體映射表,用戶態(tài)的I/O訪問都通過該表完成地址映射,這里稱為CACHE模式。

圖5 在線擴展技術的具體實現(xiàn)過程

當條帶卷需要在線擴展操作時,首先由MDS發(fā)出擴展指令,由于涉及到數(shù)據(jù)的重新分布,當新的I/O到來時,MAGICDISK中原有的映射表信息已不再準確。此時,再次到達虛擬磁盤的IRP就需要歸入特殊的隊列統(tǒng)一處理。采用“寫時請求”的方法,即對于每一個實時到達的I/O訪問,先從IRP中獲取邏輯起始地址,并封裝為請求映射信息包REQUEST,在AUI模塊中將請求包發(fā)送給MDS,MDS接收到請求包后,先查找當前與之對應的最新的映射表信息,并將其封裝為返回包RESPONSE,通過AUI發(fā)送回VA。隨后,MAGICIDISK模塊根據(jù)當前獲得的最新映射表信息完成本次映射操作,這種方式稱為NOCACHE模式。與CACHE模式相比,NOCACHE模式時每一次I/O訪問都需要與MDS進行通信。

存儲虛擬化的各項功能特性對用戶都是完全透明的,在擴展時,數(shù)據(jù)遷移的過程對用戶必須是無感知的,因此映射表的準確性和可用性就尤為關鍵。在NOCACHE模式下,為了保證每次映射都準確無誤,即使當前I/O訪問請求的邏輯地址與上一次完全相同,也必須重新向MDS端發(fā)送請求,這樣才能保證數(shù)據(jù)的準確性。在此過程中,頻繁通信不可避免地會造成一定的性能損失。當數(shù)據(jù)遷移完成后,MDS端完成了磁盤元數(shù)據(jù)信息的重新分布,這時再為擴展后的條帶卷保存一份新的總體映射表,再重新切換回CACHE模式,至此所有I/O訪問就根據(jù)這份最新的映射表完成后續(xù)的地址映射。

3 性能指標評價

測試系統(tǒng)采用Windows Server 2008 R2,先為用戶創(chuàng)建一個由2個條帶組成,容量為200 GB的條帶卷,即每個條帶100 GB。在操作系統(tǒng)中生成一個新的盤符并格式化為NTFS文件系統(tǒng)。在該盤符中寫入若干文件,或者安裝并實時運行一個程序,并提取MD5校驗碼。在正常使用時,進行磁盤容量的擴展,由MDS發(fā)出指令在原來基礎上再為其擴展2個條帶,使總容量擴充到400 GB,磁盤運行一段時間后,再增加4個條帶,并在磁盤管理器中做相應容量調(diào)整,使總容量擴充到800 GB。為驗證效果,使用測試工具IOMETER進行擴展期間的性能測試,測試數(shù)據(jù)塊的閾值為64 KB~16 MB。分別測試在該條帶卷上順序讀和順序寫的性能,指標包括I/O讀寫帶寬(柱形圖)和I/O平均響應時間(線形圖)。根據(jù)測試結果,對比條帶卷在進行在線擴展前后的性能差異,為了保證磁盤的可用性,最后還需要通過MD5對照文件是否正確。

測試結果如圖6和圖7所示,可以看出,條帶卷在經(jīng)過擴展之后,I/O的讀寫性能顯著提高,I/O平均響應時間明顯變小,并且,條帶擴展得越多性能提升越明顯,并且文件校驗無誤。實驗證明,條帶化的虛擬磁盤經(jīng)過在線擴展的過程后,首先能夠保證已有文件的正確性,并且程序能夠正常運行;其次,條帶卷不僅能夠在容量上得到在線的擴充,而且在性能上還得到了顯著提高。

圖6 條帶卷在線擴展時順序寫的性能測試結果

圖7 條帶卷在線擴展時順序讀的性能測試結果

4 結 語

面對科研工作中對存儲虛擬化系統(tǒng)在多樣化平臺運行的需求,給出了一種能夠應用在Windows操作系統(tǒng)的存儲虛擬化軟件VA。該軟件基于存儲虛擬化系統(tǒng)TH-MSNS,通過在Windows操作系統(tǒng)的內(nèi)核態(tài)開發(fā)驅動程序,可實現(xiàn)虛擬磁盤的基本服務和許多功能特性。經(jīng)過測試證明,該軟件可在Windows平臺下提供穩(wěn)定可靠的虛擬存儲服務。使用條帶化的虛擬磁盤,將數(shù)據(jù)平均分布在底層物理設備上,運用在線擴展技術可以保證虛擬磁盤中的正常業(yè)務不中斷,并實現(xiàn)虛擬磁盤從容量到性能的雙重擴展。

[1] 舒繼武,薛巍,李必剛,等. 一種高可擴展存儲網(wǎng)絡系統(tǒng)TH-MSNS的研究與實現(xiàn)[J].計算機學報,2005, 28(3):326-333.

[2]ZhangGuangyan,ShuJi-wu,XueWei,etal.DesignandImplementationofanOut-of-bandvirtualizationsystemforlargeSANs[J].IEEETransonComputers, 2007, 56(12): 1654-1665.

[3] 陜光,凌玲,胡于進. 內(nèi)存映射文件在提取有限元模態(tài)結果中的應用[J]. 計算機應用,2012, 32(5):1429-1431,1435.

[4] 孫志卓,張全新,李元章,等. 連續(xù)數(shù)據(jù)存儲中面向RAID5的寫操作優(yōu)化設計[J]. 計算機研究與發(fā)展,2013, 50(8):1604-1612.

[5] 雷立群.WDM在全軟件數(shù)控系統(tǒng)中的應用研究[J]. 機床與液壓,2014 (22):158-160.

[6] 張美玲,張剛.Java調(diào)用DLL實現(xiàn)讀寫磁盤扇區(qū)[J].計算機工程與設計,2013, 34(4):1451-1461.

[7] 宋麗娜,戴華東,任怡. 基于海量數(shù)據(jù)存儲系統(tǒng)多級存儲介質(zhì)的熱點數(shù)據(jù)區(qū)分方法[J]. 計算機研究與發(fā)展,2012, 49(z1):6-11.

[8] 黃冬梅,杜艷玲,賀琪. 混合云存儲中海洋大數(shù)據(jù)遷移算法的研究[J]. 計算機研究與發(fā)展,2014, 51(1):200-205.

AN ONLINE EXPANSION TECHNOLOGY OF STORAGE VIRTUALIZATION BASED ON WINDOWS OPERATING SYSTEM

Wang Dapeng1Liu Fei2*Wang Jian2

1(CollegeofComputerandInformationTechnology,LiaoningNormalUniversity,Dalian116081,Liaoning,China)2(ModernEducationalTechnologyCenter,DalianMedicalUniversity,Dalian116044,Liaoning,China)

Cloud computing, large data and other traditional applications in the storage system is often the form of virtualization to run on the open source Linux platform, as storage virtualization technology continues to mature and diversify, users also need Windows-based storage virtualization services. Aiming at these requirements, this paper presents a software based on Windows operating system platform to provide storage virtualized service, which can be used to create virtual local disk in Windows operating system. The data in the disk is evenly distributed across the underlying physical disks in striped form. The software is based on the mass storage network system TH-MSNS, in the storage area network SAN environment to provide users with virtual disk services and support online capacity expansion After testing, it proves that the striped volume can guarantee uninterrupted foreground application and carry out large-scale data migration quickly and accurately. When users need to expand the capacity of the virtual disk, the use of this technology can guarantee the reliability of the virtual disk can also improve the read and write performance after expansion.

Storage virtualization Storage area network Online-extension

2016-04-21。2015年度遼寧省教育科學“十二五”規(guī)劃課題(JG15DB104)。王大鵬,講師,主研領域:計算機網(wǎng)絡。劉飛,助理工程師。王建,高級工程師。

TP333

A

10.3969/j.issn.1000-386x.2017.05.004

猜你喜歡
存儲系統(tǒng)磁盤條帶
文本圖像條帶污染去除的0稀疏模型與算法
分層式大數(shù)據(jù)存儲系統(tǒng)緩存調(diào)度策略與性能優(yōu)化
水驅油藏高含水期耗水條帶表征指標及分級方法
受災區(qū)域衛(wèi)星遙感監(jiān)測的條帶分解方法研究
巧用廢舊條幅輔助“蹲踞式起跑”教學
它的好 它的壞 詳解動態(tài)磁盤
創(chuàng)建虛擬機磁盤方式的選擇
解決Windows磁盤簽名沖突
天河超算存儲系統(tǒng)在美創(chuàng)佳績
Windows系統(tǒng)下動態(tài)磁盤卷的分析與研究
策勒县| 军事| 会宁县| 嫩江县| 济源市| 河津市| 延川县| 万源市| 丰镇市| 纳雍县| 清苑县| 龙游县| 汉寿县| 普安县| 井陉县| 长兴县| 临沂市| 眉山市| 晴隆县| 镇平县| 汕头市| 远安县| 靖安县| 章丘市| 昭平县| 寿光市| 万盛区| 蓬溪县| 龙南县| 荃湾区| 平果县| 抚松县| 泸水县| 静乐县| 峨眉山市| 大港区| 菏泽市| 左贡县| 广西| 西吉县| 台北县|