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