引言
IT技術的發展經歷三次浪潮:第一次浪潮以處理技術為中心,以處理器的發展為核心動力,產生了計算機工業,促進了計算機的迅速普及和應用;第二次浪潮以傳輸技術為中心,以網絡的發展為核心動力。這兩次浪潮極大地加速了信息數字化進程,使得越來越多的人類信息活動轉變為數字形式,從而導致數字化信息爆炸性地增長,進而引發IT技術的第三次發展浪潮:存儲技術浪潮。
存儲技術浪潮的核心是基于網絡的存儲技術。目前,流行的網絡存儲系統主要有兩種:附網存儲(NAS) 和存儲區域網(SAN)。按照存儲網絡工業協會(SNIA) 的定義:NAS 是可以直接聯到網絡上向用戶提供文件級服務的存儲設備,而SAN 是一種利用Fibre Channel 等互聯協議連接起來的可以在服務器和存儲系統之間直接傳送數據的網絡。NAS 是一種存儲設備,有其自己簡化的實時操作系統,它將硬件和軟件有效地集成在一起,用以提供文件服務,具有良好的共享性、開放性、可擴展性。SAN 技術的存儲設備是用專用網絡相連的,這個網絡是一個基于光纖通道協議的網絡。 由于光纖通道的存儲網和LAN 分開,性能就很高。在SAN 中,容量擴展、數據遷移、數據本地備份和遠程容災數據備份都比較方便,整個SAN 成為一個統一管理的存儲池( storage pool) 。由于具有這些優異的性能,SAN 已成為企業存儲的重要技術。
但在實際應用中NAS 和SAN 也存在很多缺陷,越來越不能滿足IT技術的快速發展和數字化信息爆炸性地增長的需求。如NAS 設備存在如下缺陷: (1) 數據的傳輸速度慢,因為NAS只能提供文件級而不能提供塊級的數據傳輸; (2) 數據備份時性能較低,NAS 在數據備份時要占用其大部分網絡帶寬,其它I/O 性能受到影響; (3) 只能管理單個NAS ,很難將位于同一局域網中的多個NAS 集中管理。SAN 也存在以下缺陷: (1) 設備的互操作性較差,不同廠家的設備很難互操作; (2) 構建SAN成本高,目前只有實力較大的企業構建自己的SAN; (3) 管理和維護成本高,企業需要花錢培訓專門的管理和維護人員;(4) SAN 只能提供存儲空間共享而不能提供異構環境下的文件共享。
針對NAS 和SAN 的優缺點,目前出現了多種新的網絡存儲技術, 如: NAS Gateway (NAS head) 、基于IP 的SAN 技術、對象存儲技術。NAS 網關能將SAN 連結到IP 網絡,使IP 網絡用戶能通過NAS 網關直接訪問SAN 中的存儲設備,所以NAS 網關具有以下優點:能使NAS 和SAN 互連在同一LAN中,突破了FC 拓撲的限制,允許FC 設備在IP 網絡使用;減少了光纖設備的訪問成本,允許訪問未有充分利用的SAN 存儲空間。基于IP 的SAN 互連技術主要包括: FCIP( IP tunneling) 、iFCP、iSCSI、Infiniband、mFCP ,其代表技術是iSCSI 技術。iSCSI技術原理是將SCSI 協議映射到TCP/ IP之上,即將主機的SCSI 命令封裝成TCP/ IP 數據包,在IP 網絡上傳輸,到達目的節點后,再恢復成封裝前的SCSI 命令,從而實現SCSI 命令在IP網絡上的直接、透明傳輸,使訪問遠程的SCSI 盤可以像本地的硬盤一樣方便。 存儲對象具有文件和塊二者的優點:象數據塊一樣在存儲設備上被直接訪問;通過一個對象接口,能象文件一樣,在不同操作系統平臺上實現數據共享。NAS Gateway 雖實現了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 同NAS Gateway(NAS head) 技術、基于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 網卡實現方式、iSCSI HBA 卡實現方式。由于我們是設計USN 的原形系統,所以只采用純軟件方式,iSCSI HBA 卡方式是下一步產品化我們將實現的目標。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 系統提供File I/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.0GHz CPU ,256MB DRAM, IBM DPSS318350 18G硬盤,Redhat Linux 9.0 操作系統;LINUX 服務器:Pentium 42.66GHz ( FC2PGA) CPU ,256MB DRAM, 80GB UltraATA/ 1007 ,200rpm硬盤,Redhat Linux 9.0 操作系統;WINDOWS服務器端:XEON 3.06GHz CPU ,512M DRAM 內存,Smart Array6i (板載) 存儲控制器,Qlogic QLA2300 PCI FC Adapter 光纖適配器,IBM 36。4GB (32P0726) 10Krpm 硬盤,Microsoft Windows2003操作系統;FC-RAID:NexStor 4000S ,CPU 600MHZ,512M SDRAM,10 ×ST314680FC 硬盤;普通NAS 存儲設備: P42.66GHz CPU ,512MB DDR ,Maxtor 160G硬盤,Redhat Linux 9.0 操作系統。
網絡連接:iSCSI 設備和普通NAS 設備都使用100M以太網卡Realtek RTL8139 ;Windows 服務器使用1000M 以太網卡HP NC7782 Gigabit Server Adapter ;Linux服務器使用1000M以太網卡。HPNC7782Gigabit Server Adapter。
功能測試
根據測試流程,功能測試包括三個方面的內容: (2) 平臺的統一,即在Windows 下能通過單一目錄樹方式訪問多個存儲節點,功能與Linux 下的pvfs 相似; (2) 協議的統一,即通過Windows 的“計算機管理”和Initiator 發起端(iSCSI 客戶端) 可以管理FC-RAID 和iSCSI Target 及普通的NAS 設備,并利用“動態磁盤機制”實現多種冗余;設備的統一,即iSCSI Target 通過和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 硬盤、100M iSCSI 硬盤、1000M iSCSI 硬盤、FC-RAID、FC-RAID 與iSCSI 構成的RAID0 及USN 系統數據傳輸率性能比較如圖7 所示。
?
本地IDE 硬盤、100M iSCSI 硬盤、1000M iSCSI 硬盤、FC-RAID 及FC-RAID 與iSCSI 構成的RAID0 ,以及USN 的IO/ s 性能比較如圖8 所示。
本地IDE 硬盤、100M iSCSI 硬盤、1000M iSCSI 硬盤、FC-RAID及FC-RAID 與iSCSI 構成的RAID0 ,以及USN 的平均響應時間性能比較如圖9 所示。
?
本地IDE 硬盤、100M iSCSI 硬盤、1000M iSCSI 硬盤、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 硬盤和1000M iSCSI 硬盤快的多。 當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 設備,設計和實現新的安全和高可用文件系統,以便為統一存儲網絡系統產品化后能真正為廣大企業,尤其是為廣大中小企業提供開放性、性能、可展性、性/ 價比都更好的海量存儲系統。
評論
查看更多