IT技術的發展經歷三次浪潮:第一次浪潮以處理技術為中心,以處理器的發展為核心動力,產生了計算機工業,促進了計算機的迅速普及和應用;第二次浪潮以傳輸技術為中心,以網絡的發展為核心動力。這兩次浪潮極大地加速了信息數字化進程,使得越來越多的人類信息活動轉變為數字形式,從而導致數字化信息爆炸性地增長,進而引發IT技術的第三次發展浪潮:存儲技術浪潮。
存儲技術浪潮的核心是基于網絡的存儲技術。目前,流行的網絡存儲系統主要有兩種:附網存儲(NAS)和存儲區域網(SAN)。按照存儲網絡工業協會(SNIA)的定義:NAS是可以直接聯到網絡上向用戶提供文件級服務的存儲設備,而SAN是一種利用FibreChannel等互聯協議連接起來的可以在服務器和存儲系統之間直接傳送數據的網絡。NAS是一種存儲設備,有其自己簡化的實時操作系統,它將硬件和軟件有效地集成在一起,用以提供文件服務,具有良好的共享性、開放性、可擴展性。SAN技術的存儲設備是用專用網絡相連的,這個網絡是一個基于光纖通道協議的網絡。由于光纖通道的存儲網和LAN分開,性能就很高。在SAN中,容量擴展、數據遷移、數據本地備份和遠程容災數據備份都比較方便,整個SAN成為一個統一管理的存儲池(storagepool)。由于具有這些優異的性能,SAN已成為企業存儲的重要技術。
但在實際應用中NAS和SAN也存在很多缺陷,越來越不能滿足IT技術的快速發展和數字化信息爆炸性地增長的需求。如NAS設備存在如下缺陷:(1)數據的傳輸速度慢,因為NAS只能提供文件級而不能提供塊級的數據傳輸;(2)數據備份時性能較低,NAS在數據備份時要占用其大部分網絡帶寬,其它I/O性能受到影響;(3)只能管理單個NAS,很難將位于同一局域網中的多個NAS集中管理。SAN也存在以下缺陷:(1)設備的互操作性較差,不同廠家的設備很難互操作;(2)構建SAN成本高,目前只有實力較大的企業構建自己的SAN;(3)管理和維護成本高,企業需要花錢培訓專門的管理和維護人員;(4)SAN只能提供存儲空間共享而不能提供異構環境下的文件共享。
針對NAS和SAN的優缺點,目前出現了多種新的網絡存儲技術,如:NASGateway(NAShead)、基于IP的SAN技術、對象存儲技術。NAS網關能將SAN連結到IP網絡,使IP網絡用戶能通過NAS網關直接訪問SAN中的存儲設備,所以NAS網關具有以下優點:能使NAS和SAN互連在同一LAN中,突破了FC拓撲的限制,允許FC設備在IP網絡使用;減少了光纖設備的訪問成本,允許訪問未有充分利用的SAN存儲空間。基于IP的SAN互連技術主要包括:FCIP(IPtunneling)、iFCP、iSCSI、Infiniband、mFCP,其代表技術是iSCSI技術。iSCSI技術原理是將SCSI協議映射到TCP/IP之上,即將主機的SCSI命令封裝成TCP/IP數據包,在IP網絡上傳輸,到達目的節點后,再恢復成封裝前的SCSI命令,從而實現SCSI命令在IP網絡上的直接、透明傳輸,使訪問遠程的SCSI盤可以像本地的硬盤一樣方便。存儲對象具有文件和塊二者的優點:象數據塊一樣在存儲設備上被直接訪問;通過一個對象接口,能象文件一樣,在不同操作系統平臺上實現數據共享。NASGateway雖實現了NAS和SAN在IP的融合,但不是真正的融合,因為它不能將NAS設備和SAN設備融合起來向用戶提供統一的存儲池,用戶也只能以文件I/O的方式訪問存儲設備。對象存儲雖具有NAS和SAN的優點,但需要設計專門的對象存儲接口,需要對現有的文件系統進行修改,這阻礙了它的進一步普及推廣。
本文提出并實現了一種在IP協議下融合iSCSI、NAS、SAN的統一存儲網絡(簡稱USN)。在USN中,NAS設備、iSCSI設備和SAN設備并存,用戶可以塊I/O的方式訪問USN中的iSCSI設備和SAN存儲設備,也可以文件I/O方式訪問USN中的NAS存儲設備和SAN存儲設備,整個USN是一個統一的存儲池。并且,USN能同時提供服務器通道和附網高速通道向客戶機提供數據,減少了服務器瓶頸,提高系統的I/O速度。USN既有NAS的優點(低成本、開放性、文件共享),又有SAN的優點(高性能、高擴展性)。USN同NASGateway(NAShead)技術、基于IP的SAN技術、對象存儲技術相比具有明顯的優勢。
USN總體結構
USN系統的硬件結構如圖1所示。USN由NAS設備、iSCSI設備和SAN設備,以及元數據服務器和應用服務器組成。用戶可以文件I/O的方式訪問USN中的NAS設備和經過NAS頭訪問SAN中的存儲設備,也可以塊I/O的方式訪問USN中的iSCSI設備和SAN中的存儲設備。USN同時向用戶提供服務器通道和附網高速通道,對于元數據和小數據請求都經過服務器通道完成,對于大數據請求則經過附網高速通道完成,這樣大大提高整個系統的I/O速度,減少服務器瓶頸。整個USN是用基于IP的技術構建,可以兼容現有的存儲系統,添加和刪除存儲設備都很方便。所以,整個系統的性能、擴展性都很好。USN真正實現了NAS和SAN的統一,即同一存儲網絡中既有NAS設備,又有SAN結構;實現文件I/O和塊I/O的統一,即用戶可以文件I/O方式(文件為單位)也可以塊I/O方式(塊為單位)訪問USN中的設備;實現了文件協議和塊協議在TCP/IP協議上的統一,用戶可以NFS(Unix用戶)和CIFS(Windows用戶)訪問USN,也可以SCSI(iSCSI用戶)訪問USN。
圖2是USN的軟件結構圖,其中GMPFS是全局多協議文件系統,位于USN系統中的各個應用服務器上,它支持使用CIFS協議的Windows用戶對USN的訪問,支持使用NFS協議的UNIX用戶對USN的訪問,也支持使用iSCSI協議的塊協議用戶對USN的訪問。GMPFS通過對目前存儲系統所使用的元數據進行擴展,采用啟發式的方法,收集用戶應用信息,為用戶提供統一、方便、快捷的存儲訪問接口以及合理的數據存儲方案。ASA是自主存儲代理模塊,它能夠自動地發現海量存儲系統中存儲設備的種類和可利用的各種資源,自主地對這些存儲設備和資源進行有效的統一管理和優化。ASA根據應用的不同和應用的具體需求,安排與應用相適應的存儲設備種類、性能以及可靠性和可用性等級等,并為I/O請求選擇合適的數據通道,使應用得到最優的存儲資源分配,從而使整個系統的性能達到最佳。
系統設計
USN是一個復雜的系統,涉及到許多復雜的技術,本文主要論述其核心技術的設計和實現,即GMPFS、ASA和iSCSI系統的設計與實現。GMPFS可以駐留在多種操作系統平臺上(UNIX,Windows,Linux),支持各種協議用戶的訪問(NFS,CIFS,iSCSI),為用戶或應用程序提供對網絡存儲系統的數據訪問服務。ASA將多種存儲技術(這些存儲技術各有所長,也各有所短)整合為一個統一的海量存儲系統,充分發揮各種存儲技術的優勢,使得該存儲系統對特定的應用程序而言服務性能達到最優,有效地滿足多方面的應用需求。iSCSI真正的實現了塊I/O和文件I/O在IP網絡上的統一,文件協議和塊協議在IP協議上的統一。
全局多協議文件系統的設計
GMPFS保留了分布式文件系統的靈活性和高性能的優點,而克服了其在不同I/O協議支持方面的缺陷,能同時支持NFS、CIFS和iSCSI協議用戶的訪問。GMPFS在提供文件存取的方法和文件目錄結構的同時,還為每種存儲卷提供特定的存儲模式。每種存儲模式包含某種文件系統的元數據結構,操作接口(文件類型和數據塊類型),功能函數集(格式化,檢索等),優化方法(cache方法和預取等)和存儲空間分配回收方法及數據結構。對于文件卷而言,存儲模式包含實現POSIX語義的操作函數和文件目錄結構;對于分區卷而言,存儲模式必須面向特定分區類型,如NTFS,ext3。所有的存儲模式都必須在元數據服務器中的ASA系統中注冊,以便ASA為用戶的I/O請求進行通道選擇。
GMPFS的結構如圖3所示。其中協議轉換接口主要通過NFS的擴展程序模塊和samba模塊的組合對NFS協議和CIFS協議的支持,并通過iSCSI目標器驅動程序的擴展對iSCSI協議的支持。啟發式數據管理接口主要是用啟發式方法獲得用戶對存儲數據的需要,如性能、使用率以及安全性等。GMPFS數據組織邏輯界面提供數據組織的邏輯視圖,這一點正是針對傳統文件系統文件目錄結構對于海量數據難以管理的弱點,在增加元數據信息的前提下,通過查詢和檢索,按照用戶需要提供各種類型文件視圖,例如根據文件創建的用戶和時間進行分類。擴展的文件或卷操作接口、數據組織與分配管理、元數據組織結構和I/O定向器等主要是保證與傳統的文件系統操作語義兼容,實現程序級的數據訪問。應用程序無需修改就可以使用USN系統中的數據。提供與元數據服務器中的ASA及存儲資源的接口和通訊,能充分利用ASA系統所掌握的存儲資源,合理組織數據,滿足用戶或應用程序對數據存儲的多方面、個性化要求。如通過同時提供服務器通道和附網高速通道,改善用戶的I/O性能服務,減少服務器瓶頸。
iSCSI系統設計
iSCSI協議定義的是SCSI到TCP/IP的映射,即將主機的SCSI命令封裝成IP數據包,在IP網絡上傳輸,到達目的節點后,再恢復成封裝前的SCSI命令,從而實現SCSI命令在IP網絡上的直接、透明傳輸。它整合了現有的存儲協議SCSI和主流網絡協議TCP/IP等兩種主流協議,實現了存儲和網絡的無縫融合。從應用的角度看,iSCSI一方面通過SCSI命令的遠程傳送,實現了和遠程存儲設備的命令級交互,使用戶訪問遠程的SCSI設備像本地的SCSI設備一樣方便,而且具有高速度;另一方面也可用于改造傳統的NAS、SAN技術,實現NAS和SAN的融合。iSCSI系統是USN系統的核心部分之一,iSCSI的設計實現了基于IP的數據塊訪問機制。
目前iSCSI的實現方式可以考慮采用以下三種方式:純軟件方式、智能iSCSI網卡實現方式、iSCSIHBA卡實現方式。由于我們是設計USN的原形系統,所以只采用純軟件方式,iSCSIHBA卡方式是下一步產品化我們將實現的目標。iSCSI系統整體設計模型如圖4所示(不包括管理模塊)。服務器端(Target)采用linux操作系統,客戶端(Initiator)采用Windows2000。SCSI微端口驅動在系統中生成一個虛擬的SCSI磁盤,過濾驅動截獲系統發給SCSI磁盤的SCSI命令,通過核心態的網絡接口發給服務器處理。
自主存儲代理系統的設計
自主存儲代理ASA的一端面對海量存儲系統。目前的存儲系統有DAS(直連存儲)、NAS、SAN、iSCSI等,ASA能夠自動地發現海量存儲系統中存儲設備的種類和可利用的各種資源,自主地對這些存儲設備和資源進行有效的統一管理和優化;根據應用的不同和應用程序的具體需求,安排與應用程序相適應的存儲設備種類、性能以及可靠性和可用性等級等,使應用程序得到最優的存儲資源分配。
ASA的另一端面對應用程序(GMPFS)。ASA通過對目前存儲系統所使用的元數據進行擴展,采用啟發式的方法,收集用戶應用信息,為用戶提供統一、方便、快捷的存儲訪問接口以及合理的數據存儲方案;根據用戶I/O請求所涉及數據的屬性,選擇客戶端與存儲設備交互數據的通道,即元數據(目錄、卷信息等)和小數據I/O請求,選擇服務器通道,對大數據I/O請求選擇高速附網通道。大、小數據I/O請求由ASA自主地根據整個系統的I/O信息量進行調整。ASA系統結構如圖5所示。
客戶端與USN交互流程
USN系統中包括三類用戶:Windows文件I/O用戶(使用CIFS協議),Unix文件I/O用戶(使用NFS協議),iSCSI塊I/O用戶(使用iSCSI協議)。用戶在客戶端與USN系統交互流程與圖6所示。
塊I/O客戶的具體的數據讀寫流程為(如圖6):(1)客戶1上的應用程序發出的塊I/O命令(SCSI命令)經iSCSI設備驅動層和TCP/IP協議棧之后,封裝成IP數據包,在IP網絡上傳輸;(2)封裝后的SCSI命令達到USN服務器之后,經解封裝,恢復成封裝前的SCSI命令,USN服務器利用這些SCSI命令對iSCSI存儲設備發出塊I/O讀寫請求;(3)被請求的數據塊經iSCSI設備中的iSCSI層和TCP/IP協議棧封裝成PDU,iSCSI設備傳送的PDU到客戶端可經兩個途徑:一種是經過服務器轉發,一種是經過高速附網通道直接傳到客戶端;(4)PDU經IP網絡上傳輸返回到客戶1后,PDU經客戶1解封裝并由其文件系統組合成文件。
當USN系統提供FileI/O服務時,其數據讀寫過程(如圖6所示):(1)客戶2(文件I/O)向USN服務器發出文件讀寫請求(其工作方式和傳統的NAS相同);(2)USN服務器接到客戶端的文件讀寫請求后:一方面,將該I/O請求發給對應的NAS設備或NAS頭,NAS設備或NAS頭將所請求數據傳給USN服務器,再經USN服務器傳到客戶端;另一方面USN服務器不把文件I/O請求傳到NAS或NAS頭,而是將NAS或NAS頭的IP地址傳給客戶端,客戶端通過該IP地址直接與NAS或NAS頭進行數據交互。
這里的NAS頭主要是支持FC協議的SAN設備能直接掛到TCP/IP網絡,支持NFS/CIFS用戶的訪問,NAS頭也可安裝iSCSI目標器驅動程序支持iSCSI用戶的訪問。不論是塊I/O請求還是文件I/O請求,都可通過附網高速通道實現客戶端與存儲設備的數據交互。
試驗評估
從客戶端對構建USN的各子存儲系統以及整個USN進行功能和性能評測,并作進一步的比較。我們從兩個方面對統一存儲網進行測試:功能測試和性能測試。功能測試包括:(1)構建100M及1000M以太網環境,將iSCSI存儲設備與服務器連接;在服務器操作系統中安裝iSCSI軟件包后,使用戶能夠通過網絡獲得iSCSI存儲設備提供的存儲空間,并能象使用本地硬盤一樣對其進行操作。
本測試項測試服務器端iSCSI盤安裝、設置、管理和使用等各項功能;(2)iSCSI存儲設備作為NAS頭的存儲設備,與NAS頭組成一個NAS存儲系統,本測試項測試iSCSI盤在NAS中的安裝、設置、管理和使用等各項功能;(3)iSCSI盤與本地盤、FC-RAID盤構成各種冗余度的RAID,本測試項測試各種存儲盤在RAID中的安裝、配置、管理和使用等各項功能;(4)多個NAS、iSCSI設備、NAS頭連接FC-RAID通過多GMPFS和ASA構建成USN海量存儲系統,本項測試測試GMPFS和ASA系統在融合NAS、iSCSI和SAN的系統中的安裝、配置及使用等各項功能。
性能測試包括:測試在100M和1000M網環境中不同工作負載下NAS存儲設備、iSCSI存儲設備、FC-RAID、本地硬盤以及它們組成的海量USN系統的數據傳輸性能:包括單位時間內的IO次數、一次IO的平均響應時間、數據傳輸率和CPU利用率。該項測試的主要思想是針對不同的網絡應用環境,對各種存儲設備和各種傳輸通道進行頻繁的IO處理,在確定時間內統計并計算IO率、數傳率、響應時間、CPU利用率等性能參數,從而得到的各種性能評估。
測試環境
iSCSI存儲設備:P42.0GHzCPU,256MBDRAM,IBMDPSS31835018G硬盤,RedhatLinux9.0操作系統;LINUX服務器:Pentium42.66GHz(FC2PGA)CPU,256MBDRAM,80GBUltraATA/1007,200rpm硬盤,RedhatLinux9.0操作系統;WINDOWS服務器端:XEON3.06GHzCPU,512MDRAM內存,SmartArray6i(板載)存儲控制器,QlogicQLA2300PCIFCAdapter光纖適配器,IBM36。4GB(32P0726)10Krpm硬盤,MicrosoftWindows2003操作系統;FC-RAID:NexStor4000S,CPU600MHZ,512MSDRAM,10×ST314680FC硬盤;普通NAS存儲設備:P42.66GHzCPU,512MBDDR,Maxtor160G硬盤,RedhatLinux9.0操作系統。
網絡連接:iSCSI設備和普通NAS設備都使用100M以太網卡RealtekRTL8139;Windows服務器使用1000M以太網卡HPNC7782GigabitServerAdapter;Linux服務器使用1000M以太網卡。HPNC7782GigabitServerAdapter。
功能測試
根據測試流程,功能測試包括三個方面的內容:(2)平臺的統一,即在Windows下能通過單一目錄樹方式訪問多個存儲節點,功能與Linux下的pvfs相似;(2)協議的統一,即通過Windows的“計算機管理”和Initiator發起端(iSCSI客戶端)可以管理FC-RAID和iSCSITarget及普通的NAS設備,并利用“動態磁盤機制”實現多種冗余;設備的統一,即iSCSITarget通過和initiator配合,使得該Target成為NAS系統中的一個存儲設備。
性能測試
測試內容
采用第三方的IOMETER測試軟件進行的測試。IOMETER是INTEL公司專門開發的用于測試系統I/O性能的測試程序。它的測試參數比較全面,能非常全面的反映服務器的I/O性能。為了說明USN存儲系統的性能,在相同條件下測試以下項目進行對比分析:(1)對USN服務器本地硬盤讀寫性能測試;(2)100M以太網環境下FC-RAID盤讀寫性能測試;(3)100M以太網環境下遠程iSCSI盤讀寫性能測試;(4)100M以太網環境下FC-RAID盤和遠程iSCSI盤構建的各級RAID盤的讀寫性能測試;(5)1000M以太網環境下遠程iSCSI盤讀寫性能測試;(6)100M以太網環境下USN系統的讀寫性能測試。
實驗結果比較
本地IDE硬盤、100MiSCSI硬盤、1000MiSCSI硬盤、FC-RAID、FC-RAID與iSCSI構成的RAID0及USN系統數據傳輸率性能比較如圖7所示。
本地IDE硬盤、100MiSCSI硬盤、1000MiSCSI硬盤、FC-RAID及FC-RAID與iSCSI構成的RAID0,以及USN的IO/s性能比較如圖8所示。
本地IDE硬盤、100MiSCSI硬盤、1000MiSCSI硬盤、FC-RAID及FC-RAID與iSCSI構成的RAID0,以及USN的平均響應時間性能比較如圖9所示。
本地IDE硬盤、100MiSCSI硬盤、1000MiSCSI硬盤、FC-RAID及FC-RAID與iSCSI構成的RAID0,以及USN的CPU占用率比較如圖10所示。
實驗結果分析
請求文件或數據塊大小對存儲系統性能的影響從圖7、圖8和圖9中單條曲線的走勢可以看出,當請求文件或數據塊較大時,從目的盤或系統上讀寫數據耗費的時間長,通過網絡傳輸的時間也相應增加,所以:小包的平均響應時間<;大包的平均響應時間,小包的IOps>;大包的IOps。請求包大時,針對一個請求包所進行的額外操作較請求包小時少,連續的讀寫所耗費的時間小于小包讀寫所耗費的時間,因此:小包的MBps<;大包的MBps。
服務器端iSCSI盤的各項性能表現趨勢在100M以太網和千兆以太網環境中不同請求包大小的情況下符合上述規律,本地IDE硬盤、FC-RAID和USN系統也符合上述述規律。
性能分析
從圖7、圖8和圖9可以看出,I/O請求在1k~128kB時,USN系統的I/O請求響應速度比本地IDE硬盤、FC-RAID、100M遠程iSCSI硬盤和1000MiSCSI硬盤快的多。當I/O請求大于128kB時,USN系統的I/O請求響應速度比FC-RAID的I/O請求響應速度略慢,比其它存儲子系統的速度快的多,最高速度可達45MB/s。其原因是我們在USN的服務器端除加載了GMPFS(支持使用多種訪問協議用戶)和ASA(提供服務器通道和附網高速通道)的同時,還加載了我們實驗室以前開發的智能預取、硬盤緩存技術(DCD)、負載均衡和零拷貝系統或軟件模塊,所以,不論是大I/O請求還小I/O請求,都能提供極好的I/O請求響應性能。而FC-RAID由于自身的數據校驗等時延等特性,對小的I/O請求響應速度較慢,對越大的I/O請求響應速度越快。
對于USN的iSCSI盤存儲子系統,從實驗結果可以看出,當請求數據塊較小時,100M網絡環境下的性能和1000M網絡環境下的性能差別不明顯,隨著請求塊或文件逐步增大,兩者IOps和MBps的差距越來越大。請求數據塊為1024K時,僅更換網絡傳輸中的數據鏈路層和物理層,從100M網絡環境提升到1000M網絡環境,磁盤數據傳輸率得到較大的提高,后者約是前者的3倍。
從圖10可以看出,100M的iSCSI存儲子系統的CPU占用率最高,原因是在響應用戶的I/O請求,要求服務器不斷的對iSCSI的協議數據單元進行封裝和解封裝。本地的IED硬盤CPU占用率最低,USN系統的服務器端CPU占用率次之,原因是USN系統中小的I/O請求直接經過服務器處理,而大的I/O請求經過附網高速通道由存儲設備自身處理。
結論和展望
我們提出、設計和實現的統一存儲網絡系統,全部采用IP互聯設備,價格比光纖通道低得多,在管理軟件的開發實現上以及系統的使用維護上,都具有多得多的資源和經驗。并且,千兆以太網技術比光纖通道技術發展迅速,10Gbps以太網交換機已經推出并在市場上熱銷,其性能前景也比光纖通道交換機好得多。所有這些為統一存儲網絡的產品化打下了堅實的基礎。
目前,我們已經從理論、結構和實踐上實現了統一存儲網絡原型系統,現在,我們正在開發和完善多用戶、多功能、多種平臺支持的iSCSI設備,設計和實現新的安全和高可用文件系統,以便為統一存儲網絡系統產品化后能真正為廣大企業,尤其是為廣大中小企業提供開放性、性能、可展性、性/價比都更好的海量存儲系統。