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