換句話說,Port Multiplier本身就是星形拓?fù)浼軜?gòu)的體現(xiàn),對(duì)網(wǎng)絡(luò)略知一二的朋友都明白它比總線拓?fù)浼軜?gòu)更為優(yōu)秀。遺憾的是,由于ATA的定位是“廉”(價(jià))字當(dāng)頭,其軟件(包括指令集)功能有限,Port Multiplier僅處于星形拓?fù)涞某跫?jí)階段,只相當(dāng)于一個(gè)SATA的Hub,而且還不是一個(gè)好的Hub—-不允許級(jí)聯(lián)。
兼容:師夷長技以制夷
看到SATA Ⅱ不斷地?cái)U(kuò)充功能,不免讓人感嘆,2001年冬季Compaq、IBM、LSI Logic、Maxtor和Seagate未雨綢繆,宣布開發(fā)Serial Attached SCSI(串行連接SCSI,簡稱SAS)的確是明智之舉。
SAS吸納了SATA的物理層(包括連接器、線纜)設(shè)計(jì),增加了第二端口,同時(shí)還具備FC的某些特征。與SATA相比,SAS在物理架構(gòu)上的增強(qiáng)主要包括:
雙端口 SAS的數(shù)據(jù)幀基于FCP(FC Protocol),并在外圍設(shè)備端添加了第二端口支持,形成符合高可用性要求的雙端口(dual port)—-這一點(diǎn)也類似于FC。
全雙工 并行ATA和SCSI都是發(fā)送和接收共用一組數(shù)據(jù)線,因此發(fā)送和接收不能同時(shí)進(jìn)行,即所謂的半雙工。SATA數(shù)據(jù)線由兩條傳送方向相反的差分信號(hào)對(duì)(LVDS,共4根)組成,發(fā)送(Tx)和接收(Rx)各走一路,為全雙工提供了物理上的可能。不過,由于ATA協(xié)議是半雙工的,因此SATA在一對(duì)信號(hào)線上傳送數(shù)據(jù)的同時(shí)只是用另一對(duì)信號(hào)線返回流控信息,仍然是半雙工;SCSI協(xié)議則是支持全雙工的,SAS通過將一路數(shù)據(jù)所需的流控信息與反向傳送的數(shù)據(jù)混合在一起,從而能在同樣的數(shù)據(jù)線上實(shí)現(xiàn)全雙工。
寬鏈接 物理鏈接是SAS中的一個(gè)基礎(chǔ)概念,一條物理鏈接包括兩對(duì)差分信號(hào)線(Tx和Rx,即一條SATA線纜),傳輸方向相反。兩個(gè)SAS端口之間可以建立起由多個(gè)物理鏈接構(gòu)成的wide link(寬鏈接),相應(yīng)的端口也被稱作wide port(寬端口),可以表示為N-wide link和N-wide port,N取值在1~4之間,代表物理鏈接的數(shù)量。SAS支持寬鏈接的主要出發(fā)點(diǎn)是獲得成倍的帶寬,而設(shè)備端雙端口的設(shè)計(jì)則是為了提供冗余鏈路,增強(qiáng)可用性。
帶寬 或許是考慮到第一批SAS產(chǎn)品問世時(shí)SATA很可能已推出3.0Gbps的第二代規(guī)格,SAS 1.0/1.1采取了直接支持3.0Gbps并向下兼容1.5Gbps的策略。雖然某些初期原型產(chǎn)品的確運(yùn)行在1.5Gbps,但都是在FPGA和現(xiàn)貨供應(yīng)PHY(物理層)芯片基礎(chǔ)上開發(fā)的,目前采用完全集成3Gbps PHY芯片和ASIC設(shè)計(jì)的設(shè)備已經(jīng)出現(xiàn),并逐漸被業(yè)內(nèi)接受。
連接距離 為了提高連接距離,SAS發(fā)送和接收信號(hào)的電壓范圍都比SATA大為提高。在具體的連接距離指標(biāo)上,最初宣稱是10米,新的資料則是大于6米(外部線纜),似乎與信號(hào)速率從1.5Gbps提高到3.0Gbps有關(guān)。需要指出的是SAS規(guī)范里面并沒有嚴(yán)格限定線纜長度,而是靠發(fā)送水平和接收敏感度來考察,制造商通過檢測線纜特性來判定其所能達(dá)到的距離?D?D高質(zhì)量線纜可以連接得更遠(yuǎn),當(dāng)然成本也更高?,F(xiàn)在SAS線纜連接距離的要求已經(jīng)提高到8米,通過3個(gè)擴(kuò)展器(Expander)之后,SAS的連接距離能夠超過32米,與Ultra160/320 SCSI的12米(15個(gè)設(shè)備)或25米(點(diǎn)對(duì)點(diǎn))相比雖沒有明顯提高,但也足以應(yīng)付機(jī)內(nèi)存儲(chǔ)設(shè)備連接和近距離DAS的要求了。
上述規(guī)劃都很不錯(cuò),可是第二端口怎么實(shí)現(xiàn)呢?通過將原本分離的SATA端口和電源插頭相連,并將SAS第二端口設(shè)置在連接處的背側(cè)(插座則是對(duì)側(cè),見圖),就得到了SAS連接器。第二端口比這塊跨接區(qū)域略寬,但也只有SATA端口(也即SAS第一端口)的2/3,因此其7個(gè)接腳及間距均明顯變窄。與SAS插頭的“鐵板一塊”相對(duì)應(yīng),SAS插座也“全線貫通”(SATA插座在SAS第二端口的位置有一突起),這樣既可以保證SATA設(shè)備插入SAS插座,又能避免誤將SAS設(shè)備插入SATA插座。
升華:交換和路由
與SATA一樣,SAS也可以讓主機(jī)端口與設(shè)備端口點(diǎn)對(duì)點(diǎn)直接相連,但不同的是,后者從設(shè)計(jì)之初就引入了類似于Port Multiplier的中間設(shè)備,以達(dá)成大量設(shè)備連接能力并實(shí)現(xiàn)更為復(fù)雜的拓?fù)浣Y(jié)構(gòu)。
這個(gè)中間設(shè)備叫做擴(kuò)展器(Expander),不過與并行SCSI中的同名設(shè)備不是一個(gè)概念。如果把SATA的Port Multiplier比做Hub,那么SAS的擴(kuò)展器就是交換機(jī)(Edge Expander,邊沿?cái)U(kuò)展器)和路由器(Fanout Expander,扇出擴(kuò)展器)。
擴(kuò)展器利用可多達(dá)128個(gè)的PHY(發(fā)送器和接收器各一、能夠接受1個(gè)物理鏈接的最小單元,譬如1個(gè)4寬度端口即由4個(gè)PHY組成)連接主機(jī)/設(shè)備或其他擴(kuò)展器,組成星形拓?fù)浼軜?gòu)。SAS還引入了“域”的概念,扇出擴(kuò)展器是SAS域的核心,一個(gè)SAS域只能有一個(gè)扇出擴(kuò)展器,它可以隨意連接邊沿?cái)U(kuò)展器;一個(gè)邊沿?cái)U(kuò)展器只能連接到一個(gè)扇出擴(kuò)展器上,而在沒有扇出擴(kuò)展器的情況下最多僅允許兩個(gè)邊沿?cái)U(kuò)展器互連;在不超過數(shù)目上限的前提下,擴(kuò)展器可以隨意連接發(fā)起者/目標(biāo)設(shè)備。也就是說,在一個(gè)SAS域中,任意兩點(diǎn)(主機(jī)或設(shè)備)之間最多可以有3個(gè)擴(kuò)展器。
SAS制訂初期的目標(biāo)是每個(gè)擴(kuò)展器可連接64個(gè)設(shè)備,一個(gè)SAS域最多4096個(gè)(64×64)設(shè)備;后來規(guī)范制訂者們意識(shí)到?jīng)]有必要把擴(kuò)展器的端口數(shù)目限制在64個(gè),于是便改為每個(gè)擴(kuò)展器能夠?qū)ぶ?28個(gè)PHY,整個(gè)SAS域形成一個(gè)物理連接數(shù)目可達(dá)16K(128×128=16384)的點(diǎn)對(duì)點(diǎn)交換式拓?fù)浼軜?gòu)。
擴(kuò)展器強(qiáng)大的連接能力不僅是為設(shè)備數(shù)量服務(wù)的,它還可以用多達(dá)4個(gè)的物理鏈接組成寬鏈接來獲得成倍的帶寬。以4寬度內(nèi)部串行附屬連接器為例,SATA只能通過4根相互間沒有邏輯聯(lián)系的線纜獲得4個(gè)獨(dú)立的SATA鏈接,SAS卻可以得到一個(gè)4寬度鏈接(在一個(gè)擴(kuò)展器上)、兩個(gè)2寬度鏈接(在兩個(gè)擴(kuò)展器上)、四個(gè)1寬度鏈接(在四個(gè)獨(dú)立的擴(kuò)展器或設(shè)備上),甚至還能夠是一個(gè)3寬度鏈接和一個(gè)1寬度鏈接……性能與靈活度都遠(yuǎn)勝于SATA。
不過,擴(kuò)展器引入的復(fù)雜度也不盡是優(yōu)點(diǎn),譬如它將原本直接相連的兩個(gè)設(shè)備分隔開就隱藏著潛在的風(fēng)險(xiǎn)。為此,SAS在鏈路層引入了速率匹配(rate matching)的概念,即在高速連接一側(cè)(視需要)降低實(shí)際數(shù)據(jù)速率,維持?jǐn)U展器吞吐量的平衡。這一功能對(duì)SAS主機(jī)控制器(3.0Gbps)通過擴(kuò)展器連接SATA外圍設(shè)備(1.5Gbps)的應(yīng)用顯得尤為重要。
說到SAS主機(jī)控制器連接SATA外圍設(shè)備,我們還得頗費(fèi)些口舌。SAS支持3種協(xié)議,分別是串行SCSI協(xié)議(Serial SCSI Protocol,SSP),全雙工,讓SCSI運(yùn)行在增強(qiáng)的SATA物理層上;串行ATA隧道協(xié)議(Serial ATA Tunneled Protocol,STP),為SATA增加多目標(biāo)尋址和多發(fā)起者訪問,以適應(yīng)SAS環(huán)境的需要;串行管理協(xié)議(Serial Management Protocol,SMP),用于發(fā)現(xiàn)和管理擴(kuò)展器?!?nbsp;
擴(kuò)展器把SATA的點(diǎn)對(duì)點(diǎn)連接擴(kuò)展至SAS的多發(fā)起者/多目標(biāo),然而SATA協(xié)議僅支持單發(fā)起者/單目標(biāo),STP的任務(wù)就是讓發(fā)起者能夠通過擴(kuò)展器訪問SATA目標(biāo)。STP在發(fā)起者與最遠(yuǎn)的、也就是連接SATA設(shè)備的擴(kuò)展器端口(STP目標(biāo)端口)之間建立起一條通路(隧道),傳輸標(biāo)準(zhǔn)的SATA 1.0幀,因此在SATA設(shè)備看來,自己連接的就是SATA主機(jī)適配器。如果發(fā)起者端口識(shí)別出與其直接相連的是一臺(tái)SATA設(shè)備,則只使用SATA協(xié)議通信。
那么SAS主機(jī)控制器端口怎么知道自己連接的是SATA設(shè)備還是SAS設(shè)備呢?這就要借助于帶外(Out of band,OOB)信號(hào)來識(shí)別了。在連接初始化時(shí),主機(jī)控制器端口送出OOB慢速脈沖信號(hào),檢測目標(biāo)對(duì)COMSAS脈沖的響應(yīng)情況—-如果目標(biāo)也返回COMSAS脈沖,就是SAS設(shè)備,反之即為SATA設(shè)備。需要注意的是,由于在SAS協(xié)議中發(fā)起者和目標(biāo)是對(duì)等的,外圍設(shè)備也可以主動(dòng)送出COMSAS脈沖,向主機(jī)適配器表明自己的身份。以硬盤為例,能否生成COMSAS脈沖即是辨別SAS與SATA的依據(jù)。
STP發(fā)起者端口經(jīng)過OOB協(xié)商確認(rèn)與自己相連的是SATA設(shè)備后即進(jìn)入SATA模式,嚴(yán)格遵循SATA主機(jī)適配器的行為規(guī)范。STP并不關(guān)心SATA FIS(Frame Information Structure,幀信息結(jié)構(gòu))的內(nèi)容,SATA命令排隊(duì)可以在FIS中傳輸—-前提當(dāng)然是STP發(fā)起者端口和SATA設(shè)備必須支持命令排隊(duì)功能。
傳輸完成后由SAS主機(jī)適配器或擴(kuò)展器決定是否用STP斷開與SATA設(shè)備的連接,以后需要時(shí)再重新連接。整個(gè)過程中該SATA設(shè)備始終以為自己通過正常的流控機(jī)制直接連在某個(gè)SATA主機(jī)適配器上,實(shí)際情況卻是SAS主機(jī)適配器進(jìn)行了SATA“翻譯”工作。在Windows操作系統(tǒng)中,這個(gè)SAS主機(jī)適配器將與使用Miniport驅(qū)動(dòng)程序的SATA主機(jī)適配器一樣被歸類為SCSI控制器。
結(jié)語:融合促進(jìn)分層存儲(chǔ)
由于單端口的帶寬(3.0Gbps,甚至1.5Gbps)已經(jīng)能夠滿足硬盤的要求,SAS硬盤增加第二端口并不是為了支持寬鏈接(2-wide),而是通過給它們賦予不同的SAS地址(World Wide Name,WWN),讓雙端口分屬兩個(gè)(冗余的)域以防系統(tǒng)出現(xiàn)單點(diǎn)故障,從而提高可用性。
在SAS環(huán)境中,SATA設(shè)備同樣有高可用性需求,即允許兩個(gè)主機(jī)適配器連接到一臺(tái)SATA硬盤上,避免主機(jī)適配器成為單點(diǎn)故障源。與SAS的雙端口不同,在任何時(shí)刻都只能由一個(gè)主機(jī)適配器獨(dú)享此SATA硬盤的控制權(quán)(由系統(tǒng)軟件檢測哪個(gè)主機(jī)適配器處于“活動(dòng)”狀態(tài),即不是active-active的)。這種通路切換機(jī)制由兩端口到單端口的適配器(也稱Port Selector—-端口選擇器)實(shí)現(xiàn),目前Port Selector 1.0規(guī)范已經(jīng)公布。在任何時(shí)刻只有一個(gè)端口處于活動(dòng)狀態(tài),在切換端口之前硬盤的所有行為都必須停止(隊(duì)列中無請(qǐng)求)。端口選擇器的設(shè)計(jì)取決于子系統(tǒng)廠商,可以兩邊分別是SAS(雙端口)和SATA連接器,也有可能把端口選擇器放在背板上,或者干脆將其集成到硬盤上配合統(tǒng)一的背板連接器使用。此外,端口選擇器還可以用于靜態(tài)負(fù)載均衡。不過,這樣一來也對(duì)該SATA硬盤的工作周期(7×24)和平均無故障時(shí)間(MTBF)提出了更高的要求。
SAS的整個(gè)架構(gòu),比同樣以串行方式運(yùn)行SCSI協(xié)議的FC-AL更為完善,有望引起高端硬盤接口一場革命。這里我們要著重指出的是SAS兼容SATA的重大意義。長期以來,高端的FC和并行SCSI接口與低端的PATA接口互不兼容,而隨著近幾年ILM(信息生命周期管理)概念的提出,企業(yè)級(jí)存儲(chǔ)系統(tǒng)對(duì)參考數(shù)據(jù)應(yīng)用的需求不斷增長,PATA及其繼承者SATA開始打入企業(yè)級(jí)存儲(chǔ)市場,系統(tǒng)制造商希望能夠通過混用高端磁盤和低端磁盤在單個(gè)存儲(chǔ)設(shè)備內(nèi)部實(shí)現(xiàn)分層存儲(chǔ),為應(yīng)用提供更高的靈活性。這種混用最初是在磁盤柜級(jí)別的,即磁盤柜內(nèi)部全都是一種接口的硬盤,外部統(tǒng)一為FC接口(如EMC CLARiiON),后來FATA(Fibre Attached Technology Adapted)的出現(xiàn)將混用級(jí)別推進(jìn)到了單個(gè)磁盤,靈活度大為提高。
然而,作為一種高端接口(FC)與低端盤體相結(jié)合的產(chǎn)物,F(xiàn)ATA磁盤專為高低端磁盤混用而生,市場空間相對(duì)有限,成本和靈活性不會(huì)很理想。反觀SAS與SATA的兼容,可謂自然而然,SATA在取代PATA之后一統(tǒng)低端市場,SATA硬盤隨手可得,與SAS配合起來,相得益彰。
編看編想:誰的壽命更長?
隨著SAS磁盤的推出,用戶有了更多的選擇,同樣,用戶也就更關(guān)心哪種磁盤技術(shù)的壽命長的問題。當(dāng)我們對(duì)各種磁盤技術(shù)進(jìn)行比較時(shí),用戶首先關(guān)心的是它們的故障率,于是有觀點(diǎn)認(rèn)為,誰的故障率最低誰的壽命最長。然而,事情遠(yuǎn)非如此簡單!
由于SAS產(chǎn)品剛剛推出,其各種影響力還沒有展現(xiàn),但是,從SATA磁盤的應(yīng)用來看,其獲得成功的關(guān)鍵并不是更低的故障率,相反,其故障率甚至高于SCSI和光纖通道磁盤。記者認(rèn)為,用戶擁有RAID技術(shù),擁有熱插拔技術(shù),它們的結(jié)合很大程度上補(bǔ)償了磁盤肯定會(huì)發(fā)生的故障。另外,有些公司的特定技術(shù)(RAID 6以及類似技術(shù))還做到了同時(shí)有兩塊磁盤發(fā)生故障而不丟失數(shù)據(jù)。
就目前情況來看,還沒有一種技術(shù)可以完全替代其他所以類型磁盤,但是在用戶進(jìn)行分層次存儲(chǔ)選擇磁盤時(shí),用戶的有些選擇已經(jīng)發(fā)生了很大的變化,勿庸置疑,串行技術(shù)的優(yōu)勢已經(jīng)逐漸顯現(xiàn)出來,并且會(huì)發(fā)揚(yáng)光大。
IT經(jīng)理應(yīng)當(dāng)了解所有這些問題,然后考慮價(jià)格、廠商因素以及其他許多問題。選擇SATA或者SAS磁盤會(huì)更便宜嗎?這取決于用戶的需要。在大多數(shù)問題得到充分了解后,企業(yè)IT經(jīng)理可以根據(jù)IT的經(jīng)濟(jì)性而不僅僅是技術(shù),做出決定。