在談企業(yè)級(jí)SSD之前,我們先來(lái)了解一下什么是SSD。SSD是Solid State Drives(固態(tài)硬盤(pán))的縮寫(xiě),是用固態(tài)電子存儲(chǔ)芯片陣列制成的硬盤(pán)產(chǎn)品,可廣泛應(yīng)用于移動(dòng)終端、筆記本電腦、臺(tái)式機(jī)、服務(wù)器和數(shù)據(jù)中心等場(chǎng)合。1、面向當(dāng)下與未來(lái)的高端企業(yè)級(jí)SSD.pdf 2、2021年中國(guó)企業(yè)級(jí)SSD行業(yè)發(fā)展洞察.pdf 3、圖解數(shù)據(jù)中心PCIe總線和NVMe SSD測(cè)試.pdf SSD一般由硬件組件與固件兩大部分組成,硬件組件包括主控芯片、存儲(chǔ)芯片(DRAM、NAND Flash),其中主控芯片承擔(dān)數(shù)據(jù)的讀取、寫(xiě)入。存儲(chǔ)芯片中,NAND Flash即閃存顆粒,是數(shù)據(jù)存儲(chǔ)的核心介質(zhì),也是數(shù)據(jù)存儲(chǔ)的載體,DRAM即動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,主要作為緩存用以降低SSD的讀寫(xiě)延遲,提升SSD的讀寫(xiě)性能。如果將SSD比作電腦,固件則可以看作是包含核心操作系統(tǒng)和應(yīng)用軟件的集合體,它擔(dān)任著一個(gè)系統(tǒng)最基礎(chǔ)最底層工作,是影響硬件設(shè)備的功能及性能的重要因素之一。按照不同用途,SSD可以分為消費(fèi)級(jí)、企業(yè)級(jí)及其他行業(yè)級(jí)產(chǎn)品。近年,隨著云計(jì)算、大數(shù)據(jù)等新興技術(shù)快速發(fā)展,互聯(lián)網(wǎng)服務(wù)加速普及,企業(yè)加快數(shù)字化轉(zhuǎn)型,數(shù)據(jù)呈現(xiàn)井噴狀態(tài),企業(yè)級(jí)SSD市場(chǎng)需求與規(guī)模不斷攀升。企業(yè)級(jí)SSD主要應(yīng)用于互聯(lián)網(wǎng)、云服務(wù)、金融和電信等客戶的數(shù)據(jù)中心,與消費(fèi)級(jí)SSD相比,企業(yè)級(jí)SSD具備更快傳輸速度、更大單盤(pán)容量、更高使用壽命以及更高的可靠性要求。按照總線通道技術(shù),SSD又可以分為SATA、SAS、PCIe等接口類(lèi)別;按照傳輸層協(xié)議不同,又可以分為SCSI、ATA、NVMe。由于PCIe支持速率更高,NVMe協(xié)議針對(duì)NAND進(jìn)行了優(yōu)化,具備更高的效率,“PCle接口+NVMe協(xié)議” 逐漸成為企業(yè)級(jí)SSD的發(fā)展趨勢(shì)。目前企業(yè)級(jí)SSD以PCIe3.0 、PCIe4.0為主流。為了應(yīng)對(duì)日益增長(zhǎng)的高性能計(jì)算、高性能存儲(chǔ)等快速發(fā)展的需求,PCIe 5.0技術(shù)興起,該技術(shù)傳輸速率可達(dá)32GT/s,是PCIe4.0的兩倍,帶寬可達(dá)128GB/s,并具有向下兼容性,未來(lái)在主流CPU廠商支持下,PCIe 5.0有望在企業(yè)級(jí)SSD領(lǐng)域大規(guī)模商用。本文重點(diǎn)介紹了SATA、SAS、PCIe接口,并且對(duì)所遇到的各種性能和兼容性權(quán)衡進(jìn)行了比較。SATA 是為點(diǎn)到點(diǎn)連接設(shè)計(jì)的一種低成本接口,可以通過(guò)線纜或者印刷線路板 (PCB) 走線實(shí)現(xiàn)。主機(jī)連接面向高級(jí)主機(jī)控制器接口 (AHCI),通常駐留于主機(jī)芯片集上面,如同主機(jī)適配器位于 PCIe 總線上面。這個(gè)接口有幾個(gè)設(shè)計(jì)問(wèn)題,可能使得每個(gè)指令產(chǎn)生 1μs 或更多總線開(kāi)銷(xiāo)。對(duì)于一個(gè) 4KB 傳輸需要 10μs 的 HDDs 來(lái)說(shuō),這不是主要的問(wèn)題,但是 SSD 能夠在 2μs 或者更少之內(nèi)傳輸 4KB 數(shù)據(jù)——因而這個(gè)開(kāi)銷(xiāo)變得更值得注意,SATA 接口無(wú)興趣成為一個(gè)高性能海量存儲(chǔ)接口。SATA 仍然適合用作低成本 SSD 接口,在這里,成本而非性能是主要的決定因素。SATA 架構(gòu)也可以合并到一個(gè)管理 SATA 指令集的主機(jī)適配器中,并不會(huì)真正包含物理的 SATA 接口 (PHY) (圖 1)。SAS 也是一個(gè)串聯(lián)接口,通過(guò)一個(gè)主機(jī)適配器添加到主機(jī)中,但是也有明顯的區(qū)別,使其成為一個(gè)適當(dāng)?shù)?SSD 接口:另外,SAS 包括 SATA 所不具備的功能,這些功能能夠提升連接到接口的設(shè)備的可靠性和可用性:SAS 沒(méi)有一個(gè)可等同于 SATA AHCI 控制器的通用主機(jī)接口。相反,SAS 主機(jī)適配器市場(chǎng)中有多個(gè)供應(yīng)商相互競(jìng)爭(zhēng),在這里性能是主要的決定因素——并不僅僅是對(duì)于單個(gè)的 HDDs 接口,也面向不同的 RAID 系統(tǒng),在這些系統(tǒng)中多個(gè) HDD主軸的傳輸速率將會(huì)聚合到一起,從而提高傳輸速率。另外,SAS 主機(jī)適配器是為管理高性能SSD 和 HDDs 而設(shè)計(jì)(例如短擊15K-RPM 硬盤(pán))。因?yàn)橛布鳈C(jī)適配器和管理該主機(jī)適配器的硬盤(pán)被設(shè)計(jì)為一個(gè)系統(tǒng),為 SSD 設(shè)計(jì)的產(chǎn)品經(jīng)過(guò)優(yōu)化,開(kāi)始變得可用,并且進(jìn)一步提升了傳輸速率以及 IPOS。寬端口是 SAS 架構(gòu)固有的理念——多個(gè)連接被聚合到一起,從而允許一個(gè)或多個(gè)主機(jī)與設(shè)備之間存在多個(gè)同步路徑。目前的 SAS 設(shè)備連接器為設(shè)備定義兩個(gè)端口。作為一種設(shè)計(jì)選擇,目前的 HDDs 不支持寬端口——只有雙端口,每個(gè)端口擁有不同的 SAS 地址,阻止其配置成為一個(gè)寬端口。接受的SAS-3(12Gb/秒)協(xié)議允許硬盤(pán)上面的端口增加到 4 個(gè),所有這些都連接到相同的域,或者成對(duì)連接到不同的域。非常受限的 SSD 數(shù)量可能在雙端口設(shè)備上面支持寬端口(除了雙端口以外)。SAS 串口協(xié)議為串行傳輸者和接收者提供訓(xùn)練。通過(guò)對(duì)信道長(zhǎng)度、阻抗失配和信號(hào)間干擾進(jìn)行補(bǔ)償,提升了線纜或者背板上面的信號(hào)質(zhì)量。SAS 串口協(xié)議也管理硬件級(jí)別的錯(cuò)誤檢測(cè)和重傳。從而使得間斷信號(hào)可以迅速得到恢復(fù)。SAS 目標(biāo)設(shè)備支持雙端口操作。這樣能夠創(chuàng)建兩個(gè)故障域,并提供更高的可用性。即使故障發(fā)生在一個(gè)連接到端口的路徑,并且該端口阻止通過(guò)該路徑訪問(wèn),還是可以通過(guò)第二個(gè)端口訪問(wèn)該設(shè)備。從歷史的觀點(diǎn)來(lái)說(shuō),希捷從市場(chǎng)中采購(gòu)硬盤(pán)接口。希捷與 SCSI (STA) 同業(yè)公會(huì)以及其他行業(yè)領(lǐng)導(dǎo)者合作,充分利用已經(jīng)廣泛部署的 SAS 基礎(chǔ)設(shè)施(圖 2)。表 1 顯示了 12Gb/秒 SAS 和多鏈接為系統(tǒng)構(gòu)建者和最終用戶組織帶來(lái)的好處。PCI Express (PCIe) 是連接外圍設(shè)備和主機(jī)處理器的主要接口,通過(guò)存儲(chǔ)控制器連接到系統(tǒng)中的存儲(chǔ)架構(gòu)。SATA 和之前討論的 SAS 接口都是通過(guò)PCIe 接口(或者主機(jī)適配器)連接到主機(jī)處理器和內(nèi)存中。PCIe 接口是原始的 PCI 接口的串行實(shí)現(xiàn),該原始接口在外圍設(shè)備和主機(jī)處理器/內(nèi)存之間提供并行的地址/數(shù)據(jù)連接。PCIe 接口通信是通過(guò)一條或者多條線路實(shí)現(xiàn)的,每條線路具有一個(gè)傳輸和接收串行接口。最多可以使用 32 條線路來(lái)連接主機(jī)和設(shè)備。每條線路上面的串行數(shù)據(jù)速率取決于所采用的 PCIe 標(biāo)準(zhǔn)的版本,當(dāng)前的版本是3.0,數(shù)據(jù)速率大約為 1GB/s。對(duì)于一個(gè) 1U 用戶,PCIe 接口設(shè)計(jì)為,使用一個(gè)(客戶)母板上面的單一連接器,或(服務(wù)器)母板上面的兩個(gè)連接器,直角適配器。布線系統(tǒng)也是可用的(盡管很少使用)。一個(gè) 2U、4U 或7U 服務(wù)器具有多個(gè) PCIe 插槽,類(lèi)似于客戶端應(yīng)用。PCIe 規(guī)格也采用傳輸端(及接收端)訓(xùn)練以適應(yīng)配置的阻抗變化,但是它目標(biāo)是作為比SAS 更短的傳輸信道。PCIe 開(kāi)關(guān)支持單根 I/O 虛擬化 (SR-IOV) 和多根I/O 虛擬化 (MR-IOV)——這些方法用于提升虛擬系統(tǒng)(管理程序)中的控制器性能。這些虛擬帶有單主機(jī)或多主機(jī)。SR-IOV 剛剛在適配器中開(kāi)始成為普遍可用的;不過(guò),VMware 可能還沒(méi)有充分利用它的優(yōu)勢(shì)。MR-IOV 在適配器上面通常是不被支持的。使用 PCIe 接口連接的存儲(chǔ)設(shè)備通過(guò)直接注冊(cè)器連接,或者通過(guò)主機(jī)適配器連接,該主機(jī)適配器接下來(lái)通過(guò)額外的線纜或者背板型接口連接到設(shè)備。目前,這兩種架構(gòu)都有很多不同的實(shí)現(xiàn)。SATA 在系統(tǒng)芯片集(南橋)中使用主機(jī)總線適配器實(shí)現(xiàn)—— Intel 或 AMD AHCI——需要不同的 AHCI,但是映射到兼容的 IDE 遺產(chǎn)實(shí)現(xiàn)。這些接口也應(yīng)用不同的 RAID 管理功能。SAS 具有多個(gè) HBAs 供應(yīng)商,具有額外的擴(kuò)展卡和可用的 RAID 控制器,所有這些都使用專(zhuān)有的設(shè)備驅(qū)動(dòng)器和 BIOS 以滿足不同的性能和配置需求。PCIe 驅(qū)動(dòng)控制器接口通過(guò) NVM Express 規(guī)格和推薦的 SCSI over PCIe (SOP) 規(guī)格實(shí)現(xiàn)。SATA 合并下文中描述的架構(gòu),是 PCIe 直接注冊(cè)器連接的又一個(gè)實(shí)例。SOP 和 NVMe 兩種方法的架構(gòu)是類(lèi)似的。不過(guò),NVMe 正在由一個(gè)產(chǎn)業(yè)工作組開(kāi)發(fā),而SOP 是由公認(rèn)的開(kāi)放式標(biāo)準(zhǔn)論壇開(kāi)發(fā)。NVMe僅僅以非易失內(nèi)存設(shè)備的應(yīng)用為目標(biāo),而 SOP也以使用主機(jī)總線適配器和 RAID 控制器(帶有不同的 SOP 設(shè)備之間的橋接功能)為宗旨。另外,SOP 著重體現(xiàn)現(xiàn)有的產(chǎn)業(yè)架構(gòu)和功能,而 NVMe 使用一個(gè)新的受限制的指令集和排隊(duì)接口。上述的每一種存儲(chǔ)架構(gòu)都具有各自的優(yōu)勢(shì),也存在一定的問(wèn)題。取決于總體的系統(tǒng)設(shè)計(jì),使用特定架構(gòu)的好處可能比該架構(gòu)帶來(lái)的問(wèn)題更加明顯,因此,需要仔細(xì)分析才能做出適當(dāng)?shù)臎Q定。這個(gè)決定也必須考慮兼容現(xiàn)有的系統(tǒng)設(shè)計(jì)。例如,使用 SSD 升級(jí)一個(gè)具有 2.5-inch SATAHDD 的筆記本電腦,并且該 SSD 具有相同的物理大小和相同的(或更新)SATA 接口。在這種情況下,對(duì)于 SSD 速度有多快將會(huì)有一個(gè)限制;超出現(xiàn)有主機(jī) SATA 接口速度則不會(huì)提升系統(tǒng)的性能。在一個(gè)類(lèi)似的情境中,一臺(tái)使用短擊 15K-RPM SAS HDD 存儲(chǔ)數(shù)據(jù)索引的企業(yè)級(jí)服務(wù)器可以進(jìn)行升級(jí),使用 SAS SSD,從而提升系統(tǒng)的整體性能,但是只能達(dá)到其他系統(tǒng)因素成為新的瓶頸的程度(CPU、內(nèi)存、網(wǎng)絡(luò)、適配器等)。在一個(gè)新的系統(tǒng)架構(gòu)中,增加固態(tài)存儲(chǔ)能夠明顯提高系統(tǒng)性能,但是最多只能達(dá)到系統(tǒng)架構(gòu)的其他部分能夠支持的數(shù)據(jù)速率和帶寬。SSD 中的快速數(shù)據(jù)傳輸速率也需要有更多的電能提供給設(shè)備,并且還有更多的熱量被消耗,不管 SSD 安裝在哪里。在探討什么因素造成延遲,以及在真實(shí)環(huán)境下如何影響應(yīng)用性能這些問(wèn)題時(shí),存在很多誤解。當(dāng)考慮這方面的問(wèn)題時(shí),聚集于整體狀況是相當(dāng)重要的,而不僅僅是其中的一部分。在 SSD 中,大部分延遲是由 flash 部分本身造成的。SLC 訪問(wèn)時(shí)間是 25μs+;MLC 訪問(wèn)時(shí)間是50μs+,兩者均假設(shè)沒(méi)有訪問(wèn)競(jìng)爭(zhēng)。隨著隊(duì)列深度增加,爭(zhēng)奪 flash 部分的訪問(wèn)資源可能導(dǎo)致延遲明顯增加。一但一個(gè) flash 部分開(kāi)始訪問(wèn),其他請(qǐng)求相同部分的則必須等待。多達(dá) 8 個(gè) flash die 共享一條公用的總線,這樣使得 die 一直等待,直到輪到該 die 使用總線。家務(wù)活動(dòng)增加了額外的延遲(地址轉(zhuǎn)換、垃圾收集、損耗平衡等)。另外一個(gè)方面是操作系統(tǒng),它添加了延遲,無(wú)論訪問(wèn)協(xié)議和互連如何。這些包括文件系統(tǒng)、卷管理器、類(lèi)驅(qū)動(dòng)器和上下文交換開(kāi)銷(xiāo)。協(xié)議和互連差異對(duì)延遲的影響非常有限,應(yīng)用程序可以忽略此影響。 ???????????????? END ????????????????
|