融合NAS和SAN的存儲網(wǎng)絡(luò)設(shè)計
系統(tǒng)設(shè)計
USN 是一個復(fù)雜的系統(tǒng),涉及到許多復(fù)雜的技術(shù),本文主要論述其核心技術(shù)的設(shè)計和實現(xiàn),即GMPFS、ASA 和iSCSI 系統(tǒng)的設(shè)計與實現(xiàn)。 GMPFS 可以駐留在多種操作系統(tǒng)平臺上(UNIX,Windows ,Linux) ,支持各種協(xié)議用戶的訪問(NFS ,CIFS ,iSCSI) ,為用戶或應(yīng)用程序提供對網(wǎng)絡(luò)存儲系統(tǒng)的數(shù)據(jù)訪問服務(wù)。 ASA 將多種存儲技術(shù)(這些存儲技術(shù)各有所長,也各有所短) 整合為一個統(tǒng)一的海量存儲系統(tǒng),充分發(fā)揮各種存儲技術(shù)的優(yōu)勢,使得該存儲系統(tǒng)對特定的應(yīng)用程序而言服務(wù)性能達到最優(yōu),有效地滿足多方面的應(yīng)用需求。iSCSI 真正的實現(xiàn)了塊I/ O 和文件I/ O 在IP 網(wǎng)絡(luò)上的統(tǒng)一,文件協(xié)議和塊協(xié)議在IP 協(xié)議上的統(tǒng)一。
全局多協(xié)議文件系統(tǒng)的設(shè)計
GMPFS 保留了分布式文件系統(tǒng)的靈活性和高性能的優(yōu)點,而克服了其在不同I/ O 協(xié)議支持方面的缺陷,能同時支持NFS、CIFS 和iSCSI 協(xié)議用戶的訪問。 GMPFS 在提供文件存取的方法和文件目錄結(jié)構(gòu)的同時,還為每種存儲卷提供特定的存儲模式。 每種存儲模式包含某種文件系統(tǒng)的元數(shù)據(jù)結(jié)構(gòu),操作接口(文件類型和數(shù)據(jù)塊類型) ,功能函數(shù)集(格式化,檢索等) ,優(yōu)化方法(cache方法和預(yù)取等) 和存儲空間分配回收方法及數(shù)據(jù)結(jié)構(gòu)。對于文件卷而言,存儲模式包含實現(xiàn)POSIX語義的操作函數(shù)和文件目錄結(jié)構(gòu);對于分區(qū)卷而言,存儲模式必須面向特定分區(qū)類型,如NTFS ,ext3。 所有的存儲模式都必須在元數(shù)據(jù)服務(wù)器中的ASA 系統(tǒng)中注冊,以便ASA 為用戶的I/O 請求進行通道選擇。
GMPFS的結(jié)構(gòu)如圖3 所示。其中協(xié)議轉(zhuǎn)換接口主要通過NFS 的擴展程序模塊和samba 模塊的組合對NFS 協(xié)議和CIFS協(xié)議的支持,并通過iSCSI 目標(biāo)器驅(qū)動程序的擴展對iSCSI 協(xié)議的支持。啟發(fā)式數(shù)據(jù)管理接口主要是用啟發(fā)式方法獲得用戶對存儲數(shù)據(jù)的需要,如性能、使用率以及安全性等。GMPFS數(shù)據(jù)組織邏輯界面提供數(shù)據(jù)組織的邏輯視圖,這一點正是針對傳統(tǒng)文件系統(tǒng)文件目錄結(jié)構(gòu)對于海量數(shù)據(jù)難以管理的弱點,在增加元數(shù)據(jù)信息的前提下,通過查詢和檢索,按照用戶需要提供各種類型文件視圖,例如根據(jù)文件創(chuàng)建的用戶和時間進行分類。擴展的文件或卷操作接口、數(shù)據(jù)組織與分配管理、元數(shù)據(jù)組織結(jié)構(gòu)和I/ O 定向器等主要是保證與傳統(tǒng)的文件系統(tǒng)操作語義兼容,實現(xiàn)程序級的數(shù)據(jù)訪問。應(yīng)用程序無需修改就可以使用USN 系統(tǒng)中的數(shù)據(jù)。提供與元數(shù)據(jù)服務(wù)器中的ASA 及存儲資源的接口和通訊,能充分利用ASA 系統(tǒng)所掌握的存儲資源,合理組織數(shù)據(jù),滿足用戶或應(yīng)用程序?qū)?shù)據(jù)存儲的多方面、個性化要求。如通過同時提供服務(wù)器通道和附網(wǎng)高速通道,改善用戶的I/ O 性能服務(wù),減少服務(wù)器瓶頸。
iSCSI系統(tǒng)設(shè)計
iSCSI 協(xié)議定義的是SCSI 到TCP/ IP 的映射,即將主機的SCSI 命令封裝成IP 數(shù)據(jù)包,在IP 網(wǎng)絡(luò)上傳輸,到達目的節(jié)點后,再恢復(fù)成封裝前的SCSI 命令,從而實現(xiàn)SCSI 命令在IP 網(wǎng)絡(luò)上的直接、透明傳輸。它整合了現(xiàn)有的存儲協(xié)議SCSI 和主流網(wǎng)絡(luò)協(xié)議TCP/ IP 等兩種主流協(xié)議,實現(xiàn)了存儲和網(wǎng)絡(luò)的無縫融合。從應(yīng)用的角度看,iSCSI 一方面通過SCSI 命令的遠程傳送,實現(xiàn)了和遠程存儲設(shè)備的命令級交互,使用戶訪問遠程的SCSI 設(shè)備像本地的SCSI 設(shè)備一樣方便,而且具有高速度;另一方面也可用于改造傳統(tǒng)的NAS、SAN 技術(shù),實現(xiàn)NAS 和SAN 的融合。iSCSI 系統(tǒng)是USN 系統(tǒng)的核心部分之一,iSCSI 的設(shè)計實現(xiàn)了基于IP 的數(shù)據(jù)塊訪問機制。
目前iSCSI 的實現(xiàn)方式可以考慮采用以下三種方式:純軟件方式、智能iSCSI 網(wǎng)卡實現(xiàn)方式、iSCSI HBA 卡實現(xiàn)方式。由于我們是設(shè)計USN 的原形系統(tǒng),所以只采用純軟件方式,iSCSI HBA 卡方式是下一步產(chǎn)品化我們將實現(xiàn)的目標(biāo)。iSCSI系統(tǒng)整體設(shè)計模型如圖4 所示(不包括管理模塊) 。服務(wù)器端(Target) 采用linux 操作系統(tǒng), 客戶端( Initiator) 采用Windows2000。SCSI 微端口驅(qū)動在系統(tǒng)中生成一個虛擬的SCSI 磁盤,過濾驅(qū)動截獲系統(tǒng)發(fā)給SCSI 磁盤的SCSI 命令,通過核心態(tài)的網(wǎng)絡(luò)接口發(fā)給服務(wù)器處理。
自主存儲代理系統(tǒng)的設(shè)計
自主存儲代理ASA 的一端面對海量存儲系統(tǒng)。目前的存儲系統(tǒng)有DAS(直連存儲) 、NAS、SAN、iSCSI 等,ASA 能夠自動地發(fā)現(xiàn)海量存儲系統(tǒng)中存儲設(shè)備的種類和可利用的各種資源,自主地對這些存儲設(shè)備和資源進行有效的統(tǒng)一管理和優(yōu)化;根據(jù)應(yīng)用的不同和應(yīng)用程序的具體需求,安排與應(yīng)用程序相適應(yīng)的存儲設(shè)備種類、性能以及可靠性和可用性等級等,使應(yīng)用程序得到最優(yōu)的存儲資源分配。
ASA 的另一端面對應(yīng)用程序(GMPFS) 。ASA 通過對目前存儲系統(tǒng)所使用的元數(shù)據(jù)進行擴展,采用啟發(fā)式的方法,收集用戶應(yīng)用信息,為用戶提供統(tǒng)一、方便、快捷的存儲訪問接口以及合理的數(shù)據(jù)存儲方案;根據(jù)用戶I/O請求所涉及數(shù)據(jù)的屬性,選擇客戶端與存儲設(shè)備交互數(shù)據(jù)的通道,即元數(shù)據(jù)(目錄、卷信息等) 和小數(shù)據(jù)I/O請求,選擇服務(wù)器通道,對大數(shù)據(jù)I/O請求選擇高速附網(wǎng)通道。大、小數(shù)據(jù)I/O請求由ASA 自主地根據(jù)整個系統(tǒng)的I/O信息量進行調(diào)整。ASA 系統(tǒng)結(jié)構(gòu)如圖5 所示。
客戶端與USN交互流程
USN 系統(tǒng)中包括三類用戶:Windows 文件I/O用戶(使用CIFS 協(xié)議) ,Unix 文件I/O用戶(使用NFS 協(xié)議) ,iSCSI 塊I/O用戶(使用iSCSI 協(xié)議) 。用戶在客戶端與USN 系統(tǒng)交互流程與圖6 所示。
塊I/O客戶的具體的數(shù)據(jù)讀寫流程為(如圖6) : (1) 客戶1上的應(yīng)用程序發(fā)出的塊I/O命令(SCSI 命令) 經(jīng)iSCSI 設(shè)備驅(qū)動層和TCP/ IP 協(xié)議棧之后,封裝成IP 數(shù)據(jù)包,在IP 網(wǎng)絡(luò)上傳輸; (2) 封裝后的SCSI 命令達到USN 服務(wù)器之后,經(jīng)解封裝,恢復(fù)成封裝前的SCSI 命令,USN 服務(wù)器利用這些SCSI 命令對iSCSI 存儲設(shè)備發(fā)出塊I/O讀寫請求; (3) 被請求的數(shù)據(jù)塊經(jīng)iSCSI 設(shè)備中的iSCSI 層和TCP/ IP 協(xié)議棧封裝成PDU ,iSCSI 設(shè)備傳送的PDU 到客戶端可經(jīng)兩個途徑:一種是經(jīng)過服務(wù)器轉(zhuǎn)發(fā),一種是經(jīng)過高速附網(wǎng)通道直接傳到客戶端; (4)PDU 經(jīng)IP 網(wǎng)絡(luò)上傳輸返回到客戶1 后,PDU 經(jīng)客戶1 解封裝并由其文件系統(tǒng)組合成文件。
當(dāng)USN 系統(tǒng)提供File I/O 服務(wù)時,其數(shù)據(jù)讀寫過程(如圖6 所示) : (1) 客戶2 (文件I/O) 向USN 服務(wù)器發(fā)出文件讀寫請求(其工作方式和傳統(tǒng)的NAS 相同) ; (2)USN 服務(wù)器接到客戶端的文件讀寫請求后:一方面,將該I/O 請求發(fā)給對應(yīng)的NAS設(shè)備或NAS 頭,NAS 設(shè)備或NAS 頭將所請求數(shù)據(jù)傳給USN 服務(wù)器,再經(jīng)USN 服務(wù)器傳到客戶端;另一方面USN 服務(wù)器不把文件I/O 請求傳到NAS 或NAS 頭,而是將NAS 或NAS 頭的IP 地址傳給客戶端,客戶端通過該IP 地址直接與NAS 或NAS頭進行數(shù)據(jù)交互。
這里的NAS 頭主要是支持FC 協(xié)議的SAN 設(shè)備能直接掛到TCP/ IP 網(wǎng)絡(luò),支持NFS/ CIFS 用戶的訪問,NAS 頭也可安裝iSCSI目標(biāo)器驅(qū)動程序支持iSCSI 用戶的訪問。不論是塊I/O請求還是文件I/O請求,都可通過附網(wǎng)高速通道實現(xiàn)客戶端與存儲設(shè)備的數(shù)據(jù)交互。
試驗評估
從客戶端對構(gòu)建USN 的各子存儲系統(tǒng)以及整個USN 進行功能和性能評測,并作進一步的比較。我們從兩個方面對統(tǒng)一存儲網(wǎng)進行測試:功能測試和性能測試。功能測試包括: (1)構(gòu)建100M及1000M以太網(wǎng)環(huán)境,將iSCSI 存儲設(shè)備與服務(wù)器連接;在服務(wù)器操作系統(tǒng)中安裝iSCSI 軟件包后,使用戶能夠通過網(wǎng)絡(luò)獲得iSCSI 存儲設(shè)備提供的存儲空間,并能象使用本地硬盤一樣對其進行操作。
本測試項測試服務(wù)器端iSCSI 盤安裝、設(shè)置、管理和使用等各項功能; (2) iSCSI 存儲設(shè)備作為NAS 頭的存儲設(shè)備,與NAS 頭組成一個NAS 存儲系統(tǒng),本測試項測試iSCSI 盤在NAS 中的安裝、設(shè)置、管理和使用等各項功能; (3) iSCSI 盤與本地盤、FC-RAID 盤構(gòu)成各種冗余度的RAID ,本測試項測試各種存儲盤在RAID 中的安裝、配置、管理和使用等各項功能; (4) 多個NAS、iSCSI 設(shè)備、NAS 頭連接FC-RAID 通過多GMPFS 和ASA 構(gòu)建成USN 海量存儲系統(tǒng),本項測試測試GMPFS 和ASA 系統(tǒng)在融合NAS、iSCSI 和SAN 的系統(tǒng)中的安裝、配置及使用等各項功能。
性能測試包括:測試在100M和1000M網(wǎng)環(huán)境中不同工作負載下NAS 存儲設(shè)備、iSCSI 存儲設(shè)備、FC-RAID、本地硬盤以及它們組成的海量USN系統(tǒng)的數(shù)據(jù)傳輸性能:包括單位時間內(nèi)的IO 次數(shù)、一次IO 的平均響應(yīng)時間、數(shù)據(jù)傳輸率和CPU 利用率。該項測試的主要思想是針對不同的網(wǎng)絡(luò)應(yīng)用環(huán)境,對各種存儲設(shè)備和各種傳輸通道進行頻繁的IO 處理,在確定時間內(nèi)統(tǒng)計并計算IO 率、數(shù)傳率、響應(yīng)時間、CPU 利用率等性能參數(shù),從而得到的各種性能評估。
評論