今年6月,NVMe標(biāo)準(zhǔn)更新定義了一個(gè)軟件接口,以幫助SSD和NAND閃存實(shí)際工作時(shí)讀寫到硬盤的方式。
區(qū)別于模仿從硬盤和早期存儲(chǔ)技術(shù)繼承的傳統(tǒng)塊設(shè)備模型,新的NVMe ZNS (NVMe Zoned Namespaces)可選特性允許SSD在閃存上實(shí)現(xiàn)不同的存儲(chǔ)抽象。這與SAS和SATA為適應(yīng)SMR硬盤而添加的擴(kuò)展非常相似,還有一些為SSD做的額外擴(kuò)展。帶有這個(gè)新特性的“分區(qū)”SSD可以提供比普通SSD更好的性能,同時(shí)需要的配置更加精簡(jiǎn),所需DRAM更少。缺點(diǎn)是應(yīng)用程序和操作系統(tǒng)必須更新以支持分區(qū)存儲(chǔ),目前這項(xiàng)工作正在順利進(jìn)行。
NVMe ZNS規(guī)范構(gòu)建在當(dāng)前的NVMe 1.4規(guī)范之上,為NVMe2.0做準(zhǔn)備,已經(jīng)作為一項(xiàng)技術(shù)提案得到批準(zhǔn)和發(fā)布。即將到來(lái)的NVMe 2.0規(guī)范將包含所有獲批準(zhǔn)的技術(shù)提議,ZNS的標(biāo)準(zhǔn)化為NVMe 2.0更廣泛的商業(yè)化和應(yīng)用掃清了道路,目前NVMe 2.0一直受到特定于供應(yīng)商的分區(qū)存儲(chǔ)接口和有限硬件選擇的阻礙。
分區(qū)存儲(chǔ)概述
使用閃存作為固態(tài)硬盤的根本挑戰(zhàn)是:我們所有的計(jì)算機(jī)都是圍繞著硬盤如何工作的概念構(gòu)建的,而閃存的行為與硬盤不同。閃存的組織方式與機(jī)械硬盤非常不同,為了提升閃存的性能,對(duì)計(jì)算機(jī)進(jìn)行優(yōu)化變成一項(xiàng)值得投入的工作。
機(jī)械硬盤是一種類似的存儲(chǔ)介質(zhì),沒(méi)有固有的結(jié)構(gòu)來(lái)規(guī)定扇區(qū)大小等特性。長(zhǎng)期選擇512字節(jié)扇區(qū)標(biāo)準(zhǔn)只是為了方便,現(xiàn)在當(dāng)我們達(dá)到多TB范圍的硬盤容量時(shí),企業(yè)硬盤支持4K字節(jié)扇區(qū)。相比之下,閃存芯片的設(shè)計(jì)中包含了好幾層結(jié)構(gòu),最重要的指標(biāo)是頁(yè)面大小和擦除塊大小。可以使用頁(yè)大小粒度(通常是幾個(gè)KB)讀取數(shù)據(jù)、寫入空頁(yè),擦除操作可以清除整個(gè)塊(多MB)。讀/程序操作和擦除操作之間的實(shí)際大小不匹配是一個(gè)普通機(jī)械硬盤不必處理的復(fù)雜問(wèn)題。閃存有限的編程/擦除周期也增加了挑戰(zhàn),因?yàn)閷懭氪螖?shù)越少,壽命就越長(zhǎng)。
如今,幾乎所有的SSD都是作為具有512字節(jié)或4kB扇區(qū)的簡(jiǎn)單類HDD塊存儲(chǔ)設(shè)備的抽象呈現(xiàn)給軟件的。這隱藏了SSD的所有復(fù)雜性,如頁(yè)面和擦除塊大小、磨損均衡和垃圾回收等。這種抽象也是SSD控制器和固件比硬盤控制器更大、更復(fù)雜(更容易出錯(cuò))的部分原因。大多數(shù)情況下,塊設(shè)備抽象仍然是最優(yōu)的折衷方法,它允許軟件無(wú)需修改就可以享受閃存的大部分性能優(yōu)勢(shì),而對(duì)于寫入擴(kuò)展等缺點(diǎn)也在可管理范圍內(nèi)。
多年來(lái),存儲(chǔ)行業(yè)一直在探索塊存儲(chǔ)抽象的替代方法。有幾個(gè)關(guān)于Open Channel SSD的建議,它們將閃存的許多細(xì)節(jié)直接暴露給主機(jī)系統(tǒng),將SSD固件的許多職責(zé)轉(zhuǎn)移到運(yùn)行在主機(jī)CPU上的軟件上。已經(jīng)推廣的各種Open Channel SSD標(biāo)準(zhǔn)在各個(gè)領(lǐng)域取得了不同的平衡(在具有完全驅(qū)動(dòng)管理的FTL(flash translation layer)的典型SSD和完全軟件管理的解決方案之間平衡)。業(yè)界一致認(rèn)為,最早的一些標(biāo)準(zhǔn),如LightNVM 1.x規(guī)范,暴露了太多的細(xì)節(jié),需要軟件處理不同供應(yīng)商閃存之間的差異,或SLC, MLC, TLC等之間的差異。較新的標(biāo)準(zhǔn)尋求更好的平衡和抽象級(jí)別,以便更容易大規(guī)模推廣應(yīng)用,同時(shí)允許軟件繞過(guò)典型SSD的低效率特性。
為了從另一個(gè)方向解決這個(gè)問(wèn)題,NVMe標(biāo)準(zhǔn)已經(jīng)獲得了一些特性,允許SSD與主機(jī)共享更多關(guān)于數(shù)據(jù)訪問(wèn)和布局的最佳模式信息。在很大程度上,這些都是軟件可以利用的可選特性,沒(méi)有意識(shí)到這些特性的軟件仍然可以正常工作。NVMe規(guī)范的過(guò)去幾次修訂中添加了指令和流、NVM集、可預(yù)測(cè)的延遲模式等,以使軟件和SSD能夠更好地協(xié)作。
最近,受硬盤市場(chǎng)的影響,第三種方法的勢(shì)頭正在增強(qiáng)。SMR是一種技術(shù),部分重疊的軌道機(jī)械硬盤盤片可以增加存儲(chǔ)密度。這種方法的缺點(diǎn)是,直接修改任意字節(jié)的數(shù)據(jù)而不破壞相鄰重疊的磁道是不可能的,因此SMR硬盤將磁道分組到區(qū)域中,只允許在區(qū)域內(nèi)順序?qū)懖僮?。這對(duì)包括隨機(jī)寫操作的工作負(fù)載具有嚴(yán)重的性能影響,也是SMR硬盤在市場(chǎng)上受到褒貶不一的部分原因。然而,在服務(wù)器存儲(chǔ)市場(chǎng)中,主機(jī)管理的SMR也是一個(gè)可行的選擇:它要求操作系統(tǒng)、文件系統(tǒng)和應(yīng)用程序軟件能夠直接感知區(qū)域,但在使用環(huán)境受控時(shí),進(jìn)行必要的軟件更改并不是不可克服的挑戰(zhàn)。
用于SMR硬盤的分區(qū)存儲(chǔ)模型也非常適合與FLASH一起使用,它是NVMe ZNS的前身。SMR硬盤的類區(qū)域結(jié)構(gòu)反映了SSD的頁(yè)和擦除塊結(jié)構(gòu)。對(duì)寫的限制不是完全匹配的,但已經(jīng)足夠接近了。
后面我們將介紹什么是NVMe ZNS,以及它的重要性。