聲明:只要在本頁(yè)面底部贊賞2元或以上者,冬瓜哥便將本文中的配圖PPT原稿推送給你,每天晚上在公眾號(hào)上統(tǒng)一對(duì)已打賞的朋友推送原稿。來(lái)吧,兄弟們!! 上周,冬瓜哥寫過(guò)一篇各種存儲(chǔ)接口協(xié)議總結(jié),不過(guò)是篇比較初步的。本次,冬瓜哥打算圖文并茂的完整總結(jié)一下常見的存儲(chǔ)協(xié)議接口連接器。 一.頂層協(xié)議描述了什么 在存儲(chǔ)系統(tǒng)中,上層協(xié)議可以泛指“指令”,也就是比如“讀出從某某開始的多少長(zhǎng)度的扇區(qū)”,讀/寫類指令包含三大關(guān)鍵信息: 1. 操作碼,OperationCode,或者稱為OP code。比如Write,Read,Control(Inquery,Standby等等)。 2. 起始地址:從哪開始讀。如果是文件的話,精確到字節(jié)。如果是硬盤的話,精確到LBA(扇區(qū))。 3. 長(zhǎng)度:從起始地址往后多長(zhǎng)的一段字節(jié)或者扇區(qū)。 二.下層協(xié)議及接口又是做什么用的 那么,指令如果傳遞給對(duì)端的設(shè)備?你可以自己將上述指令的二進(jìn)制碼再編碼一下,用手電筒的量滅傳遞給對(duì)方,傳對(duì)方收到之后閃一下手電筒表示已經(jīng)收到。此時(shí),手電筒編碼、收到后怎么表示收到,這也是一種協(xié)議,屬于傳輸層協(xié)議。而手電筒就是物理層的接口,最終通過(guò)物理層,也就是光在真空中傳播來(lái)將信息發(fā)送到對(duì)方。 同理,SCSI指令/協(xié)議和NVMe指令/協(xié)議,是存儲(chǔ)系統(tǒng)面向機(jī)械盤和固態(tài)介質(zhì)分別開發(fā)的兩種上層協(xié)議。它們可以被over到傳輸層協(xié)議 網(wǎng)絡(luò)層/鏈路層/物理層接口上傳輸?shù)綄?duì)方,比如scsi over fc,scsi over sas、[(scsiover tcp)over ip] over ethernet(iSCSI), scsi over RDMA over IB(SRP), scsi over tcp over ip over ib。以及NVMe over PCIE over 標(biāo)準(zhǔn)插槽、NVMe over PCIE overM.2接口、NVMe over PCIE over SFF8639接口等等。 NVMe最好是直接over到PCIE上,因?yàn)槟壳皝?lái)講,PCIE的物理層 鏈路層 網(wǎng)絡(luò)層 傳輸層還是非常高效的,算是開放式IT設(shè)備外部IO總線里速率較高使用最廣泛的。當(dāng)然,如果為了擴(kuò)展性考慮,也可以把NVMe overTCP/IP over 以太網(wǎng),或者NVMe over RDMA over 以太網(wǎng)/IB,或者NVMe Over FC等等。 底層接口,同樣是手電筒,有人用燈絲燈泡的,有人用led的,有人用袖珍的,有人用手提的,有人用頭戴的。這就是接口不同,但是它們傳遞的信息編碼、物理層,都是一樣的。比如,PCIE可以用標(biāo)準(zhǔn)插槽,也可以用自定義的插槽,但是里面的信號(hào)針腳數(shù)量都是一樣的。 三.各類存儲(chǔ)系統(tǒng)使用的協(xié)議及接口一覽 存儲(chǔ)系統(tǒng)中的硬件物理接口,包括: 1. SCSI協(xié)議及接口:最原始的上層協(xié)議及底層接口標(biāo)準(zhǔn)。有人可能蒙掉了,SCSI不是上層協(xié)議的名字么,為何底層物理接口也叫SCSI?因?yàn)镾CSI這個(gè)標(biāo)準(zhǔn)最早的時(shí)候把上層協(xié)議一直到底層傳輸協(xié)議、網(wǎng)絡(luò)層、物理層全給定義了。下圖就是SCSI體系設(shè)備側(cè)的接口物理形態(tài)。目前已被淘汰。其定義了:表示層到物理層。 2. IDE協(xié)議及接口:承載ATA協(xié)議。面向消費(fèi)級(jí),與SCSI接口處于同一個(gè)時(shí)代。同屬并行總線接口,最大接2個(gè)設(shè)備。物理層速率比同時(shí)代SCSI接口低。目前已被淘汰。其定義了:傳輸層到物理層 3. FC協(xié)議及接口:用于存儲(chǔ)系統(tǒng)時(shí)則承載SCSI協(xié)議,理論上可以承載任何上層協(xié)議。分為FCAL和FC Fabric兩種網(wǎng)絡(luò)層拓?fù)?。磁盤接入的是FCAL拓?fù)?。物理層接口如下圖所示。為了滿足企業(yè)級(jí)對(duì)可用性的要求,F(xiàn)C盤被作為雙數(shù)據(jù)接口,接入兩個(gè)成環(huán)器再各自上聯(lián)到FC控制器上。圖中所示的接口中包含兩套數(shù)據(jù)針腳。其定義了:傳輸層到物理層 4. SATA協(xié)議及接口:僅用于承載ATA協(xié)議。其用于取代IDE接口。屬于串行總線,每個(gè)通道只能接入一個(gè)設(shè)備,采用特殊的Mux可以復(fù)用多個(gè)設(shè)備。下圖中左側(cè)為數(shù)據(jù)口,右側(cè)為供電口。數(shù)據(jù)口有三根地線和兩對(duì)差分線。供電口有不同電流的多路冗余供電。其定義了:傳輸層到物理層 5. SAS協(xié)議及接口:在存儲(chǔ)系統(tǒng)中用來(lái)取代FCAL接口。目前速率為12Gb/s,支持交換式組網(wǎng),電路交換,不能成環(huán)。其定義了:傳輸層到物理層。SAS和SATA的連接器看上去差不多,仔細(xì)觀察會(huì)發(fā)現(xiàn)SATA連接器中間的缺口在SAS上是被補(bǔ)平的,其反面其實(shí)還有7根數(shù)據(jù)線,這就是企業(yè)級(jí)冗余所要求的雙端口,這第二個(gè)數(shù)據(jù)口接入到第二個(gè)SAS控制器或者Expander上。 6. PCIE協(xié)議及接口:承載PCIE傳輸協(xié)議。其可承載各種上層協(xié)議。用于存儲(chǔ)系統(tǒng)時(shí),一般直接承載NVMe協(xié)議,也可以承載SCSI協(xié)議,但是后者沒(méi)有普及。其定義了:傳輸層到物理層。目前PCIE設(shè)備側(cè)連接器形態(tài)主要是標(biāo)準(zhǔn)插槽或者SFF8639(U.2)。 7. emmc協(xié)議及接口:沒(méi)有連接器,直接從flash顆粒管腳以貼片的方式與emmc控制器的管腳相連。承載emmc上層協(xié)議(與ATA/SCSI/NVMe處于同一個(gè)階層)。底層物理層采用并行總線。emmc與早期scsi的做法類似,從頂層協(xié)議到底層物理層全都定義了一套自己的標(biāo)準(zhǔn)。其定義了:表示層到物理層 8. ufs協(xié)議及接口:沒(méi)有連接器,直接從flash顆粒管腳以貼片的方式與ufs控制器的管腳相連。底層物理層采用串行總線。上層協(xié)議采用ufs協(xié)議(與ATA/SCSI/NVMe/emmc處于同一個(gè)階層)。ufs與早期scsi的做法類似,從頂層協(xié)議到底層物理層全都定義了一套自己的標(biāo)準(zhǔn)。其定義了:表示層到物理層 三. 連接器 上述的SCSI、FC、SAS等各種協(xié)議都相應(yīng)定義了自己的物理層連接器形態(tài)。但這并不意味著某種連接器只能承載當(dāng)初定義它的那個(gè)協(xié)議。比如,SATA連接器可以承載以太網(wǎng)物理層信號(hào),RJ45連接器可以承載串行通信協(xié)議物理層信號(hào)。SAS協(xié)議定義的HD miniSAS連接器可以承載PCIE物理層信號(hào),等等。有個(gè)原則就是,為高速率傳輸協(xié)議定義的連接器,可以承載低速率傳輸協(xié)議,反之則不行。
1. 上述各種協(xié)議原生定義的連接器,不再多描述。 2. SAS方面,由于引入了Expander,外置端口形態(tài)在早期比較多,但是到12Gb速率時(shí)代之后,逐漸統(tǒng)一成HD miniSAS類型的連接器,如下圖所示,分內(nèi)口和外置口兩個(gè)版本。miniSAS逐漸不再用。 3. U.2連接器(SFF8649連接器),其中包含SAS、SATA和PCIE x4三套接口,充分利用空間,將三套金手指信號(hào)做到接口上,各干各的。意味著可以插入一塊SAS或SATA或PCIE盤。樣子乍一看和SAS差不多,但是別搞混了,還是有差別的。U.2實(shí)質(zhì)上是一種combo組合接口。其定義了:連接器 4. M.2連接器廣泛用于平板電腦里的固態(tài)存儲(chǔ)介質(zhì)。其底層可承載PCIE傳輸協(xié)議,然后可以SCSI over PCIE,NVMe over PCIE。其也可以直接跑SATA信號(hào) 總結(jié)一下:
(注:上表由熱心網(wǎng)友yvonne.cai整理,特此致謝?。?/span> 四.各類存儲(chǔ)系統(tǒng)控制器/HBA一覽 通信是雙方的,上文中大家看到的只是硬盤/外設(shè)一側(cè)的接口形態(tài),所有設(shè)備必須被接入到IO通道控制器上,比如IDE需要接入到IDE控制器,SATA盤需要接入到SATA控制器,SAS接入到SAS控制器,SCSI、PCIE等各自也都有各自的控制器。這些IO通道控制器在后端通過(guò)各自的連接器將1個(gè)、2個(gè)或者多個(gè)設(shè)備通過(guò)各自不同的總線方式掛接上,在前端則通過(guò)PCIE或者內(nèi)部私有總線與系統(tǒng)IO橋相連,IO橋在通過(guò)更高速的總線連接到CPU。所以這類控制器又被稱為總線適配器,如果將這類IO控制器做成一張板,插到PCIE槽上與IO橋相連,則稱之為HostBus Adapter,HBA。當(dāng)然,PCIE控制器是直接集成到CPU里的,PCIE設(shè)備是直接連接到CPU而不需要HBA,最多用個(gè)連接器轉(zhuǎn)接板將CPU上的PCIEIO管腳連接到外部連接器或者插槽上。 1. SATA、IDE、PCIE、emmc、ufs這些協(xié)議的接口控制器,由于太過(guò)常用,一般都被集成到系統(tǒng)IO橋芯片中了。不需要轉(zhuǎn)接到PCIE外擴(kuò)出HBA來(lái)。 2. SCSI HBA 3. FC HBA 4. SAS HBA 5. 以太網(wǎng)HBA
6. Infiniband HBA IB體系習(xí)慣把HBA叫做HCA(HostChannel Adapter)
五.帶Raid功能的HBA被稱為Raid卡 在HBA上增加或者增強(qiáng)對(duì)應(yīng)資源,比如嵌入式CPU、板載DRAM、硬加速計(jì)算邏輯等,便可實(shí)現(xiàn)各種Raid了,此時(shí)HBA上報(bào)給OS的并不是其下掛的物理資源,而是經(jīng)過(guò)Raid虛擬化之后邏輯資源。由于提升了并發(fā)性,增加了Write Back模式的緩存并加以電池或者超級(jí)電容保護(hù),這些邏輯資源擁有更高的速度、更好的時(shí)延和更好的可靠性。 1. SCSIRaid卡 2. SATARaid卡 3. SAS Raid卡
六. SAS/SATA硬盤、HBA、接入到服務(wù)器中的方式 下圖是最早期的SCSI硬盤的接入方式,由于采用總線結(jié)構(gòu),背板可以做成無(wú)源背板,而且走線十分方便,大部分導(dǎo)線被焊接到背板的PCB上,只留一個(gè)鏈接器連接到SCSI HBA/Raid卡即可。由于SCSI底層接口已經(jīng)被淘汰,不多描述。 1. SAS卡直連無(wú)源背板形式。該形式下,SAS卡(不管是HBA還是帶Raid功能的HBA)采用x4的線纜直接連接到背板上的連接器,背板上每4個(gè)硬盤接口被導(dǎo)入到一個(gè)x4的連接器上從而直接連接到SAS卡。也就是說(shuō),如果有16塊盤,那么背板需要出4個(gè)x4連接器,分別連接到SAS卡一側(cè)的一個(gè)x4連接器上,前提是SAS卡必須支持對(duì)應(yīng)數(shù)量的直連設(shè)備。目前Adaptec的12Gb SAS HBA可以單芯片最大直連16個(gè)SAS設(shè)備,為接入密度最大的產(chǎn)品。 2. SAS卡連接帶Expander的有源背板形式。有些型號(hào)的SAS卡最大只能直連8個(gè)設(shè)備,而有些服務(wù)器比如Dell R910,其前面板有12個(gè)硬盤槽位。此時(shí),只能靠SAS Expander(簡(jiǎn)稱EXP)了。12個(gè)槽位先連接到EXP上,EXP再出1個(gè)或者2個(gè)上行的x4口連接到HBA上。下圖就是Dell R910的帶SASEXP的背板。 3. SAS卡連接Expander子板再連接無(wú)源背板的形式。有些時(shí)候服務(wù)器廠商不想為了增加一個(gè)Expander而再制作一款背板,而是想利用現(xiàn)有的無(wú)源背板,比如支持16盤位的無(wú)源背板,再加上一小塊子板,將Expander放在這個(gè)子板上,再將這個(gè)子板與SAS HBA及背板分別連接起來(lái)。下圖是Dell R730服務(wù)器的硬盤連接部分的俯視圖。可以看到那塊黃色的子卡,其背面有一塊SAS Expander芯片,北向采用4個(gè)x4接口連接到SAS HBA,南向采用連接器與無(wú)源背板相連。 4. SAS卡直連設(shè)備無(wú)背板形式。這種形式下,SAS/SATA盤直接放到服務(wù)器托架上,比如PC機(jī),不提供背板。此時(shí)需要使用1分4的線纜,x4那頭接到SAS卡上,分出來(lái)的4個(gè)數(shù)據(jù)口分別接一個(gè)SAS/SATA設(shè)備。 1分4的線纜如下圖所示。 5. SAS連接到服務(wù)器機(jī)箱外置的JBOD形式。這種形態(tài)并無(wú)本質(zhì)上的變化,只是要求HBA提供外置接口,用外置線纜,硬盤和背板放到單獨(dú)的箱子中。一般JBOD上的背板都是帶Expander的,這樣可以只保留一兩個(gè)上行接口即可。 七. NVMe固態(tài)盤、PCIE轉(zhuǎn)接卡、PCIE交換芯片接入到服務(wù)器中的方式 1. 全Combo形式。如下圖,24個(gè)插槽均為SFF8639也就是U.2接口,這就意味著不管是插SATA/SAS還是NVMe SSD到任何一個(gè)槽位,混差,數(shù)量配比不限,系統(tǒng)都可以識(shí)別到對(duì)應(yīng)的硬盤,也就是所謂三模式(Tri-mode)。所以,每個(gè)接口必須將對(duì)應(yīng)的金手指觸點(diǎn)真的連接到對(duì)應(yīng)的控制芯片上,如下圖,每個(gè)插槽均連接SAS信號(hào)到SAS HBA以及PCIE信號(hào)到PCIE Switch芯片。這樣做的成本當(dāng)然是非常高的。 2. 只有固定槽位支持全Combo盤的形式。如下圖,同樣是這24個(gè)插槽,同樣均為SFF8639也就是U.2接口,但是只有最后的4個(gè)槽位同時(shí)支持三模式Tri-mode,其余的20個(gè)槽位只支持SAS/SATA盤。 3. 只有固定槽位支持NVMe盤的形式。為了進(jìn)一步節(jié)省成本,服務(wù)器廠商還可以讓少數(shù)幾個(gè)槽位只支持NVMe固態(tài)盤而不支持SAS/SATA,雖然依然是U.2接口,上面依然有對(duì)應(yīng)的SAS/SATA的金手指信號(hào),但是這些信號(hào)是被空置在那里的,沒(méi)有連接任何上游的芯片。只有PCIE對(duì)應(yīng)的針腳會(huì)被連接到上游芯片。而由于只有比如2個(gè)、4個(gè)NVMe Only的槽位,按照每個(gè)NVMe固態(tài)盤使用x4 Lane的PCIE接口的話,4個(gè)盤共需要16個(gè)Lane,可以將這16個(gè)Lane對(duì)應(yīng)的金手指信號(hào)直接連接到CPU,也就是連接到主板上的一個(gè)x16的槽位上。所以,需要一塊連接器轉(zhuǎn)接卡先插到主板的x16 PCIE插槽上,轉(zhuǎn)接板下游再出4個(gè)x4的miniSAS或者HD miniSAS連接器,然后用線纜連接到該連接器,線纜另一端再與硬盤背板上對(duì)應(yīng)的miniSAS或者HDminiSAS連接器相連,這樣就是下圖所示的拓?fù)淞恕?/span> 該服務(wù)器是一臺(tái)戴爾服務(wù)器上的第一代 Express Flash PCIe SSD,以及PCIe 2.0的轉(zhuǎn)接卡。散熱片下面的是一塊信號(hào)Repeter/Relay,其內(nèi)部就是大量的三態(tài)緩沖門,為了增強(qiáng)信號(hào)質(zhì)量,增強(qiáng)信號(hào)電流。
八.Dell R930服務(wù)器的硬盤連接方式簡(jiǎn)析 Dell R930服務(wù)器是一臺(tái)最大支持4路CPU,提供最大24盤位的高端服務(wù)器。在硬盤配置方面,其提供了3個(gè)不同的背板,4盤位SAS/SATA背板,24 SAS/SATA盤位背板,以及16 SAS/SATA盤位 8 NVMe固態(tài)盤位背板。下面我們就來(lái)說(shuō)說(shuō)最后這種SAS和NVMe混布的選擇。 下圖就是配置了該背板的服務(wù)器前視圖??梢钥吹截Q插的12塊SAS/SATA盤和左右兩邊最下方的各兩塊橫插的SAS/SATA盤;以及左右兩邊上方的各4塊NVMe固態(tài)盤。 對(duì)于NVMe盤位,其采用了NVMe Only的方式而不是Combo方式,也就是說(shuō)這8個(gè)NVMe插槽只有PCIE信號(hào)被接入了系統(tǒng)中,SAS信號(hào)空置。如下圖所示,可以看到每一邊的4個(gè)U.2插槽上的x4 PCIE Lane信號(hào)被分別連接到一個(gè)HDminiSAS連接器,兩邊各4個(gè)。再采用對(duì)應(yīng)的線纜連接到分別連接到一塊PCIE連接器轉(zhuǎn)接卡上,插入到主板的x16插槽中。 下圖中可以看到這兩塊PCIE連接器轉(zhuǎn)接卡的樣子,其插在了服務(wù)器的最后方。 可以看到散熱片下面的信號(hào)中繼芯片,以及右側(cè)的對(duì)應(yīng)的4個(gè)HDminiSAS連接器。 Dell R930服務(wù)器在前部還提供了一個(gè)特殊的托架,這個(gè)托架中可以安置兩塊子板,每個(gè)子板上有一片SAS Expander。由于戴爾R930配備的SAS HBA/Raid卡最大只能支持8盤直連,所以當(dāng)配置的SAS硬盤數(shù)量大于8塊時(shí),必須增加SASExpander。該Expander子板采用連接器的方式與背板相連,從而與硬盤信號(hào)對(duì)接,上游提供對(duì)應(yīng)的HDminiSAS連接器,通過(guò)線纜連接到其PERC9 Raid卡上。該托架可放置兩塊Expander子板,這樣就可以將所有SAS/SATA硬盤分兩部分分別接入到其中一塊Expander,提升SAS鏈路的并發(fā)度。同時(shí),R930支持插兩塊PERC9 Raid卡,那就可以分別接一塊Expander子卡,進(jìn)一步提升存儲(chǔ)系統(tǒng)性能了。 最后,還有一種利用PCIE Switch將存儲(chǔ)部分接入系統(tǒng)的方案,比如,在Dell PowerEdge FX2平臺(tái)上,就使用了支持Partition功能的雙PCIE Switch,具體可以參考冬瓜哥的另一篇文章:《PCIE交換芯片及在戴爾PowerEdge FX2平臺(tái)上的應(yīng)用》 聲明:只要在本頁(yè)面底部贊賞2元或以上者,冬瓜哥便將本文中的配圖PPT原稿推送給你,每天晚上在公眾號(hào)上統(tǒng)一對(duì)已打賞的朋友推送原稿。來(lái)吧,兄弟們??! |
|
來(lái)自: jeff_liugogo > 《待分類》