基于SAN的網絡存儲共享系統
隨著科學實驗的不斷開展,信息化的發展與多媒體網絡技術的推廣應用,數據量變得越來越復雜與繁多。特別是電子商務的廣泛應用,信息化的政務以及各行各業的網絡應用,數據已成為一種無形的戰略資產,如何利用現有的存儲結構進行數據存儲、共享變得越來越重要。數據存儲從單一的系統轉向網絡化方面發展,利用網絡的海量存儲能力與讀取的方便性,把數據進行網絡存儲共享已經成為數據存儲共享的一種趨勢,而傳統的SCSI存儲方案與目前應用廣泛的NAS數據存儲共享方案均有不盡人意之處。因此希望有一種優秀的解決方案來適應當今數據存儲共享的要求。
1 當前數據存儲共享的方案分析
1.1 SCSI的數據存儲共享方案
SCSI存儲結構也就是最早使用的存儲方案,另一種說法是DAS存儲,他的體系結構如圖1所示。
其核心思想是存儲介質以SCSI協議連接在服務器后面,服務器為數據存儲共享的中轉接點。存儲介質通過SCSI協議與服務器相連,SCSI結構采用的連接端口與連接線長度都十分有限。因此能提供的存儲容量十分有限,當需要增加存儲容量時就要增加SCSI的HUB用以進行連接,但他們的數據量增加到一定的數量時會出現性能瓶頸,因此對于大數據量的存儲使用多個DAS系統,存在著信息孤島現象,與數據的不統一現象,這對于合理的管理數據是十分的不利的。因此,此方案不利于進行海量的數據存儲共享。
SCSI方案是以服務器為中心的數據傳送方式,發展比較早,結構簡單,便于實現與理解,在小規模數據存儲情況下運行較好。但他沒有獨立的存儲操作系統,數據共享與管理復雜,維護成本高。在SCSI存儲方案中還可能存在有大量相互獨立的、沒有統一控制的數據,他們會浪費系統的存儲資源,影響數據的一致性。SCSI存儲方案中接口連接設備數量與距離受限,存儲容量有限,當要進行擴容時不得不使用HUB進行配置,而且可配置擴容的能力相當有限,隨著共享數據容量的增加,存在因大量數據存取引起延遲的性能瓶頸,更有甚當關鍵點服務器故障時會造成整個系統癱瘓,因此基于SCSI存儲方案構建的網絡數據共享存儲不是一種理想的方案,他不適應對數據的可管理性,海量與共享的要求。

1.2 NAS存儲方案的數據共享方案
NAS存儲是應中目前數據存儲的熱點存儲方案,他的思想是以內嵌的NAS服務器為中心的數據存儲,其結構如圖2所示。

在此方案之中希望利用網絡進行以數據為中心的存儲管理,在構成上他從服務器的后面去掉存儲器,將存儲器連接布置在LAN中。NAS通常被理解為專用數據存儲服務器,包括存儲設備和內嵌系統軟件。NAS通常被布置在LAN上某個特定的節點上,允許用戶在網絡上存取數據,NAS設備支持NFS與CIFS兩種文件系統,因此兼容了Windows文件系統與Unix文件系統進行數據的共享存儲,提供跨平臺文件共享功能。由于NAS可以集中管理和處理網絡上的所有數據,數據以文件的形式按照網絡協議在客戶機與存儲設備之間流動,他可以利用NFS實現異構平臺的客戶機對數據的共享,集成在存儲設備內的專用文件服務器提高了文件的I/O速度。
{{分頁}}
NAS解決SCSI數據存儲方案之中的擴容困難,配置復雜,不提供集中數據管理與跨平臺數據共享的不足。NAS已經成為一個可以自尋址的特殊服務器,存儲陣列完全從單個的服務器中解放出來,那么通過網絡取得存儲設備上的數據而不消耗服務器資源的設想就可以實現了。
雖然克服了并行SCSI結構的許多缺點,但是NAS也存在很明顯的缺點,這就是對LAN網絡帶寬的消耗。在NAS中,磁盤陣列的數據流也是通過網絡流動的。使用UDP協議或者TCP/IP協議對用戶數據進行打包傳送對一般的LAN或WAN事務是可以接受的;但是,對磁盤訪問事務進行打包傳送,即使是1 000 Mb/s的以太網,當組建了大型網絡數據共享系統時也很難提供足夠的帶寬,特別是進行多媒體應用與高數據流量的實時數據共享應用來說存在著幾乎不可容忍的不足;或者當外界與NAS建立連接消耗大量帶寬時也會造成網絡性能急劇下降,因此對于組建海量存儲共享系統來說,基于NAS的系統并不是一種理想的系統。
1.3 SAN的數據存儲
SAN是目前正在流行的前沿數據存儲方案,他的核心思想是用存儲區域網進行數據的存儲,他的結構特點如圖3所示。

