摘 要: 介紹了近年來計算機用于RAID的存儲設(shè)備接口的發(fā)展,陳述了RAID設(shè)備應(yīng)用中應(yīng)當(dāng)考慮的因素,并在最后指出了目前許多客戶在使用RAID盤陣列時存在的誤區(qū)。
關(guān)鍵詞: 廉價的冗余磁盤陣列(RAID) 小型計算機系統(tǒng)接口總線(SCSI) 串行存儲結(jié)構(gòu)總線(SSA) 光纖通道 I/O
隨著數(shù)字化革命的推進(jìn),對計算機存儲系統(tǒng)在存儲數(shù)據(jù)量、可靠性和存取速度上都提出了嚴(yán)峻的挑戰(zhàn)。外存儲設(shè)備成為多媒體、CAD、數(shù)據(jù)庫等應(yīng)用不可避免的瓶頸。雖然SLED(Single Large Expensive Disk)在數(shù)據(jù)存儲容量和讀寫速度上有較大幅度的提高,但是與CPU以及內(nèi)存的發(fā)展速度相比較,其性能的提高卻顯得很有限。從PC機磁盤技術(shù)上發(fā)展起來的RAID(廉價冗余磁盤陣列)提供了另一個解決方案。和SLED相比,其存儲速度,數(shù)據(jù)可靠性,低功耗和可擴展性等都有很大的優(yōu)勢,因而已經(jīng)成為目前高速、大容量、關(guān)鍵數(shù)據(jù)存儲解決方案的主流。而正是由于RAID的諸多優(yōu)點,工業(yè)界在這十幾年中開發(fā)出了一系列可應(yīng)用于RAID的存儲設(shè)備接口。本文按照技術(shù)的發(fā)展順序,對各種RAID應(yīng)用存儲設(shè)備接口作了綜合性的介紹。最后,作者分析了現(xiàn)在用戶挑選RAID存儲設(shè)備中存在的誤區(qū)。
1 存儲設(shè)備接口
1.1 并行SCSI和SCSI2
并行SCSI(SCSI1)標(biāo)準(zhǔn)是在1986年建立的。時至今日,一些高端服務(wù)器和工作站所采用的存儲設(shè)備接口多數(shù)仍然使用的是SCSI。它支持最多可達(dá)7個8位設(shè)備,最大傳輸速度可以達(dá)到5MB/s。誕生于1992年的SCSI2實際上在并行SCSI基礎(chǔ)上進(jìn)行了改善,目前的標(biāo)準(zhǔn)實現(xiàn)有兩種,F(xiàn)ast(傳輸峰值速度為10MB/s)和Wide(20MB/s)。雖然它可以進(jìn)行32位的傳輸,但到目前只用16位進(jìn)行傳輸。它支持同步傳輸模式,差分信號,命令隊列和奇偶校驗。與SCSI1相比較,它的接頭也要小的多。圖1為其邏輯框圖。
從圖1可見,構(gòu)成一個并行SCSI系統(tǒng)的關(guān)鍵部分是SCSI接口適配卡、數(shù)據(jù)線,采用菊花鏈模式連接的驅(qū)動器以及端接器(并行SCSI總線要求在總線兩端有端接器)。
在此類系統(tǒng)中,要求每個組成設(shè)備(包括接口卡和磁盤驅(qū)動等)都有一個0~7的唯一ID。為了提高擴展性能,使之可以用于規(guī)模更大的系統(tǒng),SCSI2的LUN支持使之能允許多個邏輯或虛擬設(shè)備共享一個物理ID號,而每個邏輯或虛擬設(shè)備則通過一個唯一的子地址來標(biāo)識。
雖然此類SCSI存儲設(shè)備多用于單一主機的訪問,但采用一定的設(shè)置技巧,它也可以被用于集群系統(tǒng)中。
由于傳輸過程中不可避免地存在著噪聲和信號衰減,使并行SCSI總線的傳輸距離不可能太長,通常來說它只能用于傳輸距離小于3m的應(yīng)用。為了提高傳輸距離,業(yè)界在系統(tǒng)中引入高電壓信號差分(HVD)以增大抗干擾能力,從而使總線的傳輸距離可以進(jìn)一步擴展至25m左右,但是差分信號的引入使接口的引腳數(shù)目增大了一倍。
由于并行SCSI總線應(yīng)用的廣泛性,在一定時期內(nèi)其不可能被完全淘汰。而新一代的存儲設(shè)備接口為了提供對這些SCSI設(shè)備的后向兼容,一般都提供了和SCSI總線進(jìn)行轉(zhuǎn)換的接口橋。
1.2 SCSI3
SCSI3進(jìn)一步在SCSI2的功能上進(jìn)行了完善,力圖使之有更好的兼容性以拓展其應(yīng)用空間。和SCSI2相比較,SCSI3支持Ultra SCSI和光纖通道,SCAM支持(一種即插即用的系統(tǒng)自動配置協(xié)議)。它支持SCA(Single Connector Attachment)接口,SCA2接口(也就是有熱插拔功能的SCA接口)和VHDCI(Very High Density Cable Interface)接口。
1.3 Ultra SCSI(Fast 20)
Ultra SCSI在實現(xiàn)SCSI3協(xié)議的基礎(chǔ)上將總線的傳輸帶寬增至40MB/s。為了達(dá)到更高的傳輸速度,Ultra SCSI采用了新的信號和時鐘技術(shù)。為了最大程度的兼容已在應(yīng)用領(lǐng)域中占主導(dǎo)地位的SCSI2設(shè)備,Ultra SCSI的設(shè)計使之能和SCSI2設(shè)備一塊使用,但這種混合使用是以峰值速度下降為總線上所掛最慢設(shè)備的傳輸速度為代價的。
1.4 Ultra2 SCSI
Ultra2 SCSI是在Ultra SCSI基礎(chǔ)上邁出的很自然又很重要的一步。它采用LVD(低電平差分信號)技術(shù)以及其它的一些改良將總線傳輸速度進(jìn)一步提高至80MB/s。同時,Ultra2 SCSI每個通道支持多達(dá)16個設(shè)備,傳輸距離可達(dá)12m。同時,由于它是在并行SCSI的技術(shù)上發(fā)展起來的,使之有很好的后向兼容性,價格相對也比較便宜,因此成為目前解決新一代大容量存儲系統(tǒng)IO瓶頸的很有競爭力的一個方案,并且也得到了許多存儲設(shè)備生產(chǎn)廠家的大力支持。
1.5 SSA(Serial Storage Architecture)
為了替代那些陳舊而且慢速的并行SCSI總線接口, IBM牽頭聯(lián)合多個制造商建立了一個新的開放式存儲接口標(biāo)準(zhǔn)SSA(ANSI X3T0.1)。SSA的關(guān)鍵技術(shù)是所謂的“空間復(fù)用技術(shù)”,這一技術(shù)允許傳輸在總線上并發(fā)進(jìn)行從而增大傳輸帶寬。和并行SCSI的鏈接模式相比,SSA采用了不同的拓?fù)浣Y(jié)構(gòu):環(huán)形拓?fù)浣Y(jié)構(gòu),其基本構(gòu)成框架可如圖2所示。每個SSA環(huán)可以支持多達(dá)127個設(shè)備,傳輸長度可達(dá)到15m。
在圖2中,SSA控制卡可以同時控制兩個數(shù)據(jù)傳輸環(huán)路,而每個環(huán)路上峰值傳輸速度可以達(dá)到80MB/s。
圖2的每一環(huán)路事實上是一個雙環(huán)結(jié)構(gòu),傳輸指令在這個環(huán)路上挨個傳遞直到到達(dá)目的存儲器。由于SSA的“空間復(fù)用”技術(shù),各個存儲器之間可以以最多為20MB/s的速度進(jìn)行相互備份,從而依靠這種復(fù)用達(dá)到傳輸速度總和的增長。但是采用這種技術(shù),當(dāng)系統(tǒng)需要從存儲設(shè)備中讀或?qū)憰r,其速度卻只能達(dá)到20MB/s,低于Ultra SCSI和Ultra2 SCSI。因而這種系統(tǒng)主要應(yīng)用于集群環(huán)境。
雙環(huán)結(jié)構(gòu)使其有良好的容錯性能(這類似于通信中的自愈環(huán)的概念)。比如說圖2中的磁盤3由于故障不能正常工作,如果磁盤2和4想進(jìn)行傳輸,則此時傳輸就不能通過3來進(jìn)行。在這種情況下,系統(tǒng)將檢測到此故障而將磁盤2和4的路由改至經(jīng)過控制卡。當(dāng)環(huán)中的某一段磁盤出現(xiàn)故障,比如上圖中的3和5同時出現(xiàn)故障,SSA會標(biāo)志3、4、5不可用,從而形成一個新的單環(huán)結(jié)構(gòu)。
1.6 光纖通道仲裁環(huán)(FC-AL)
光纖通道是又一種開放式標(biāo)準(zhǔn),是由ANSI和OSI定義的,它是一種串行的高速數(shù)據(jù)傳輸技術(shù),支持許多重要的高層協(xié)議,如IP、ATM、IEEE902、HIPPI(High Performance Parallel Interface)、SCSI等。FC并沒有它自己的指令集,而僅僅是用來實現(xiàn)在各個FC設(shè)備間傳輸數(shù)據(jù)。同時,F(xiàn)C并不如它的名字所說局限于用光纖作為其傳輸介質(zhì),事實上它允許采用廉價的銅纜(比如雙絞線或者同軸線)按照協(xié)議規(guī)范來傳輸(當(dāng)然此時傳輸?shù)氖请娦盘?。總之,它是一種規(guī)范而非實現(xiàn)的定義。
FC的諸多優(yōu)點是有目共睹的。它可以有高達(dá)100MB/s的傳輸速度,可以支持多達(dá)16兆個設(shè)備,傳輸距離可大于一萬米。對多種拓?fù)浣Y(jié)構(gòu)的支持使它有很好的靈活性,應(yīng)用范圍廣闊,結(jié)構(gòu)簡單(串行纜線,沒有端結(jié)器,能夠自動分配ID),內(nèi)置的校驗算法使之格外可靠,而對眾多協(xié)議的支持使它的集成尤為容易。
FC支持的數(shù)據(jù)包的長度是可變的,從0字節(jié)到2048字節(jié)。這使它特別適用于象數(shù)據(jù)庫那樣IO塊較小的應(yīng)用。同時由于它所引入的額外數(shù)據(jù)并不多,使之也能很好地用于象視頻這樣的場合。
FC支持多種拓?fù)浣Y(jié)構(gòu),包括點對點結(jié)構(gòu),仲裁環(huán)結(jié)構(gòu)和交換式結(jié)構(gòu)。當(dāng)用FC來架構(gòu)存儲系統(tǒng)時,一般采用的是仲裁環(huán)式的拓?fù)浣Y(jié)構(gòu)。因此這里有必要了解一下仲裁環(huán)拓?fù)浣Y(jié)構(gòu)。
仲裁環(huán)(AL)結(jié)構(gòu)如圖3所示,它最多可以菊花鏈的方式支持達(dá)127個端口。在這種結(jié)構(gòu)下,數(shù)據(jù)在這條鏈上從一個設(shè)備傳送到下一個相鄰設(shè)備。AL上的每個端口被標(biāo)識為NL端口,在一個鏈中同一時刻只能有兩個當(dāng)前活動端口,而其它的端口只是為中繼器簡單地將信號傳送到下一個端口。這就是說100MB/s的傳輸速度實際上為環(huán)上的所有設(shè)備所共享的。和令牌環(huán)一樣,環(huán)上的所有端口檢測經(jīng)過自己的所有消息,留取屬于自己的部分,然后將所有不屬于自己的消息傳遞給下一個端口。
FC-AL的RAID控制卡一般采用單端口控制卡或雙端口控制卡的形式。前者提供了一條光纖通道,而后者采用雙通道的形式來提高數(shù)據(jù)傳輸?shù)目煽啃浴D4、圖5依次給出了單端口和雙端口控制卡掛接磁盤存儲器的基本框圖。
單端口系統(tǒng)成本較低,但是由于它只由單環(huán)組成,因而可靠性不高。當(dāng)纜線或其它連接構(gòu)件出現(xiàn)故障時,F(xiàn)C控制卡就不能正常地與FC磁盤進(jìn)行通信。雙端口控制卡的結(jié)構(gòu)在一定程度上減少了這種不可靠。由下圖可見,在一條纜線出現(xiàn)故障時,雙環(huán)結(jié)構(gòu)允許用另一條纜線進(jìn)行所有通信,從而增加了系統(tǒng)的可靠性。
FC硬盤驅(qū)動器使用40針的SCA接口,這使之可以無需轉(zhuǎn)換就能直接插入配有SCA插槽的外置式硬盤籠子中。但是SCA接口又使得FC硬盤無法直接掛接到FC控制卡上,而必須通過一個專用的FC-SCA到DB9的適配器進(jìn)行接口轉(zhuǎn)換。
FC硬盤的籠子并不僅僅簡單地提供一個固定FC硬盤的框架,同時它在一定程度上提供了功率和溫度的控制。對于那些提供熱插拔功能的硬盤籠子,內(nèi)置有端口旁路電路,用來在環(huán)路上的某個硬盤出現(xiàn)故障時將此硬盤旁路,從而保證整個環(huán)路仍然暢通。
為了向某些應(yīng)用提供最高的數(shù)據(jù)安全,一些硬盤籠子上配備有兩條完全獨立的環(huán)路,以備在一條通路出現(xiàn)故障時系統(tǒng)能夠照常運作。同時高檔的硬盤籠子必須提供一個管理接口用來和主機進(jìn)行控制信息的通信,如向主機報告風(fēng)扇和電源故障,以及當(dāng)主機檢測到有一硬盤出現(xiàn)用指示燈標(biāo)識此硬盤。由于通常情況下每個FC存儲設(shè)備間的距離不是很大,因而在此類系統(tǒng)中一般采用銅纜,如屏蔽雙絞線,代替昂貴的光纜來作為傳輸介質(zhì)。利用銅纜在100MB/s的碼率下可以達(dá)到25m的傳輸距離。
如果各個FC存儲設(shè)備間距超過了25m,則應(yīng)用光纖替代銅纜作為傳輸介質(zhì)。在上述碼率下,采用62.5μm的多模光纖傳輸距離可達(dá)175m,用50μm多模光纖傳輸距離可達(dá)500m,而用9μm的單模光纖更可以將傳輸距離增至10km。為了采用光纖作為傳輸介質(zhì),F(xiàn)C控制卡和硬盤籠子必須配置有MIA(Media Interface Adapter)來實現(xiàn)光電信號的轉(zhuǎn)換。
2 RAID應(yīng)用中應(yīng)注意的一些方面
RAID的一個很誘人的特點是它能將數(shù)據(jù)同時分散到數(shù)個磁盤中進(jìn)行讀寫,從而可以幾倍于單一磁盤的速度進(jìn)行數(shù)據(jù)傳輸。由于FC-AL能夠輕而易舉地將傳輸速度提高至100Mbyte/s,而Ultra 2 SCSI的峰值傳輸速度也可以達(dá)到80MB/s,Ultra Wide SCSI-3的數(shù)據(jù)傳輸速度則為40MB/s。與這些速度相比,實際物理硬盤的讀寫速度則要慢的多了。7200轉(zhuǎn)的Ultra Wide SCSI-3讀寫速度只有不到10MB/s。為了進(jìn)一步提高速度,制造商們費力地加快磁盤轉(zhuǎn)速,并且為針對RAID應(yīng)用制造了轉(zhuǎn)速高達(dá)10000轉(zhuǎn)的磁盤,但其讀寫速度仍然只能達(dá)到12MB/s。同時,伴隨高轉(zhuǎn)速而來的諸如功耗,散熱等問題不可避免地導(dǎo)致了制造成本的大幅度提高,使速度上的突破相對成本來說似乎有些得不償失。這就不難解釋為什么在大多數(shù)應(yīng)用方案中用戶都盡可能多地在陣列控制卡上掛接磁盤,以求最大限度的利用總線帶寬了。
但是增加磁盤的速度并不能無限制地增大傳輸速度。以Ultra Wide SCSI-3為例,理論上在掛接了4個7200轉(zhuǎn)的硬盤后總線帶寬就已經(jīng)飽和了。此時總線帶寬就成為了整個IO系統(tǒng)的瓶頸。為了進(jìn)一步提高傳輸速度,不少硬件RAID控制卡提供了同時利用多條內(nèi)部SCSI總線的方法來增加傳輸帶寬。
在對傳輸速度需要求進(jìn)行精確估計的時候,除了上面所說的一些數(shù)據(jù)外還需考慮IO塊大小以及傳輸SCSI指令所需額外帶寬的因素。通常情況下傳輸1M的數(shù)據(jù),需要傳送大約320K的SCSI指令數(shù)據(jù)。仍以上面所說的Ultra Wide SCSI-3為例,在理想情況下,如果每個Ultra Wide SCSI-3硬盤以10MB/s的速度進(jìn)行讀寫,那么在掛接3個硬盤時,SCSI指令所引入的額外數(shù)據(jù)將達(dá)到30MB/s×320K=9.6MB/s,也就是說在掛接3個硬盤時,總線帶寬就已經(jīng)飽和了。雖然在同步突發(fā)傳輸方式下,指令數(shù)據(jù)比較明顯地下降,但是由于多數(shù)應(yīng)用并不是持續(xù)地工作在突發(fā)方式,因此在傳輸速度要求很高的情況下,這種額外數(shù)據(jù)的引入對傳輸速度的影響是不容忽視的。FC-AL采用了一種特殊的處理方法,它在傳輸SCSI指令時首先將所有的指令打成一個包,將此包在數(shù)據(jù)傳輸開始前進(jìn)行傳送。通過這種處理,很大程度地壓縮了指令的額外數(shù)據(jù),從而可以使其總線上的持續(xù)傳輸速度達(dá)到90MB/s。
RAID系統(tǒng)處理數(shù)據(jù)傳輸?shù)臅r間可以分為以下三部分:操作系統(tǒng)產(chǎn)生IO請求包的時間,RAID控制卡及磁盤驅(qū)動器處理IO請求的時間以及磁盤用于實際讀寫數(shù)據(jù)塊的時間。和前兩個速度相比較,磁盤的實際讀寫速度成為了瓶頸。為了提高系統(tǒng)的性能,一般的RAID控制器上都配有大量的緩存用來暫時轉(zhuǎn)儲數(shù)據(jù)。由于RAID控制卡能快速地將CPU要寫的數(shù)據(jù)首先存儲到緩存中作為過渡,因此大幅度地減少了在寫盤過程中消耗的CPU資源。而新一代的智能型控制卡更有超前讀的緩存,使讀盤時的CPU資源也在一定程度上得到了節(jié)約。因此在選擇存儲設(shè)備時,用戶也應(yīng)根據(jù)自己的應(yīng)用確認(rèn)系統(tǒng)所應(yīng)采用的緩存策略。
3 用戶選購RAID系統(tǒng)時的誤區(qū)
在各RAID生產(chǎn)、銷售商大張旗鼓地鼓吹各自產(chǎn)品傳輸速度的今天,大家似乎都忘了RAID的另一個重要角色:通過數(shù)據(jù)冗余來實現(xiàn)對關(guān)鍵數(shù)據(jù)的保護(hù)。傳輸速度成為各家公司推銷其產(chǎn)品的叫賣點,這造成了不少用戶不從自身應(yīng)用的特殊性(例如應(yīng)用中數(shù)據(jù)的可靠性要求,平均IO的數(shù)據(jù)塊大小以及設(shè)備的軟件支持)考慮,在購買RAID系統(tǒng)時盲目地追求廠商的標(biāo)稱傳輸速度。
事實上,由于應(yīng)用的差異,不可能存在一種對所有應(yīng)用而言都是最優(yōu)的方案。用戶在購買RAID系統(tǒng)時,應(yīng)該從自己的應(yīng)用出發(fā),通過分析實際的IO負(fù)載和主機配置對應(yīng)用有一個清楚的認(rèn)識。這就意味著用戶必須了解應(yīng)用中典型IO塊的大小,對數(shù)據(jù)容錯性能的要求確定自己所應(yīng)采用的RAID級別。同時根據(jù)所需要達(dá)到的峰值速度以及平均速度,數(shù)據(jù)共享等一系列指標(biāo),在考慮到各個RAID生產(chǎn)廠商在對系統(tǒng)定義上的差異(如有些廠商使用每秒能進(jìn)行的IO請求數(shù)而不是用MB/s來衡量系統(tǒng)速度,有些廠商對RAID級別的定義又有可能和工業(yè)標(biāo)準(zhǔn)不通等等)下,通過仔細(xì)的分析和市場調(diào)研來決定最后的解決方案。
參考文獻(xiàn)
1 Andreas Koepf.Fibre Channel Technology.USA:ICP Cor-poration,1998
2 Andreas Koepf.New Mass Storage Interfaces:Ultra 2SCSI and Fibre Channel.USA:ICP Corporation,1999
3 Brian R. Sorby.Throughput And I/O's Within RAID Applications.USA:Computer Technology Review
4 David A. Patterson,Garth Gibson,et al. A Case for Redundant Arrays of Inexpensive Disks (RAID).USA:University of California Berkeley,1987
5 David N.Reilly.New Technologies Put More Intelligence on RAID Controllers.Computer Technology Review.July 1997
6 Eric Ridedel,Catharine Van Ingen,Jim Gray.A Perfor-mance Study of Sequential IO on Windows NTTM 4.0.USA:Microsoft Research,September 1997
7 Grey P.Schulz.New Storage Interfaces.USA:Computer Technology Review,July 1997
8 Greg P. Schulz.SSA and Fibre Channel-Myths and Realities.USA:Computer Technology Review.August 1997
9 Greg P. Schulz.Fibre Channel and Storage Area Net-works.USA:Computer Technology Review.October 1999
10 Jim Gray.Prashant Shenoy.Rules of Thumb in Data Engineering.USA:Microsoft Research,February 2000
11 Stephen Ferrari.PCI-to-SCSI RAID vs SCSI-to-SCSI RAID - An Application Discussion.USA:Computer Technology Review,June 1999
12 Serial Storage Architecture - A High-Performance Open Storage Interface.IBM WWW, 1997
13 RAID definitions.Adjile Systems WWW