基于SAN的網(wǎng)絡(luò)存儲(chǔ)共享系統(tǒng)
隨著科學(xué)實(shí)驗(yàn)的不斷開(kāi)展,信息化的發(fā)展與多媒體網(wǎng)絡(luò)技術(shù)的推廣應(yīng)用,數(shù)據(jù)量變得越來(lái)越復(fù)雜與繁多。特別是電子商務(wù)的廣泛應(yīng)用,信息化的政務(wù)以及各行各業(yè)的網(wǎng)絡(luò)應(yīng)用,數(shù)據(jù)已成為一種無(wú)形的戰(zhàn)略資產(chǎn),如何利用現(xiàn)有的存儲(chǔ)結(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)、共享變得越來(lái)越重要。數(shù)據(jù)存儲(chǔ)從單一的系統(tǒng)轉(zhuǎn)向網(wǎng)絡(luò)化方面發(fā)展,利用網(wǎng)絡(luò)的海量存儲(chǔ)能力與讀取的方便性,把數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)存儲(chǔ)共享已經(jīng)成為數(shù)據(jù)存儲(chǔ)共享的一種趨勢(shì),而傳統(tǒng)的SCSI存儲(chǔ)方案與目前應(yīng)用廣泛的NAS數(shù)據(jù)存儲(chǔ)共享方案均有不盡人意之處。因此希望有一種優(yōu)秀的解決方案來(lái)適應(yīng)當(dāng)今數(shù)據(jù)存儲(chǔ)共享的要求。
1 當(dāng)前數(shù)據(jù)存儲(chǔ)共享的方案分析
1.1 SCSI的數(shù)據(jù)存儲(chǔ)共享方案
SCSI存儲(chǔ)結(jié)構(gòu)也就是最早使用的存儲(chǔ)方案,另一種說(shuō)法是DAS存儲(chǔ),他的體系結(jié)構(gòu)如圖1所示。
其核心思想是存儲(chǔ)介質(zhì)以SCSI協(xié)議連接在服務(wù)器后面,服務(wù)器為數(shù)據(jù)存儲(chǔ)共享的中轉(zhuǎn)接點(diǎn)。存儲(chǔ)介質(zhì)通過(guò)SCSI協(xié)議與服務(wù)器相連,SCSI結(jié)構(gòu)采用的連接端口與連接線(xiàn)長(zhǎng)度都十分有限。因此能提供的存儲(chǔ)容量十分有限,當(dāng)需要增加存儲(chǔ)容量時(shí)就要增加SCSI的HUB用以進(jìn)行連接,但他們的數(shù)據(jù)量增加到一定的數(shù)量時(shí)會(huì)出現(xiàn)性能瓶頸,因此對(duì)于大數(shù)據(jù)量的存儲(chǔ)使用多個(gè)DAS系統(tǒng),存在著信息孤島現(xiàn)象,與數(shù)據(jù)的不統(tǒng)一現(xiàn)象,這對(duì)于合理的管理數(shù)據(jù)是十分的不利的。因此,此方案不利于進(jìn)行海量的數(shù)據(jù)存儲(chǔ)共享。
SCSI方案是以服務(wù)器為中心的數(shù)據(jù)傳送方式,發(fā)展比較早,結(jié)構(gòu)簡(jiǎn)單,便于實(shí)現(xiàn)與理解,在小規(guī)模數(shù)據(jù)存儲(chǔ)情況下運(yùn)行較好。但他沒(méi)有獨(dú)立的存儲(chǔ)操作系統(tǒng),數(shù)據(jù)共享與管理復(fù)雜,維護(hù)成本高。在SCSI存儲(chǔ)方案中還可能存在有大量相互獨(dú)立的、沒(méi)有統(tǒng)一控制的數(shù)據(jù),他們會(huì)浪費(fèi)系統(tǒng)的存儲(chǔ)資源,影響數(shù)據(jù)的一致性。SCSI存儲(chǔ)方案中接口連接設(shè)備數(shù)量與距離受限,存儲(chǔ)容量有限,當(dāng)要進(jìn)行擴(kuò)容時(shí)不得不使用HUB進(jìn)行配置,而且可配置擴(kuò)容的能力相當(dāng)有限,隨著共享數(shù)據(jù)容量的增加,存在因大量數(shù)據(jù)存取引起延遲的性能瓶頸,更有甚當(dāng)關(guān)鍵點(diǎn)服務(wù)器故障時(shí)會(huì)造成整個(gè)系統(tǒng)癱瘓,因此基于SCSI存儲(chǔ)方案構(gòu)建的網(wǎng)絡(luò)數(shù)據(jù)共享存儲(chǔ)不是一種理想的方案,他不適應(yīng)對(duì)數(shù)據(jù)的可管理性,海量與共享的要求。
1.2 NAS存儲(chǔ)方案的數(shù)據(jù)共享方案
NAS存儲(chǔ)是應(yīng)中目前數(shù)據(jù)存儲(chǔ)的熱點(diǎn)存儲(chǔ)方案,他的思想是以?xún)?nèi)嵌的NAS服務(wù)器為中心的數(shù)據(jù)存儲(chǔ),其結(jié)構(gòu)如圖2所示。
在此方案之中希望利用網(wǎng)絡(luò)進(jìn)行以數(shù)據(jù)為中心的存儲(chǔ)管理,在構(gòu)成上他從服務(wù)器的后面去掉存儲(chǔ)器,將存儲(chǔ)器連接布置在LAN中。NAS通常被理解為專(zhuān)用數(shù)據(jù)存儲(chǔ)服務(wù)器,包括存儲(chǔ)設(shè)備和內(nèi)嵌系統(tǒng)軟件。NAS通常被布置在LAN上某個(gè)特定的節(jié)點(diǎn)上,允許用戶(hù)在網(wǎng)絡(luò)上存取數(shù)據(jù),NAS設(shè)備支持NFS與CIFS兩種文件系統(tǒng),因此兼容了Windows文件系統(tǒng)與Unix文件系統(tǒng)進(jìn)行數(shù)據(jù)的共享存儲(chǔ),提供跨平臺(tái)文件共享功能。由于NAS可以集中管理和處理網(wǎng)絡(luò)上的所有數(shù)據(jù),數(shù)據(jù)以文件的形式按照網(wǎng)絡(luò)協(xié)議在客戶(hù)機(jī)與存儲(chǔ)設(shè)備之間流動(dòng),他可以利用NFS實(shí)現(xiàn)異構(gòu)平臺(tái)的客戶(hù)機(jī)對(duì)數(shù)據(jù)的共享,集成在存儲(chǔ)設(shè)備內(nèi)的專(zhuān)用文件服務(wù)器提高了文件的I/O速度。
{{分頁(yè)}}
NAS解決SCSI數(shù)據(jù)存儲(chǔ)方案之中的擴(kuò)容困難,配置復(fù)雜,不提供集中數(shù)據(jù)管理與跨平臺(tái)數(shù)據(jù)共享的不足。NAS已經(jīng)成為一個(gè)可以自尋址的特殊服務(wù)器,存儲(chǔ)陣列完全從單個(gè)的服務(wù)器中解放出來(lái),那么通過(guò)網(wǎng)絡(luò)取得存儲(chǔ)設(shè)備上的數(shù)據(jù)而不消耗服務(wù)器資源的設(shè)想就可以實(shí)現(xiàn)了。
雖然克服了并行SCSI結(jié)構(gòu)的許多缺點(diǎn),但是NAS也存在很明顯的缺點(diǎn),這就是對(duì)LAN網(wǎng)絡(luò)帶寬的消耗。在NAS中,磁盤(pán)陣列的數(shù)據(jù)流也是通過(guò)網(wǎng)絡(luò)流動(dòng)的。使用UDP協(xié)議或者TCP/IP協(xié)議對(duì)用戶(hù)數(shù)據(jù)進(jìn)行打包傳送對(duì)一般的LAN或WAN事務(wù)是可以接受的;但是,對(duì)磁盤(pán)訪(fǎng)問(wèn)事務(wù)進(jìn)行打包傳送,即使是1 000 Mb/s的以太網(wǎng),當(dāng)組建了大型網(wǎng)絡(luò)數(shù)據(jù)共享系統(tǒng)時(shí)也很難提供足夠的帶寬,特別是進(jìn)行多媒體應(yīng)用與高數(shù)據(jù)流量的實(shí)時(shí)數(shù)據(jù)共享應(yīng)用來(lái)說(shuō)存在著幾乎不可容忍的不足;或者當(dāng)外界與NAS建立連接消耗大量帶寬時(shí)也會(huì)造成網(wǎng)絡(luò)性能急劇下降,因此對(duì)于組建海量存儲(chǔ)共享系統(tǒng)來(lái)說(shuō),基于NAS的系統(tǒng)并不是一種理想的系統(tǒng)。
1.3 SAN的數(shù)據(jù)存儲(chǔ)
SAN是目前正在流行的前沿?cái)?shù)據(jù)存儲(chǔ)方案,他的核心思想是用存儲(chǔ)區(qū)域網(wǎng)進(jìn)行數(shù)據(jù)的存儲(chǔ),他的結(jié)構(gòu)特點(diǎn)如圖3所示。
他的主要思路是利用成熟的網(wǎng)絡(luò)技術(shù),把服務(wù)器與存儲(chǔ)分離,使用一個(gè)專(zhuān)用的網(wǎng)絡(luò)進(jìn)行存儲(chǔ)(也稱(chēng)SAN網(wǎng)絡(luò)),服務(wù)器以FC協(xié)議通過(guò)專(zhuān)用的集線(xiàn)器、交換機(jī)和網(wǎng)關(guān)建立服務(wù)器(Server)和磁盤(pán)陣列(Storage)之間的直接連接,將LAN上的存儲(chǔ)事務(wù)轉(zhuǎn)換到主要由存儲(chǔ)設(shè)備組成的SAN上。從構(gòu)成本質(zhì)上看SAN并非一種產(chǎn)品,他是配置網(wǎng)絡(luò)化存儲(chǔ)的一種方法,這種網(wǎng)絡(luò)技術(shù)支持遠(yuǎn)距離通信,并允許存儲(chǔ)設(shè)備真正與服務(wù)器隔離,使存儲(chǔ)設(shè)備不再單獨(dú)屬于某個(gè)專(zhuān)用的服務(wù)器,服務(wù)器可以對(duì)存儲(chǔ)設(shè)備中的任何單個(gè)設(shè)備進(jìn)行連接。SAN網(wǎng)絡(luò)中的存儲(chǔ)如磁帶庫(kù)與磁盤(pán)陣列等設(shè)備可以不通過(guò)服務(wù)器直接進(jìn)行相互之間的協(xié)作。
SAN從結(jié)構(gòu)上解決了NAS數(shù)據(jù)訪(fǎng)問(wèn)對(duì)網(wǎng)絡(luò)帶寬占用的問(wèn)題,如果建立合適的存儲(chǔ)系統(tǒng)數(shù)據(jù)的訪(fǎng)問(wèn)、備份和恢復(fù)不影響LAN的性能,在有大量數(shù)據(jù)訪(fǎng)問(wèn)時(shí),不會(huì)大幅度降低網(wǎng)絡(luò)性能。在SAN架構(gòu)中,Server/Storage間的通訊采用SAN,而Client/Server間的通訊采用的是LAN。采用SAN適合Setver/Storage間大容量數(shù)據(jù)傳送,而Cli-ent/Server間的數(shù)據(jù)交換,LAN又可以發(fā)揮其靈活的優(yōu)勢(shì)。
在SAN存儲(chǔ)方案中:存儲(chǔ)網(wǎng)中物理上分散的存儲(chǔ)設(shè)備在邏輯上完全一體,具有邏輯上的統(tǒng)一性;適合對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一管理,降低了管理費(fèi)用;使用獨(dú)立的存儲(chǔ)網(wǎng)絡(luò)后,容易進(jìn)行海量存儲(chǔ)擴(kuò)充;具有很高的容錯(cuò)能力,如果出現(xiàn)某個(gè)存儲(chǔ)局部點(diǎn)故障,則可以利用網(wǎng)絡(luò)的可容單點(diǎn)故障進(jìn)行錯(cuò)誤糾正,提高了系統(tǒng)的可靠性;以光纖網(wǎng)絡(luò)為傳輸介質(zhì),充分利用網(wǎng)絡(luò)帶寬提高了存取速度。具有在線(xiàn)擴(kuò)充的能力,能滿(mǎn)足網(wǎng)絡(luò)存儲(chǔ)中數(shù)據(jù)的快速增長(zhǎng)存儲(chǔ)需要,存儲(chǔ)網(wǎng)絡(luò)還具有很大的靈活性,能滿(mǎn)足在Internet計(jì)算大環(huán)境下各種計(jì)算變化對(duì)存儲(chǔ)的要求。
{{分頁(yè)}}
當(dāng)然要利用好SAN存儲(chǔ)的優(yōu)秀從邏輯角度上來(lái)說(shuō),一個(gè)SAN的邏輯運(yùn)行要求有應(yīng)用程序和管理工具的參與,這些工具能夠?qū)Χ鄠€(gè)主機(jī)系統(tǒng)中的存儲(chǔ)資源進(jìn)行管理。這種邏輯管理體系結(jié)構(gòu)包括從數(shù)據(jù)管理應(yīng)用程序到設(shè)備管理在內(nèi)的幾個(gè)層次,以及每一層中的管理控制。
正因?yàn)镾AN具有海量的擴(kuò)充能力,不受帶寬的限制,適應(yīng)網(wǎng)絡(luò)化環(huán)境下數(shù)據(jù)快速增長(zhǎng)與多樣性的要求。對(duì)于設(shè)計(jì)一種高效'的網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)共享系統(tǒng)來(lái)說(shuō),基于SAN存儲(chǔ)平臺(tái)是一種理想的選擇。
2 基于SAN的存儲(chǔ)共享方案構(gòu)造
2.1基于SAN的存儲(chǔ)共享的思想
利用網(wǎng)絡(luò)技術(shù),高效的存儲(chǔ)共享數(shù)據(jù)是一種必然,但網(wǎng)絡(luò)的帶寬是有限的,當(dāng)大量的數(shù)據(jù)在網(wǎng)上傳遞時(shí),會(huì)造成網(wǎng)絡(luò)響應(yīng)時(shí)間過(guò)長(zhǎng),不能滿(mǎn)足人們的需求。同時(shí),傳統(tǒng)的分散式存儲(chǔ)結(jié)構(gòu)由于分散數(shù)據(jù)的格式不統(tǒng)一、數(shù)據(jù)傳輸中的網(wǎng)絡(luò)擁擠等自身的局限性,很難從根本上解決數(shù)據(jù)共享的問(wèn)題。
存儲(chǔ)局域網(wǎng)SAN(Storage Aiea Network)為此提供了一種解決思路。SAN的主要思想是將LAN上的存儲(chǔ)轉(zhuǎn)換到主要由存儲(chǔ)設(shè)備組成的SAN上,使得數(shù)據(jù)的訪(fǎng)問(wèn)、備份和恢復(fù)不影響LAN的性能,在有大量數(shù)據(jù)訪(fǎng)問(wèn)時(shí),不會(huì)大幅度降低網(wǎng)絡(luò)性能,同時(shí)具有海量擴(kuò)充的能力,很適應(yīng)數(shù)據(jù)量爆炸性增加的存儲(chǔ)共享形勢(shì)。 SAN由存儲(chǔ)設(shè)備和聯(lián)網(wǎng)設(shè)備組成,可以使磁盤(pán)陣列、磁帶庫(kù)等存儲(chǔ)設(shè)備以高傳輸速率與多服務(wù)器相連,這樣就為基于Cilent/Serve:架構(gòu)下的集群技術(shù)的應(yīng)用奠定了硬件基礎(chǔ)。從軟件層次上看,SAN還需要一個(gè)異構(gòu)系統(tǒng)數(shù)據(jù)存儲(chǔ)和共享系統(tǒng)來(lái)管理這個(gè)存儲(chǔ)網(wǎng)絡(luò)。
在軟件角度上看Unix系統(tǒng)具有較強(qiáng)的靈活性強(qiáng)、應(yīng)用軟件豐富、應(yīng)用廣泛的優(yōu)勢(shì);大型機(jī)系統(tǒng)具有高可靠性、高可用性、高服務(wù)能力(Reliability,Availability,service-ability),以及強(qiáng)大的I/O處理能力等不可替代的優(yōu)點(diǎn),并且長(zhǎng)期以來(lái)積聚了大量豐富的信息資源。大型機(jī)系統(tǒng)通常承擔(dān)關(guān)鍵性的大數(shù)據(jù)量信息處理的工作,而Unix服務(wù)器、Windows服務(wù)器等開(kāi)放系統(tǒng)通常作為服務(wù)器來(lái)提供與客戶(hù)相關(guān)的前端服務(wù)。在數(shù)據(jù)存儲(chǔ)領(lǐng)域,研究如何如何將他們結(jié)合起來(lái),以充分利用兩類(lèi)機(jī)器的優(yōu)勢(shì),降低數(shù)據(jù)存儲(chǔ)成本,并在存儲(chǔ)整合基礎(chǔ)上實(shí)現(xiàn)異構(gòu)系統(tǒng)的計(jì)算資源整合是目前的一大難點(diǎn)與熱點(diǎn)。
所要設(shè)計(jì)的新系統(tǒng)就是要設(shè)計(jì)并實(shí)現(xiàn)這樣一個(gè)基于SAN的存儲(chǔ)共享軟件系統(tǒng),用來(lái)實(shí)現(xiàn)大型機(jī)、Unix工作站、Windows NT工作站對(duì)磁盤(pán)陣列的共享存儲(chǔ),并提供一組統(tǒng)一的應(yīng)用編程接口(APplication programming In-terface,API),供上層應(yīng)用程序使用。
2.2基于SAN的共享存儲(chǔ)系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)的核心思想是基于SAN架構(gòu),利用大型機(jī)的高性能與豐富的軟件支持進(jìn)行應(yīng)用數(shù)據(jù)處理,通過(guò)共享的磁盤(pán)陣列與通用系統(tǒng)進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)?;赨nix或者Windows平臺(tái),兩者的原理相同。考慮到Unix的豐富資源,在Unix上進(jìn)行本系統(tǒng)的設(shè)計(jì)。
整個(gè)系統(tǒng)分為大型機(jī)端與Unix端2部分,如圖4所示。
2.2.1 大型機(jī)端部分
大型機(jī)端Server部分負(fù)責(zé)和Unix端進(jìn)行通信,控制Unix端對(duì)共享磁盤(pán)陣列的訪(fǎng)問(wèn),并對(duì)各個(gè)Unix端的Serve進(jìn)行管理。大型機(jī)端可以運(yùn)行多個(gè)Server,也可以有多臺(tái)大型機(jī),各自運(yùn)行多個(gè)Server,在Unix端看來(lái),這些Server的功能相同,地位并列,Unix端Server可以任意選擇其中之一與之通信實(shí)現(xiàn)應(yīng)有的功能,以如何響應(yīng)時(shí)間最短為選擇標(biāo)準(zhǔn)。
2.2.2 Unix端部分
UnIx端包括Server部分、動(dòng)態(tài)鏈接庫(kù)部分及Com-mand群部分。Server部分是運(yùn)行在通用系統(tǒng)即Unix或Windows上的daemon程序,他負(fù)責(zé)管理host,Path,media,AP等資源,轉(zhuǎn)發(fā)動(dòng)態(tài)庫(kù)的各種文件操作請(qǐng)求。其中host。指大型機(jī)端不同的Server,每個(gè)Server認(rèn)為是一個(gè)host;media被定義為共享LD。Path被定義為media所映射而成的本地設(shè)備文件;AP則是本地進(jìn)程。
Library(動(dòng)態(tài)鏈接庫(kù))是一組函數(shù),其中包括提供給用戶(hù)的一組API和一些I/O操作的中間處理函數(shù)。利用該模塊提供的API,Unix端就可以實(shí)現(xiàn)對(duì)共享磁盤(pán)陣列的訪(fǎng)問(wèn)。
Command群是提供給用戶(hù)使用的一組命令,可以實(shí)現(xiàn)對(duì)系統(tǒng)的管理、控制功能以及對(duì)共享文件訪(fǎng)問(wèn)的管理和控制。
2.3基于SAN網(wǎng)絡(luò)存儲(chǔ)共享系統(tǒng)的關(guān)鍵設(shè)計(jì)
對(duì)Unix端要設(shè)計(jì)如下一些功能進(jìn)程:Unix的Server部分如圖5所示。
父進(jìn)程 也成為總體進(jìn)程,控制整個(gè)系統(tǒng)的其他進(jìn)程,創(chuàng)建其他的進(jìn)程。
監(jiān)視進(jìn)程他用于對(duì)整個(gè)系統(tǒng)的進(jìn)程的監(jiān)視,以判別他們是否工作正常。
控制進(jìn)程 對(duì)磁盤(pán)進(jìn)行管理,管理磁盤(pán)上面的共享數(shù)據(jù),對(duì)大型機(jī)的請(qǐng)求進(jìn)行響應(yīng)。 通信進(jìn)程 對(duì)Unix與大型機(jī)進(jìn)行TCP/IP通信。
命令管理進(jìn)程該進(jìn)程主要是提供一組命令,通過(guò)此命令進(jìn)行啟動(dòng)或者停止Unix端的Server命令。激活與大型機(jī)的聯(lián)系,激活與磁盤(pán)陣列的聯(lián)系。
{{分頁(yè)}}
2.3.1 Unix端下的Server要完成的功能
共享磁盤(pán)文件資源控制功能;用戶(hù)名的轉(zhuǎn)換功能;對(duì)訪(fǎng)問(wèn)共享文件的AP的監(jiān)視功能;共享磁盤(pán)的構(gòu)成管理功能;與大型機(jī)端Server通信的功能;共享文件的訪(fǎng)問(wèn)閉塞功能;處理管理命令的功能。
2.3.2 Unix端的Library(動(dòng)態(tài)鏈接庫(kù))設(shè)計(jì)
Library實(shí)際上是一個(gè)函數(shù)庫(kù),是Unix部分主體功能的實(shí)現(xiàn)者。其中包括面向用戶(hù)使用戶(hù)能夠用來(lái)訪(fǎng)問(wèn)大型機(jī)管理下的共享盤(pán)的API,以及對(duì)用戶(hù)不公開(kāi)的其他處理函數(shù)。Library被設(shè)計(jì)成如圖6所示的功能模塊。
應(yīng)用程序接口(API)部分 該模塊是面向用戶(hù)的函數(shù)接口,他們就像一個(gè)個(gè)普通的C函數(shù)一樣,用戶(hù)可以在自己編寫(xiě)的C/C++程序中調(diào)用這些的函數(shù)來(lái)實(shí)現(xiàn)共享磁盤(pán)文件訪(fǎng)問(wèn)和管理的功能。
Fprc部分 該模塊主要完成與Unix端Server通信獲取文件信息,文件打開(kāi)、關(guān)閉等,及其他前期準(zhǔn)備和后續(xù)處理工作(構(gòu)造/銷(xiāo)毀各種文件訪(fǎng)問(wèn)控制表,分配/釋放內(nèi)存空間等)。
Fseq部分 此模塊是各種文件訪(fǎng)問(wèn)函數(shù)的核心部分,他是對(duì)大型機(jī)文件的數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn)的主要處理部分。 虛擬訪(fǎng)問(wèn)接口(Virtual Access Interface,VAI)部分此模塊位于Library的最底層,所有的磁盤(pán)訪(fǎng)問(wèn)任務(wù)最終都要通過(guò)VAI來(lái)實(shí)現(xiàn),他可以對(duì)大型機(jī)的共享文件進(jìn)行存取訪(fǎng)問(wèn)。
2.4基于SAN網(wǎng)絡(luò)存儲(chǔ)共享系統(tǒng)的工作原理
基于SAN的數(shù)據(jù)存儲(chǔ)共享系統(tǒng)工作時(shí),大型機(jī)端運(yùn)行的文件共享Server是運(yùn)行在大型機(jī)上的服務(wù)程序,運(yùn)行的操作系統(tǒng)是大型機(jī)上的專(zhuān)用操作系統(tǒng)。他負(fù)責(zé)與UnixServer連接并接收文件訪(fǎng)問(wèn)請(qǐng)求,再利用大型機(jī)的API進(jìn)行文件操作(非數(shù)據(jù)訪(fǎng)問(wèn)),之后把文件信息通過(guò)TCP/IP返回給Unix端Server,最終通過(guò)Unix端的動(dòng)態(tài)庫(kù)函數(shù)進(jìn)行處理。從本質(zhì)上看Unix端Server相對(duì)于本地的AP而言是一個(gè)服務(wù)程序,而相對(duì)于大型機(jī)端Server而言,他又相當(dāng)于一個(gè)客戶(hù)端,所以有時(shí)也將他叫作中間Server。
大型機(jī)端Server與Unix端Server進(jìn)行通信時(shí),使用的是Socket連接,通過(guò)TCP/IP網(wǎng)絡(luò)進(jìn)行信息的交互。而在訪(fǎng)問(wèn)磁盤(pán)數(shù)據(jù)時(shí),無(wú)論是Unix端還是大型機(jī)端,都是通過(guò)SAN直接訪(fǎng)問(wèn)磁盤(pán)。另外,大型機(jī)端Server還負(fù)責(zé)管理各Unix端Server。
對(duì)于Unix等通用系統(tǒng)而言,雖然disk array與普通本地硬盤(pán)不同,但一旦連接到系統(tǒng)則對(duì)應(yīng)用程序而言都是disk設(shè)備,訪(fǎng)問(wèn)方式完全一樣。在磁盤(pán)陣列上存放的是可共享的數(shù)據(jù),他的格式是大型機(jī)操作系統(tǒng)的文件系統(tǒng)。倘若Unix直接訪(fǎng)問(wèn)這些數(shù)據(jù),由于文件系統(tǒng)的不同,所讀出的數(shù)據(jù)必然是亂碼,所寫(xiě)入的,也將不是正確的大型機(jī)文件系統(tǒng)的文件格式。因此,當(dāng)利用通用系統(tǒng)進(jìn)行文件讀寫(xiě)時(shí),必須首先通過(guò)動(dòng)態(tài)庫(kù)提供的對(duì)大型機(jī)格式的文件的訪(fǎng)問(wèn)函數(shù),從大型機(jī)端Server取得文件信息并獲得文件控制權(quán),這些請(qǐng)求全部經(jīng)消息隊(duì)列發(fā)送到通用機(jī)端Server,再由通用機(jī)端Server將返回結(jié)果傳遞給動(dòng)態(tài)庫(kù)讀寫(xiě)函數(shù),直接打開(kāi)物理盤(pán),進(jìn)行文件的讀寫(xiě)。
從大型機(jī)端的返回的文件信息,包括文件的屬性及地址分布、需要訪(fǎng)問(wèn)長(zhǎng)度等。通用機(jī)端得到這些信息后,將不再需要大型機(jī)的介入而直接根據(jù)這些文件信息進(jìn)行訪(fǎng)問(wèn)。這種訪(fǎng)問(wèn)是用被稱(chēng)為raw disk access的方式進(jìn)行的。raw disk access是將disk看成連續(xù)Sector,以byte offset方式訪(fǎng)問(wèn)disk的數(shù)據(jù)。這種訪(fǎng)問(wèn)方式直接使用disk driv-er進(jìn)行I/O,由于OS沒(méi)有參與讀寫(xiě)過(guò)程,因此效率較高。另外,由于磁盤(pán)陣列上的文件系統(tǒng)不能被通用Server識(shí)別,也只能用raw disk的方式進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)。
磁盤(pán)陣列上的各個(gè)邏輯盤(pán)將會(huì)通過(guò)光纖網(wǎng)絡(luò)映射為Unix系統(tǒng)的硬盤(pán)設(shè)備。邏輯盤(pán)Lgicai Disk(LD)是diskarray的概念,他可以由多個(gè)物理disk(各物理disk的一部分或全部)按照一定的RAID方式構(gòu)成,可以進(jìn)行并行訪(fǎng)問(wèn)或存儲(chǔ)冗余數(shù)據(jù)。LD可以叫volume,或media,在OS看來(lái)這就是一個(gè)raw disk,與普通物理硬盤(pán)一樣。因?yàn)閁nix上的設(shè)備都被看作特殊文件,訪(fǎng)問(wèn)設(shè)備類(lèi)似于文件訪(fǎng)問(wèn),設(shè)備驅(qū)動(dòng)程序都提供打開(kāi)和讀寫(xiě)接口來(lái)操作真正的硬件,另外還提供I/O control接口來(lái)進(jìn)行特殊的設(shè)備控制或從設(shè)備獲取信息。與disk相關(guān)的special file都在/dev/dsk或/dev/rdsk目錄下,dsk目錄與rdsk目錄的差別是打開(kāi)rdsk disk設(shè)備后,read/write/ioctl等調(diào)用將直接發(fā)送給硬件,而dsk目錄的設(shè)備則還經(jīng)過(guò)OS的中間處理。
通過(guò)此過(guò)程,基于SAN的數(shù)據(jù)存儲(chǔ)共享系統(tǒng)能很好地進(jìn)行高效的數(shù)據(jù)存儲(chǔ)共享,能夠提供跨平臺(tái)的文件共享服務(wù),利用SAN的海量擴(kuò)充潛力,能提供不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)服務(wù)。
3 結(jié) 語(yǔ)
目前已經(jīng)在實(shí)驗(yàn)室建成以?xún)膳_(tái)Unix端,一臺(tái)HP服務(wù)器模擬的大型機(jī),一個(gè)小型光纖網(wǎng)建立的基于SAN的網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)共享存儲(chǔ)系統(tǒng)。通過(guò)模擬運(yùn)行數(shù)據(jù)海量增長(zhǎng)情況與數(shù)據(jù)的跨平臺(tái)共享表明本系統(tǒng)具有:實(shí)現(xiàn)了大型機(jī)與Windows及Unix平臺(tái)對(duì)磁盤(pán)陣列的共享訪(fǎng)問(wèn),跨平臺(tái)性好、接口簡(jiǎn)單、擴(kuò)容簡(jiǎn)單??朔藗鹘y(tǒng)的SCSI存儲(chǔ)方案中的擴(kuò)容有限,數(shù)據(jù)管理復(fù)雜,不直接支持跨平臺(tái)的數(shù)據(jù)共享,同時(shí)也克服了NAS存儲(chǔ)方案中數(shù)據(jù)仿問(wèn)量增大時(shí)造成整個(gè)網(wǎng)絡(luò)性能急劇惡化的不足,能很好地適應(yīng)當(dāng)前網(wǎng)絡(luò)成熟,數(shù)據(jù)量急劇增長(zhǎng)時(shí)用戶(hù)對(duì)數(shù)據(jù)存儲(chǔ)共享的需要,是一種很有應(yīng)用價(jià)值的先進(jìn)數(shù)據(jù)存儲(chǔ)共享解決方案。
c++相關(guān)文章:c++教程
交換機(jī)相關(guān)文章:交換機(jī)工作原理
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論