他的主要思路是利用成熟的網絡技術,把服務器與存儲分離,使用一個專用的網絡進行存儲(也稱SAN網絡),服務器以FC協議通過專用的集線器、交換機和網關建立服務器(Server)和磁盤陣列(Storage)之間的直接連接,將LAN上的存儲事務轉換到主要由存儲設備組成的SAN上。從構成本質上看SAN并非一種產品,他是配置網絡化存儲的一種方法,這種網絡技術支持遠距離通信,并允許存儲設備真正與服務器隔離,使存儲設備不再單獨屬于某個專用的服務器,服務器可以對存儲設備中的任何單個設備進行連接。SAN網絡中的存儲如磁帶庫與磁盤陣列等設備可以不通過服務器直接進行相互之間的協作。
SAN從結構上解決了NAS數據訪問對網絡帶寬占用的問題,如果建立合適的存儲系統數據的訪問、備份和恢復不影響LAN的性能,在有大量數據訪問時,不會大幅度降低網絡性能。在SAN架構中,Server/Storage間的通訊采用SAN,而Client/Server間的通訊采用的是LAN。采用SAN適合Setver/Storage間大容量數據傳送,而Cli-ent/Server間的數據交換,LAN又可以發揮其靈活的優勢。
在SAN存儲方案中:存儲網中物理上分散的存儲設備在邏輯上完全一體,具有邏輯上的統一性;適合對數據進行統一管理,降低了管理費用;使用獨立的存儲網絡后,容易進行海量存儲擴充;具有很高的容錯能力,如果出現某個存儲局部點故障,則可以利用網絡的可容單點故障進行錯誤糾正,提高了系統的可靠性;以光纖網絡為傳輸介質,充分利用網絡帶寬提高了存取速度。具有在線擴充的能力,能滿足網絡存儲中數據的快速增長存儲需要,存儲網絡還具有很大的靈活性,能滿足在Internet計算大環境下各種計算變化對存儲的要求。
{{分頁}}
當然要利用好SAN存儲的優秀從邏輯角度上來說,一個SAN的邏輯運行要求有應用程序和管理工具的參與,這些工具能夠對多個主機系統中的存儲資源進行管理。這種邏輯管理體系結構包括從數據管理應用程序到設備管理在內的幾個層次,以及每一層中的管理控制。
正因為SAN具有海量的擴充能力,不受帶寬的限制,適應網絡化環境下數據快速增長與多樣性的要求。對于設計一種高效'的網絡數據存儲共享系統來說,基于SAN存儲平臺是一種理想的選擇。
2 基于SAN的存儲共享方案構造
2.1基于SAN的存儲共享的思想
利用網絡技術,高效的存儲共享數據是一種必然,但網絡的帶寬是有限的,當大量的數據在網上傳遞時,會造成網絡響應時間過長,不能滿足人們的需求。同時,傳統的分散式存儲結構由于分散數據的格式不統一、數據傳輸中的網絡擁擠等自身的局限性,很難從根本上解決數據共享的問題。
存儲局域網SAN(Storage Aiea Network)為此提供了一種解決思路。SAN的主要思想是將LAN上的存儲轉換到主要由存儲設備組成的SAN上,使得數據的訪問、備份和恢復不影響LAN的性能,在有大量數據訪問時,不會大幅度降低網絡性能,同時具有海量擴充的能力,很適應數據量爆炸性增加的存儲共享形勢。 SAN由存儲設備和聯網設備組成,可以使磁盤陣列、磁帶庫等存儲設備以高傳輸速率與多服務器相連,這樣就為基于Cilent/Serve:架構下的集群技術的應用奠定了硬件基礎。從軟件層次上看,SAN還需要一個異構系統數據存儲和共享系統來管理這個存儲網絡。
在軟件角度上看Unix系統具有較強的靈活性強、應用軟件豐富、應用廣泛的優勢;大型機系統具有高可靠性、高可用性、高服務能力(Reliability,Availability,service-ability),以及強大的I/O處理能力等不可替代的優點,并且長期以來積聚了大量豐富的信息資源。大型機系統通常承擔關鍵性的大數據量信息處理的工作,而Unix服務器、Windows服務器等開放系統通常作為服務器來提供與客戶相關的前端服務。在數據存儲領域,研究如何如何將他們結合起來,以充分利用兩類機器的優勢,降低數據存儲成本,并在存儲整合基礎上實現異構系統的計算資源整合是目前的一大難點與熱點。
所要設計的新系統就是要設計并實現這樣一個基于SAN的存儲共享軟件系統,用來實現大型機、Unix工作站、Windows NT工作站對磁盤陣列的共享存儲,并提供一組統一的應用編程接口(APplication programming In-terface,API),供上層應用程序使用。
2.2基于SAN的共享存儲系統總體設計
本系統的核心思想是基于SAN架構,利用大型機的高性能與豐富的軟件支持進行應用數據處理,通過共享的磁盤陣列與通用系統進行數據訪問。基于Unix或者Windows平臺,兩者的原理相同。考慮到Unix的豐富資源,在Unix上進行本系統的設計。
整個系統分為大型機端與Unix端2部分,如圖4所示。

