融合NAS和SAN的存儲網絡設計
系統設計
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 利用率等性能參數,從而得到的各種性能評估。
評論