1 引言
存儲區(qū)域網(wǎng)SAN(Storage Area Network,SAN)利用高速網(wǎng)絡(luò)(如光纖)將應(yīng)用服務(wù)器集群與異構(gòu)的存儲設(shè)備(如磁盤陣列、磁帶庫等)相連接,所有的數(shù)據(jù)傳輸均在相對獨立的高速網(wǎng)絡(luò)內(nèi)進行,因此可以方便地進行集中控制以及數(shù)據(jù)共享,采用帶外架構(gòu)(out-of-band)的SAN可以使網(wǎng)絡(luò)內(nèi)的控制流與數(shù)據(jù)流相分離,能夠減少管理節(jié)點的帶寬壓力,提高數(shù)據(jù)傳輸?shù)乃俣群头(wěn)定性。
存儲虛擬化技術(shù)可以透明地為用戶提供虛擬的存儲設(shè)備,它將底層異構(gòu)的物理設(shè)備整合成統(tǒng)一的存儲池,用戶在邏輯設(shè)備上的I/O操作通過存儲虛擬化層的地址映射傳達到底層物理設(shè)備.將存儲虛擬化技術(shù)應(yīng)用于帶外SAN環(huán)境,能夠簡化存儲管理配置,提高存儲區(qū)域網(wǎng)絡(luò)的整體訪問速度。企業(yè)級用戶在部署存儲虛擬化系統(tǒng)時往往需要能夠支持多操作系統(tǒng)平臺,本文提出一種面向SAN環(huán)境的Windows存儲虛擬化軟件VA-for Windows,它是一種應(yīng)用于Windows平臺的存儲虛擬化客戶端代理軟件(Virtualization Agent,VA),該軟件在Windows Server 2003操作系統(tǒng)上實現(xiàn),為Windows用戶提供了存儲虛擬化系統(tǒng)的應(yīng)用平臺。
一次性為虛擬設(shè)備分配所有物理存儲資源,會造成用戶對邏輯卷的空間使用率過低,在大規(guī)模存儲系統(tǒng)中已經(jīng)成為不容忽視的問題,我們采用按需分配技術(shù),既滿足用戶對虛擬卷的基本使用要求,又能夠高效地利用存儲資源進而達到節(jié)約能耗的目的。
當要對條帶卷在容量上進行擴展時,會涉及到大量的數(shù)據(jù)遷移操作,然而,在現(xiàn)今的企業(yè)級大型存儲應(yīng)用當中,要求存儲虛擬化產(chǎn)品必需能夠在不停機的情況下無縫擴展存儲設(shè)備的容量和性能,我們使用條帶卷在線擴展技術(shù),實現(xiàn)了條帶卷在線性和擴展性。
實驗表明,VA-forWindows能夠在帶外SAN環(huán)境下為Windows用戶提供大容量、高性能的虛擬存儲設(shè)備,可以實現(xiàn)提高系統(tǒng)存儲資源利用率,提高虛擬存儲設(shè)備的擴展性和可用性等高級功能。
2 相關(guān)工作
當前,眾多的企業(yè)級用戶迫切需要在windows平臺上部署存儲虛擬化系統(tǒng),以處理體積越發(fā)龐大且數(shù)量與日俱增的海量數(shù)據(jù),隨著業(yè)界對存儲虛擬化技術(shù)的認知度越來越高,對存儲虛擬化產(chǎn)品在功能上的要求也越來越多。
當前市面上一些主流存儲廠商推出的存儲虛擬化產(chǎn)品,例如EMC Invista,HP StorageWorks SAN,IBM TivoliTotalStorage SAN Volume Controller等等,這些產(chǎn)品在具備各自技術(shù)優(yōu)勢的同時也普遍存在著一些兼容性的缺陷:在軟件方面,大多需要廠商專用的虛擬化平臺軟件與定制的硬件驅(qū)動程序配合工作,這樣不利于系統(tǒng)的后續(xù)升級;在硬件方面,從用戶的長遠考慮,過于依賴單一廠商的專有硬件設(shè)備,對整個存儲系統(tǒng)的可擴展性和可持續(xù)性都是極為不利的。
EMC公司的Invista虛擬存儲方案需要依賴一個特殊定制的"智能交換機"來負責服務(wù)器節(jié)點之間的信息交互,該交換機還要隨硬件的更替而不斷升級;惠普公司的HP StorageWorks虛擬化存儲產(chǎn)品是在其專用陣列產(chǎn)品"EVA系列"的基礎(chǔ)之上研發(fā)的,為了擴展更多的功能特性還需要后續(xù)安裝更多的軟件產(chǎn)品.由此可見這些存儲虛擬化產(chǎn)品對專有硬件以及專用軟件的依賴性都很強,對于用戶來講,不利于日后的存儲系統(tǒng)擴展工作。
IBM公司的Tivoli TotalStorage SAN Volume Controller存儲虛擬化產(chǎn)品,提供了對部分非IBM存儲系統(tǒng)(EMC、HP等)的擴展支持,由單點服務(wù)器集中管理統(tǒng)一的存儲池,但是這款產(chǎn)品只支持部分基于Linux平臺的主機,并不能支持Windows平臺的主機。
和這些系統(tǒng)相比,VA-forWindows對底層硬件沒有任何特殊要求,所有存儲虛擬化服務(wù)全部由軟件實現(xiàn),所有基本功能特性都在操作系統(tǒng)的內(nèi)核實現(xiàn),因此不存在硬件兼容性的問題,對各種磁盤設(shè)備和HBA卡的驅(qū)動程序都是通用的,這樣,使得存儲系統(tǒng)的可復(fù)用性和可擴展性得到顯著提高,當用戶決定對當前的存儲系統(tǒng)進行擴展時,可以有更多選擇,從而有效減少購置存儲設(shè)備時的成本。
3 系統(tǒng)設(shè)計與實現(xiàn)
3.1系統(tǒng)架構(gòu)
如圖1所示,VA由內(nèi)核態(tài)的驅(qū)動模塊(MAGICDISK)和用戶態(tài)的通信模塊(AUI)兩部分組成,MAGICDISK模塊作為Windows系統(tǒng)內(nèi)核中的一種中間層驅(qū)動存在于驅(qū)動棧中,它負責創(chuàng)建虛擬存儲設(shè)備,完成I/O訪問從邏輯設(shè)備到物理設(shè)備的地址映射,并實現(xiàn)虛擬存儲設(shè)備的各種功能特性。
MAGICDISK與Windows平臺的I/O管理器(I/OManager)、掛載管理器(MountManager)以及I/O系統(tǒng)服務(wù)配合工作,在Windows系統(tǒng)內(nèi)部注冊虛擬存儲設(shè)備并將其掛載到指定的盤符上;AUI負責在帶外SAN環(huán)境下與元數(shù)據(jù)服務(wù)器(MetaData Server,MDS)進行虛擬化指令的交互,包括存儲設(shè)備的映射表以及配置信息等,并將這些指令通過ioctl傳達到驅(qū)動模塊,此外還要對當前的存儲虛擬化服務(wù)狀況進行實時監(jiān)控。
圖1 基本的系統(tǒng)架構(gòu)
3.2 I/O流程
當應(yīng)用程序的I/O訪問請求發(fā)往虛擬存儲設(shè)備時,首先由I/O管理器將其統(tǒng)一封裝為IRP(I/O Request Packet)并向下傳遞,當傳遞到中間層驅(qū)動MAGICDISK時,根據(jù)需要來進行IRP的分割或合并,完成虛擬卷的邏輯地址到底層設(shè)備物理地址的映射,以及實現(xiàn)其它功能特性,再將IRP在驅(qū)動棧中向下傳遞,最后,由底層的物理設(shè)備驅(qū)動進行實際的I/O操作,此次IRP即處理完成,在IRP完成之后還要在I/O管理器的統(tǒng)一控制下沿驅(qū)動棧逐層向上返回,此時MAGICDISK有機會對其進行狀態(tài)的監(jiān)控以判斷IRP是否成功返回。
當IRP返回到驅(qū)動棧棧頂后再由I/O系統(tǒng)服務(wù)向應(yīng)用程序返回此次I/O訪問操作的執(zhí)行結(jié)果。
3.3存儲資源按需分配技術(shù)
按需分配由VA與MDS配合完成,MDS并不一次性地為虛擬卷分配所有的存儲資源,而是根據(jù)用戶對虛擬卷的實際使用情況動態(tài)靈活地為VA分配存儲資源,這就是按需分配的設(shè)計思想,在應(yīng)用服務(wù)器方面,用戶看到的虛擬卷大小雖然與普通邏輯卷沒有什么區(qū)別,但實際上MDS只是為其按一定比例分配了一部分的實際存儲空間,即只發(fā)送給VA若干段映射信息,當上層應(yīng)用程序在虛擬卷上進行I/O訪問時,會首先使用這一部分存儲空間,只有當現(xiàn)有的存儲空間不能滿足應(yīng)用程序的空間要求時,才會由MDS再次進行資源分配并發(fā)送下一段映射信息給VA。
為了實現(xiàn)這一功能特性,VA要在MAGICDISK模塊為虛擬卷的一系列邏輯空間地址段維護統(tǒng)一的元數(shù)據(jù)存儲池,從MDS端獲得的每一段映射信息都保存在這個存儲池當中,每當上層應(yīng)用程序?qū)壿嫷刂房臻g的需求有所增長時,都要利用AUI向MDS發(fā)送新的映射請求,MDS在接收到該請求信息后,就會在統(tǒng)一存儲池中動態(tài)地再分配一部分存儲資源并將映射信息發(fā)還給VA。
當MAGICDISK模塊處理某個從驅(qū)動棧上層傳遞過來的IRP時,首先要從中提取IRP的特征信息,其中包括讀、寫以及控制碼等等,若處理的是讀寫IRP,則從中獲取本次請求的邏輯起始地址和偏移長度,再根據(jù)這個邏輯起始地址到元數(shù)據(jù)存儲池進行查找,若找到指定的邏輯空間地址,則根據(jù)與其對應(yīng)的映射信息找到對應(yīng)的物理磁盤,將該IRP傳遞到驅(qū)動棧的下一層直接進行映射;否則就需要先將該邏輯地址封裝為特定的REQUEST包,作為一次映射請求信息通過AUI模塊發(fā)送給MDS,當接收到MDS傳回的RESPONSE包后,將其解析為指定的映射信息,即元數(shù)據(jù)信息再進行映射,完成映射時還要及時更新元數(shù)據(jù)存儲池,按需分配技術(shù)的IRP映射過程如圖2所示。
圖2 按需分配技術(shù)的IRP映射過程
3.4邏輯卷在線擴展技術(shù)
在元數(shù)據(jù)服務(wù)器進行數(shù)據(jù)遷移的過程中,VA通過寫時請求的方法在線地使用條帶化的虛擬卷,由此來保證虛擬存儲服務(wù)的持續(xù)性和可用性,數(shù)據(jù)重分布在短時間內(nèi)完成以后,由于條帶數(shù)的增加使得虛擬卷在容量上得到了擴展,而I/O帶寬的增加又使得虛擬卷在性能上得到了擴展。
圖3表示的是在線擴展技術(shù)的IRP執(zhí)行過程,初始階段,VA在MAGICDISK模塊當中維護著一份虛擬卷的總體映射表,當應(yīng)用服務(wù)器在該虛擬卷上進行的I/O訪問傳達到內(nèi)核態(tài)時,使用該表進行映射,我們稱之為CACHE模式的映射.當條帶化的虛擬卷開始進行擴展操作時,首先由MDS發(fā)出擴展的控制命令,由于涉及到元數(shù)據(jù)的重分布,因此在VA上原來的映射表已經(jīng)不再可靠,此時再次到達該虛擬卷的IRP要歸入特殊隊列統(tǒng)一處理,使用寫時請求的方法,即對于每一個到達MAGICDISK模塊的IRP,都要先從中獲取邏輯起始地址,將其封裝為指定的REQUEST包,而后作為請求映射信息通過AUI模塊發(fā)送給MDS,MDS接收到REQUEST包后,將與之對應(yīng)的當前最新的映射信息封裝為RESPONSE包,發(fā)還給VA,然后,MAGICIDISK模塊再根據(jù)本次獲取的映射信息完成相應(yīng)的映射操作,這種映射方式我們稱之為NOCACHE模式。
MDS進行數(shù)據(jù)遷移的過程對用戶是完全透明的,因此保證映射信息的正確性就顯得尤為重要,即使下一次來到MAGICDISK模塊的IRP邏輯地址與上次完全相同也要再次向MDS端發(fā)送請求,由此才能保證數(shù)據(jù)的一致性,當MDS在短時間內(nèi)完成元數(shù)據(jù)信息的重分布后,要為該條帶卷重新部署一份總體映射表,此時VA再切換回CACHE模式,此后傳遞到MAGICDISK模塊的所有IRP就根據(jù)這份最新的映射表完成相應(yīng)的映射。
圖3 在線擴展技術(shù)的IRP執(zhí)行過程
3.5改進的通信策略
VA的驅(qū)動模塊MAGICDISK在Windows體系結(jié)構(gòu)中作為驅(qū)動棧的一部分,在實現(xiàn)上述功能特性時都需要與MDS進行通信,AUI模塊作為MAGICDISK模塊與MDS之間進行通信的中轉(zhuǎn)站,負責完成二者之間的信息交互。
在AUI模塊與MAGICDISK模塊之間構(gòu)建專用的通道,即完成用戶態(tài)到內(nèi)核態(tài)的連接,然后使用同步消息事件傳遞機制,MAGICDISK模塊在實現(xiàn)功能特性時所生成的每一次通信請求都以一個IRP的形式先發(fā)送到AUI模塊,再由AUI模塊通過用戶態(tài)的socket接口將請求信息發(fā)送給MDS,VA從MDS接收信息的過程則與之相反。
VA與MDS進行通信時每次只處理一個IRP的邏輯地址請求,而MAGICDISK則采用異步方式處理特殊IRP隊列,由此可見通信過程會造成性能開銷,針對這種情況,我們在MAGICDISK模塊當中使用一種預(yù)取以及校驗映射信息的機制,即連續(xù)預(yù)取多個邏輯地址,再利用一次通信過程向服務(wù)器端請求多個邏輯地址的映射信息,期間通過校驗機制來保證接收到的映射信息的準確性,這樣,既可以減少通信過程所造成的性能開銷,又可以減小元數(shù)據(jù)存儲池的訪問壓力。
4 性能評價
4.1測試環(huán)境
測試使用兩臺服務(wù)器分別作為元數(shù)據(jù)服務(wù)器和Window應(yīng)用服務(wù)器,配置均為Quad-Core AMD Opteron(tm)Processor2378 2.4GHzx8CPU,內(nèi)存16G,Qlogic ISP2532(8Gb/s)光纖卡,客戶端的操作系統(tǒng)為WindowsServer 2003 SP2 R2;磁盤陣列為Infortrend S12F-G1433 SCSI,傳輸帶寬最大支持800MB/s,服務(wù)器通過光纖網(wǎng)絡(luò)將其與高級磁盤陣列相連接,組成帶外的SAN環(huán)境。
4.2按需分配卷的性能
將具備存儲資源按需分配功能的虛擬卷命名為按需分配卷(Thin Provision Volume),為了測試按需分配卷的實際運行效果,將其格式化為NTFS文件系統(tǒng),使用IOMETER作為測試工具,與普通虛擬卷進行對比,測試I/O帶寬和I/O平均響應(yīng)時間等性能指標。
圖4 按需分配卷的存儲資源節(jié)約情況
第1組測試驗證按需分配卷的存儲資源節(jié)省效果,通過對一個10G大小的按需分配卷進行寫操作,期間觀察在邏輯空間增長的同時其對應(yīng)的物理空間增長情況,結(jié)果如圖4所示,可以看出,在按需分配卷的邏輯空間使用率不高時,能夠節(jié)省大量的物理空間,實際的物理空間隨著邏輯空間的使用情況線性增長,圖中顯示物理空間的分配率要稍稍多于邏輯空間的實際使用率,這是由于邏輯設(shè)備在進行隨機寫操作時,邏輯地址的隨機訪問造成了更多的請求映射信息,物理空間也會相應(yīng)地多分配一些地址段,用來進行I/O訪問的映射操作.
圖5 按需分配卷與普通虛擬卷的I/O帶寬對比情況
第2組實驗測試按需分配卷與普通虛擬卷的I/O帶寬以及I/O平均響應(yīng)時間的對比情況,分別對大小為10G、100G、1T的按需分配卷和與其容量相同的普通虛擬卷進行混合隨機讀寫測試,其中測試的塊大小范圍為64K~4M,隨機讀操作占80%,隨機寫操作占20%,結(jié)果如圖5和圖6所示,通過性能對比我們可以看出,使用不同大小的按需分配卷進行I/O混合讀寫操作時,與普通虛擬卷的性能差別并不大,這是由于使用了實用高效的地址映射機制和通信策略,能夠很好地減小元數(shù)據(jù)存儲池的訪問壓力。
圖6 按需分配卷與普通虛擬卷的響應(yīng)時間對比情況
4.3條帶卷在線擴展的性能
將條帶化的虛擬卷命名為條帶卷(Striped Volume),在第3組測試中,先將一個由2條帶構(gòu)成,大小為200G的條帶卷格式化為NTFS文件系統(tǒng),在此基礎(chǔ)之上再為其擴展2個條帶使容量增加到400G,最后再擴展4個條帶使容量增加到800G,在這期間同樣使用測試工具IOMETER對條帶卷分別進行順序讀與順序?qū)懖僮鳎瑴y試I/O讀寫帶寬和I/O平均響應(yīng)時間,由此對條帶卷進行擴展前后的性能對比,其中測試的塊大小范圍為64K~16M,測試結(jié)果如上頁圖7和圖8所示,可以很明顯地看出條帶卷在經(jīng)過擴展之后的I/O讀寫帶寬顯著增加,I/O平均響應(yīng)時間明顯減少,由此可說明經(jīng)過在線擴展之后,條帶卷不僅在容量上得到了擴展,在性能上同樣得到了很好地擴展.
圖7 條帶卷在線擴展順序?qū)懶阅軠y試結(jié)果
圖8 條帶卷在線擴展順序讀性能測試結(jié)果
5 結(jié)論
本文給出了一種能夠應(yīng)用在Windows平臺的存儲虛擬化客戶端軟件VA-forWindows,該軟件作為SAN環(huán)境下的存儲虛擬化系統(tǒng)的一部分,在Windows系統(tǒng)的內(nèi)核態(tài)提供虛擬存儲的基本服務(wù),實驗表明,在Windows系統(tǒng)下,VA-forWindows能夠為用戶提供穩(wěn)定可靠的虛擬存儲設(shè)備,使用帶有按需分配功能的虛擬卷,可以在不損失性能的前提下有效地節(jié)省物理磁盤空間;對于條帶化的虛擬卷,使用在線擴展功能可以在不停機的情況下,實現(xiàn)虛擬存儲設(shè)備從容量到性能的雙重擴展。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://m.guhuozai8.cn/
本文標題:一種面向SAN環(huán)境的Windows存儲虛擬化系統(tǒng)
本文網(wǎng)址:http://m.guhuozai8.cn/html/support/1112153105.html