2.2.1 大型機端部分
大型機端Server部分負責和Unix端進行通信,控制Unix端對共享磁盤陣列的訪問,并對各個Unix端的Serve進行管理。大型機端可以運行多個Server,也可以有多臺大型機,各自運行多個Server,在Unix端看來,這些Server的功能相同,地位并列,Unix端Server可以任意選擇其中之一與之通信實現應有的功能,以如何響應時間最短為選擇標準。
2.2.2 Unix端部分
UnIx端包括Server部分、動態鏈接庫部分及Com-mand群部分。Server部分是運行在通用系統即Unix或Windows上的daemon程序,他負責管理host,Path,media,AP等資源,轉發動態庫的各種文件操作請求。其中host。指大型機端不同的Server,每個Server認為是一個host;media被定義為共享LD。Path被定義為media所映射而成的本地設備文件;AP則是本地進程。
Library(動態鏈接庫)是一組函數,其中包括提供給用戶的一組API和一些I/O操作的中間處理函數。利用該模塊提供的API,Unix端就可以實現對共享磁盤陣列的訪問。
Command群是提供給用戶使用的一組命令,可以實現對系統的管理、控制功能以及對共享文件訪問的管理和控制。
2.3基于SAN網絡存儲共享系統的關鍵設計
對Unix端要設計如下一些功能進程:Unix的Server部分如圖5所示。

父進程 也成為總體進程,控制整個系統的其他進程,創建其他的進程。
監視進程他用于對整個系統的進程的監視,以判別他們是否工作正常。
控制進程 對磁盤進行管理,管理磁盤上面的共享數據,對大型機的請求進行響應。 通信進程 對Unix與大型機進行TCP/IP通信。
命令管理進程該進程主要是提供一組命令,通過此命令進行啟動或者停止Unix端的Server命令。激活與大型機的聯系,激活與磁盤陣列的聯系。
{{分頁}}
2.3.1 Unix端下的Server要完成的功能
共享磁盤文件資源控制功能;用戶名的轉換功能;對訪問共享文件的AP的監視功能;共享磁盤的構成管理功能;與大型機端Server通信的功能;共享文件的訪問閉塞功能;處理管理命令的功能。
2.3.2 Unix端的Library(動態鏈接庫)設計
Library實際上是一個函數庫,是Unix部分主體功能的實現者。其中包括面向用戶使用戶能夠用來訪問大型機管理下的共享盤的API,以及對用戶不公開的其他處理函數。Library被設計成如圖6所示的功能模塊。

