什么是SAS?簡(jiǎn)單的說(shuō),SAS是一種磁盤連接技術(shù)。它綜合了現(xiàn)有并行SCSI和串行連接技術(shù)(光纖通道、SSA、IEEE1394及InfiniBand等)的優(yōu)勢(shì),以串行通訊為協(xié)議基礎(chǔ)架構(gòu),采用SCSI-3擴(kuò)展指令集并兼容SATA設(shè)備,是多層次的存儲(chǔ)設(shè)備連接協(xié)議棧。

    為了更好的了解SAS技術(shù),我們先回顧一下幾個(gè)相關(guān)技術(shù)的發(fā)展過(guò)程。為了簡(jiǎn)明,這里只以表格形式體現(xiàn)。

    首先是并行SCSI的發(fā)展過(guò)程。


    正是SCSI-3指令集的出現(xiàn),使得SCSI通訊出現(xiàn)了分層結(jié)構(gòu),并使SCSI指令通過(guò)其他物理媒介傳輸成為可能。事實(shí)上,SCSI-3指令自誕生之日就被一批新技術(shù)相中,此后出現(xiàn)的光纖通道技術(shù)、SSA技術(shù)、IEEE1394火線技術(shù)等,均受益于這一進(jìn)步。

    這些串行技術(shù)雖然從名字上看與SCSI毫不相干,但其實(shí)它們都支持SCSI-3作為應(yīng)用層邏輯指令。下面是這些串行技術(shù)的簡(jiǎn)要回顧。


    除了并行SCSI和幾種應(yīng)用SCSI-3指令集的串行技術(shù),我們?cè)俸?jiǎn)單回顧一下ATA技術(shù)的歷史。


    之所以羅列出以上三個(gè)表格,是因?yàn)镾AS技術(shù)正是以串行機(jī)制為基礎(chǔ),同時(shí)支持SCSI和SATA的協(xié)議棧。了解以上三個(gè)方面的歷史,有助于更方便的理解SAS技術(shù)的特點(diǎn)。為了增強(qiáng)感性認(rèn)識(shí),我們先從外觀入手,慢慢走進(jìn)SAS技術(shù)內(nèi)部。


    上面這張照片就是SAS外部接口的樣子。使用過(guò)InfiniBand交換設(shè)備的朋友一定覺得眼熟,沒錯(cuò),SAS外部接口和線纜就是借用了InfiniBand線纜的設(shè)計(jì)。不要小看這個(gè)只有并行SCSI一半大的接口。這種端口名叫”四路寬端口”,以目前3Gb的SAS標(biāo)準(zhǔn),它可以達(dá)到12Gb的帶寬,也就是4 x 3Gb SAS通道。SAS技術(shù)與光纖通道一樣,都采用8位到10位的編碼機(jī)制,12Gb的物理層帶寬換算到應(yīng)用層就是1.2GB/s,這一根線就比目前主流的64位133MHz PCI-X總線還要快。


    SAS磁盤上的端口也與并行SCSI有很大區(qū)別,倒是跟SATA磁盤的端口外觀非常像。接腳最多的一組是電源接口,接腳較少的一組是SAS磁盤主端口,位置都與SATA磁盤電源和通訊端口完全一致。SAS磁盤與SATA磁盤接口的唯一區(qū)別是SAS磁盤還有第二個(gè)冗余端口,而SATA磁盤則只有一個(gè)端口。

    說(shuō)到這里,細(xì)心的讀者會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題。既然SAS磁盤與SATA磁盤的端口數(shù)量都不一致,SAS背板又如何完整的兼容SATA磁盤呢?

    不錯(cuò),如果將SATA磁盤直接插入SAS背板,那么背板上的冗余端口將會(huì)懸空,也就是說(shuō)SATA磁盤只連接在一個(gè)控制器上。這樣雖然陣列控制器或主機(jī)可以使用這些SATA磁盤,但從結(jié)構(gòu)上將無(wú)法實(shí)現(xiàn)冗余。


    為此,一些提供SAS磁盤陣列的廠商,在兼容SATA磁盤時(shí)都在SATA磁盤托架上附加一個(gè)小小的電路板,我們姑且稱之為”端口選擇器”。其作用就是將SATA磁盤上的單端口與兩路SAS同時(shí)連接,從而保證前端控制器或主機(jī)故障切換時(shí),SATA磁盤仍然能保持連接。


    當(dāng)然物理連接的一致,只是SAS兼容SATA的必要條件。實(shí)際上,在整個(gè)SAS協(xié)議棧中從物理層到應(yīng)用層,都貫穿著一套用來(lái)兼容SATA的協(xié)議。這套協(xié)議被稱為STP(Serial ATA Tunneling Protocol)即”SATA隧道協(xié)議”。從這個(gè)命名就可以看出,SAS兼容SATA的方式其實(shí)就是在從磁盤端到主機(jī)端整條鏈路上,為SATA磁盤特地開辟出一條隧道。


    除了端口設(shè)計(jì),SAS和SATA磁盤的供電接口也可能是讀者的疑問(wèn)。如果SAS和SATA接口中已經(jīng)包含有供電接腳,傳統(tǒng)的四針式電源是否還有用呢?

    對(duì)磁盤陣列來(lái)說(shuō),答案顯然是沒有。外置磁盤陣列早在SCSI和IDE年代,就已經(jīng)不使用四針式電源接口了。但是服務(wù)器內(nèi)部的非熱插拔磁盤一般都采用這種接口,而且目前市面上一些SATA磁盤也帶有這種電源接口。這是因?yàn)镾ATA 1.0標(biāo)準(zhǔn)剛剛頒布的時(shí)候,還沒有完全取代四針電源。無(wú)法擺脫四針式電源,就無(wú)法直接支持熱插拔,因此SATA 1.0在當(dāng)時(shí)被定義為僅主機(jī)內(nèi)部連接的協(xié)議,不支持外部連接。不過(guò)這些都已經(jīng)是歷史,現(xiàn)在的SAS和SATA II版本中,四針電源完全沒有存在的必要。


    看過(guò)SAS設(shè)備外觀,我們?cè)倏纯碨AS內(nèi)部的一些工作原理。首先,讓我們先搞清楚三個(gè)名詞–“設(shè)備”(Device)、”端口”(Port)和”phy”。

    “設(shè)備”就是指SAS連接末端的物理設(shè)備,可以是磁盤,也可以是主機(jī)里的SAS適配器,但不是Expander設(shè)備。暫時(shí)不曉得Expander為何物的讀者不要著急,后面會(huì)介紹到。

    “端口”是半物理半邏輯的概念。一方面,每個(gè)端口都對(duì)應(yīng)一條實(shí)實(shí)在在的物理連接線;另一方面,每個(gè)SAS端口都有一個(gè)唯一的64位地址。這個(gè)地址的格式跟光纖通道里的WWN(嚴(yán)格的說(shuō),應(yīng)該是WWPN,WWNN對(duì)應(yīng)的更像SAS”設(shè)備”名)格式完全相同,由24位公司標(biāo)志和40位廠商自定義字段構(gòu)成。

    “phy”雖然是個(gè)邏輯概念,但功能上很像光纖通道中的SFP。它對(duì)應(yīng)的是一組SAS協(xié)議收發(fā)單元,由一個(gè)發(fā)送器和一個(gè)接收器組成。每個(gè)phy與遠(yuǎn)端的另外一個(gè)phy連接,構(gòu)成一發(fā)一收兩條鏈路。SAS支持全雙工,就是說(shuō)每個(gè)phy在以3Gbps發(fā)送的同時(shí),還可以接收3Gbps的流量。


    前面只是簡(jiǎn)單的羅列出設(shè)備、端口和phy各自的大致含義,很多問(wèn)題還需要進(jìn)一步說(shuō)明一下。

    前面我們已經(jīng)提到,每顆SAS磁盤可以提供兩個(gè)SAS連接。那么這兩路SAS連接是同一個(gè)端口的兩個(gè)phy,還是兩個(gè)獨(dú)立的窄端口呢?答案是后者。每顆SAS磁盤上有兩個(gè)phy,這兩個(gè)phy相互獨(dú)立,被兩個(gè)不同的端口使用。再明確點(diǎn)說(shuō),每顆SAS磁盤有兩個(gè)地址,而不是一個(gè)。記住!每個(gè)地址,就對(duì)應(yīng)一個(gè)端口。

    地址和端口的對(duì)應(yīng)關(guān)系,還能幫我們辨清SAS有效連接。Phy之間連通,并不等于端口之間能夠正常通訊。只有當(dāng)一個(gè)端口中所有phy都與對(duì)方端口中的phy連通后,兩個(gè)寬端口的通訊才能正常進(jìn)行。目前寬端口中最常見的,就是前面提到過(guò)的四路寬端口,不過(guò)一些SAS適配器廠商正在設(shè)計(jì)八路寬端口,未來(lái)可能會(huì)出現(xiàn)單根線纜2.4GBps甚至4.8GBps的SAS連接。

    說(shuō)到SAS適配器,還有個(gè)有趣的問(wèn)題。目前主流SAS適配器一般支持8個(gè)phy,那么大家猜猜一般適配器支持多少端口地址呢?答案是可以動(dòng)態(tài)設(shè)定。當(dāng)適配器用來(lái)連接外部SAS設(shè)備時(shí),需要用外部寬端口,這時(shí)適配器將8個(gè)phy劃分成兩個(gè)寬端口,支持兩個(gè)端口地址。而當(dāng)適配器連接內(nèi)部SAS磁盤時(shí),每個(gè)phy各自屬于自己的端口,適配器將支持8個(gè)端口地址。

    至此,我們雖然明確了一些關(guān)于SAS的技術(shù)概念,但是還不能說(shuō)對(duì)SAS技術(shù)有所了解。SAS技術(shù)的重點(diǎn)部分–Expander及其工作原理,才是熟悉SAS技術(shù)的關(guān)鍵。

    SAS的連接模式與光纖通道的Fabric交換在很多方面十分相似。每一個(gè)SAS Expander就像一臺(tái)光纖通道交換機(jī),整個(gè)交換結(jié)構(gòu)被稱為”域”(Domain),其意義跟光纖通道技術(shù)中的”域”幾乎完全一樣。在光纖通道Fabric交換結(jié)構(gòu)中,每個(gè)域有一個(gè)主成員,負(fù)責(zé)維護(hù)整個(gè)域的路由信息。在SAS域中,起中心交換作用的Expander叫做”扇出Expander”(Fanout Expander)。SAS域中的”扇出Expander”既可以直接連接終端設(shè)備,也能連接其它”邊緣Expander”(Edge Expander)。唯一與光纖通道Fabric不同的是,SAS域中可以沒有”扇出Expander”,而光纖通道Fabric域則不能沒有主成員。沒有”扇出Expander”的SAS域,最多只可以有兩個(gè)”邊緣Expander”。


    理論上,每個(gè)”邊緣Expander”可以支持128個(gè)端口,每個(gè)SAS域可以有128個(gè)”邊緣Expander”,這樣每個(gè)SAS域中最多可以有128 x 128 = 16384個(gè)端口。當(dāng)然,這并不是說(shuō)每個(gè)SAS域可以連接16384個(gè)磁盤和SAS適配器,因?yàn)?#8221;扇出Expander”與”邊緣Expander”相連接時(shí),會(huì)占用一部分端口。如果128個(gè)”邊緣Expander”全部連接到”扇出Expander”,內(nèi)部互聯(lián)至少要占用256個(gè)端口。也就是說(shuō),一個(gè)SAS域理論上可以連接16384 – 256 = 16128個(gè)終端SAS設(shè)備。對(duì)比光纖環(huán)路126個(gè)設(shè)備的上限,16128這個(gè)數(shù)字仍然是非??捎^。

    一些接觸過(guò)SAS存儲(chǔ)產(chǎn)品的讀者,可能此時(shí)會(huì)心存疑惑。為什么SAS單域就可以支持如此眾多設(shè)備,但實(shí)際應(yīng)用中卻經(jīng)??吹蕉嘤蚰J降漠a(chǎn)品呢?這其實(shí)跟目前SAS芯片的制造工藝有關(guān)。如果想制造出一個(gè)”扇出Expander”來(lái)支持128個(gè)”邊緣Expander”的連接,那這款”扇出Expander”至少要支持128個(gè)phy(每端口至少一個(gè)phy)。而Expander之間的互聯(lián)一般應(yīng)采用至少四路寬端口,那就需要中心的”扇出Expander”支持4 x 128 = 512個(gè)phy(每端口四個(gè)phy)。而現(xiàn)在的實(shí)際情況是LSI公司的首款SAS芯片只能支持12個(gè)phy,剛剛好是個(gè)零頭。雖然SAS技術(shù)支持多個(gè)Expander芯片組成一個(gè)”Expander組”(Expander Set)來(lái)模擬一個(gè)Expander,但過(guò)多的芯片無(wú)疑會(huì)在制造工藝和成本方面帶來(lái)麻煩。正是基于目前SAS芯片工藝水平,一些磁盤陣列廠商在設(shè)計(jì)陣列擴(kuò)展時(shí),大多采用多域結(jié)構(gòu)。雖然在軟件設(shè)計(jì)上費(fèi)力多些,但卻可以避開單芯片phy數(shù)量有限的問(wèn)題。

    所謂多域模式,在大多數(shù)情況下,其實(shí)也只不過(guò)是兩個(gè)域而已,即每個(gè)陣列控制器各自屬于自己的SAS域。因?yàn)槟壳暗腟AS交換技術(shù)還不支持域之間的路由,所以要想保證每個(gè)陣列控制器都能訪問(wèn)到所有磁盤,最多只能引入兩個(gè)SAS域。

    SAS技術(shù)借鑒了很多光纖通道技術(shù)的工作原理,對(duì)比光纖通道技術(shù)可以幫助我們更好的了解SAS技術(shù)優(yōu)勢(shì)。

    前面已經(jīng)提到,SAS端口地址與光纖通道中的WWN格式幾乎完全一樣,但其使用方式還是略有區(qū)別。SAS域中,端口地址直接作為交換路由表的內(nèi)容,沒有任何轉(zhuǎn)換過(guò)程,而光纖通道的Fabric交換中并不直接采用WWN地址,而是要經(jīng)過(guò)一個(gè)轉(zhuǎn)換過(guò)程,由名字服務(wù)器對(duì)每個(gè)設(shè)備二次分發(fā)路由地址。光纖通道之所以這樣設(shè)計(jì)原因很明顯,因?yàn)樵贔abric交換中要支持環(huán)路設(shè)備,所以不得不兼顧各種編址。實(shí)際上在光纖通道交換域中,每個(gè)設(shè)備要經(jīng)過(guò)三層登陸(FLOGI、PLOGI/LOGO、PRLI/PRLO)才能接入域中。這頗像一個(gè)臃腫的官僚機(jī)構(gòu),雖然體系龐大,卻效率低下。而SAS技術(shù)舍棄了光纖通道中的仲裁環(huán)機(jī)制,從而大大簡(jiǎn)化了交換與地址的關(guān)系。在SAS域中,再也不需要關(guān)心那些惱人的繁文縟節(jié)了。

    由于交換模式的簡(jiǎn)化,SAS設(shè)備與Expander之間不需要通過(guò)復(fù)雜的磋商,簡(jiǎn)單的握手之后就開始正常工作了,這就需要雙方事前就很多方面必須達(dá)成一致共識(shí)。”服務(wù)級(jí)別”就是共識(shí)之一。我們知道光纖通道可以支持五種不同級(jí)別的交換服務(wù),分別是Class 1、2、3、4和6。這其中最常用到的是Class 3,即無(wú)確認(rèn)的幀交換。這種模式好比不負(fù)責(zé)任的郵遞員,反正有收信人和發(fā)信人互相確認(rèn),他自己根本不操心包裹是否完好。由于光纖通道技術(shù)中沒有phy這個(gè)層次的設(shè)計(jì),Class 3是效率最高的工作模式。而SAS則不然,借由phy的底層獨(dú)占式互聯(lián)機(jī)制,SAS中的服務(wù)級(jí)別更像Class 1模式,即虛擬電路全帶寬連接。這種模式最能夠充分保證每一組SAS設(shè)備之間的通訊帶寬,同時(shí)數(shù)據(jù)的誤傳輸概率也降到最低。

    由于光纖通道技術(shù)中層次臃腫的通訊機(jī)制,主機(jī)端光纖適配器很難直接察覺到磁盤端設(shè)備狀態(tài)的變化。就好比一個(gè)高高在上的官僚,很難知道底層普通市民的住址變遷。為此,光纖通道交換設(shè)計(jì)了”注冊(cè)狀態(tài)變更通知”(RSCN,Registered State Change Notification)機(jī)制。就是讓每個(gè)普通市民在搬家之后,都要主動(dòng)向政府匯報(bào)新地址,政府再將地址簿匯總更新,送交各位領(lǐng)導(dǎo)案頭,而官僚們就依據(jù)案頭的記錄信息定位每個(gè)市民。遺憾的是,這個(gè)RSCN會(huì)打斷領(lǐng)導(dǎo)們正在進(jìn)行的溝通,迫使領(lǐng)導(dǎo)們的工作重新開始,因此嚴(yán)重影響整個(gè)政府的辦公效率。而在SAS域中,由于沒有了復(fù)雜的溝通層次,每位領(lǐng)導(dǎo)都可以直接掌握市民的住址信息,辦公效率自然就提高許多。

    SAS與光纖通道相比,最明顯的技術(shù)優(yōu)勢(shì)在于連接帶寬。簡(jiǎn)單從數(shù)字上看,3Gb的SAS似乎不及4Gb的光纖通道,但光纖通道技術(shù)中端口已經(jīng)是最基本的邏輯單元,也就是說(shuō),兩個(gè)物理端口間的連接就只可能是4Gb帶寬。而SAS則巧妙的在端口中引入phy這個(gè)新的邏輯單元,兩個(gè)phy之間的互聯(lián)帶寬為3Gb,每端口可以包含4個(gè)或8個(gè)phy之多,這樣兩個(gè)SAS端口之間的連接很容易達(dá)到12Gb甚至24Gb超高帶寬。

    總之,SAS在借鑒光纖通道技術(shù)特點(diǎn)的同時(shí),一方面大刀闊斧簡(jiǎn)化交換機(jī)制,從而提升了交換效率和可靠性,另一方面增加了phy虛擬電路單元,大大增加了性能擴(kuò)展空間。


    本文版權(quán)歸作者及DoSTOR所有,如需轉(zhuǎn)載請(qǐng)聯(lián)系:editor@dostor.com

分享到

多易

相關(guān)推薦