應用程序接口(API)部分 該模塊是面向用戶的函數接口,他們就像一個個普通的C函數一樣,用戶可以在自己編寫的C/C++程序中調用這些的函數來實現共享磁盤文件訪問和管理的功能。
Fprc部分 該模塊主要完成與Unix端Server通信獲取文件信息,文件打開、關閉等,及其他前期準備和后續處理工作(構造/銷毀各種文件訪問控制表,分配/釋放內存空間等)。
Fseq部分 此模塊是各種文件訪問函數的核心部分,他是對大型機文件的數據進行訪問的主要處理部分。 虛擬訪問接口(Virtual Access Interface,VAI)部分此模塊位于Library的最底層,所有的磁盤訪問任務最終都要通過VAI來實現,他可以對大型機的共享文件進行存取訪問。
2.4基于SAN網絡存儲共享系統的工作原理
基于SAN的數據存儲共享系統工作時,大型機端運行的文件共享Server是運行在大型機上的服務程序,運行的操作系統是大型機上的專用操作系統。他負責與UnixServer連接并接收文件訪問請求,再利用大型機的API進行文件操作(非數據訪問),之后把文件信息通過TCP/IP返回給Unix端Server,最終通過Unix端的動態庫函數進行處理。從本質上看Unix端Server相對于本地的AP而言是一個服務程序,而相對于大型機端Server而言,他又相當于一個客戶端,所以有時也將他叫作中間Server。
大型機端Server與Unix端Server進行通信時,使用的是Socket連接,通過TCP/IP網絡進行信息的交互。而在訪問磁盤數據時,無論是Unix端還是大型機端,都是通過SAN直接訪問磁盤。另外,大型機端Server還負責管理各Unix端Server。
對于Unix等通用系統而言,雖然disk array與普通本地硬盤不同,但一旦連接到系統則對應用程序而言都是disk設備,訪問方式完全一樣。在磁盤陣列上存放的是可共享的數據,他的格式是大型機操作系統的文件系統。倘若Unix直接訪問這些數據,由于文件系統的不同,所讀出的數據必然是亂碼,所寫入的,也將不是正確的大型機文件系統的文件格式。因此,當利用通用系統進行文件讀寫時,必須首先通過動態庫提供的對大型機格式的文件的訪問函數,從大型機端Server取得文件信息并獲得文件控制權,這些請求全部經消息隊列發送到通用機端Server,再由通用機端Server將返回結果傳遞給動態庫讀寫函數,直接打開物理盤,進行文件的讀寫。
從大型機端的返回的文件信息,包括文件的屬性及地址分布、需要訪問長度等。通用機端得到這些信息后,將不再需要大型機的介入而直接根據這些文件信息進行訪問。這種訪問是用被稱為raw disk access的方式進行的。raw disk access是將disk看成連續Sector,以byte offset方式訪問disk的數據。這種訪問方式直接使用disk driv-er進行I/O,由于OS沒有參與讀寫過程,因此效率較高。另外,由于磁盤陣列上的文件系統不能被通用Server識別,也只能用raw disk的方式進行數據訪問。
磁盤陣列上的各個邏輯盤將會通過光纖網絡映射為Unix系統的硬盤設備。邏輯盤Lgicai Disk(LD)是diskarray的概念,他可以由多個物理disk(各物理disk的一部分或全部)按照一定的RAID方式構成,可以進行并行訪問或存儲冗余數據。LD可以叫volume,或media,在OS看來這就是一個raw disk,與普通物理硬盤一樣。因為Unix上的設備都被看作特殊文件,訪問設備類似于文件訪問,設備驅動程序都提供打開和讀寫接口來操作真正的硬件,另外還提供I/O control接口來進行特殊的設備控制或從設備獲取信息。與disk相關的special file都在/dev/dsk或/dev/rdsk目錄下,dsk目錄與rdsk目錄的差別是打開rdsk disk設備后,read/write/ioctl等調用將直接發送給硬件,而dsk目錄的設備則還經過OS的中間處理。
通過此過程,基于SAN的數據存儲共享系統能很好地進行高效的數據存儲共享,能夠提供跨平臺的文件共享服務,利用SAN的海量擴充潛力,能提供不斷增長的數據存儲服務。
3 結 語
目前已經在實驗室建成以兩臺Unix端,一臺HP服務器模擬的大型機,一個小型光纖網建立的基于SAN的網絡數據存儲共享存儲系統。通過模擬運行數據海量增長情況與數據的跨平臺共享表明本系統具有:實現了大型機與Windows及Unix平臺對磁盤陣列的共享訪問,跨平臺性好、接口簡單、擴容簡單。克服了傳統的SCSI存儲方案中的擴容有限,數據管理復雜,不直接支持跨平臺的數據共享,同時也克服了NAS存儲方案中數據仿問量增大時造成整個網絡性能急劇惡化的不足,能很好地適應當前網絡成熟,數據量急劇增長時用戶對數據存儲共享的需要,是一種很有應用價值的先進數據存儲共享解決方案。
相關推薦
-
-
| 2007-12-29
-
| 2012-05-21
-
| 2008-01-02
-
| 2013-01-11
-
-
-
| 2002-08-27
-
-
-
| 2010-01-14
-
| 2007-12-25
-
| 2004-01-06
-
| 2008-01-02
-
| 2009-07-06
-
| 2004-01-06
-
| 2007-12-25
-
| 2009-07-06
-
| 2010-01-14
-
-
| 2009-07-17
-
| 2004-08-23
-
| 2003-02-19
-
-
-
| 2009-07-06
-
| 2010-01-14
-
| 2009-07-17
-
-


評論