999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

更可靠、更強悍:NVMe 1.4規范深度解讀

2019-01-14 02:27:31張平
微型計算機 2019年16期
關鍵詞:耐久性功能

張平

NVMe作為SSD的最主要傳輸標準,在各個方面都針對NAND顆粒的特性做出了優化。不過隨著NAND適用范圍變大以及應用程度加強,人們發現NVMe還存在很多可以加強、補足的地方。因此,新的NVMe 1.4規范順應而出,帶來了大量的全新特性,尤其糾錯、性能加強以及為特殊領域和企業級的優化更是令人關注。今天,本文就解讀一下NVMe 1.4的新特性。

說起來,NVMe的上一次重大更新還是在大約2年以前。在這段時間中,NVMe發布了新的SSD NVMe規范。不僅如此,NVMe組織還采用了不同的方法為NVMe規范添加新功能,比如將已經準備好的新功能單獨批準,并作為技術提案發布,而不是捆綁在全新的主要更新規格中一次性發布。這樣漸次發布的做法可以使得供應商在技術成熟后,馬上便可以開始實施和部署這些新的功能,而不是針對草案進行操作。

這樣的情況也出現在今天的NVMe 1.4中。NVMe 1.4版本包含了NVMe 1.3版本之后發布的所有28個新的技術提案,以及從1.3a版本開始,一直到1.3d版本中加入的各種修正以及說明。總的來說,NVMe 1.4相比NVMe 1.3,是一個更大的更新,因為其規范內容更多并且加入了對功能更深入的解釋。這樣一來,雖然NVMe 1.4規范的頁碼就大幅度增加到403頁(上一代NVMe 1.3d版本只有298頁),但是易讀性和可操作性更好了。

和之前版本類似的是,NVMe 1.4中加入的新功能和NVMe sSD的使用并非完全相關,部分內容只跟嵌入式系統或者超大規模部署的客戶有關,因此大量的功能都不是必備的,而是可選的。相關的配套標準,比如NVMe管理界面和NVMe over Fabrics,都在不斷地改進、發展,比如NVMe-MI的1.1版本在2018年12月獲得了批準,NVMe over TCP已經成為NVMeof的第三個傳輸協議,并且加入了光纖通道和RDMA傳輸。而最基本的NVMe規范中的附加功能,往往被用于適應這些配套標準的變化。

新的可選功能需要操作系統中的SSD和NVMe驅動進行支持,如果沒有驅動和技術的同時支持,驅動器將會退回到比較舊的功能級。為了更有效地使用新功能,還需要對蜘牛堆棧的上層進行一些修改,尤其是許多存儲管理工具會通過了解SSD的參數和信息來提供對應的功能。這些軟件更新的開發時間要比相關SSD固件的開發時間更長一些,因此對這些新特性的支持將在專用的環境中出現,并且早于通用的操作系統發布之前。

目前來看,NVMe SSD市場正處于從PCIe 3.0向PCIe 4.0過渡,同時實現性能改進的早期階段。在這個階段中,還不太需要對NVMe規范進行任何根本性的更改。但隨著技術演進和更多應用的出現,NVMe還需要進一步加強它在性能方面的優勢。有鑒于此,NVMe 1.4版本包含了一些性能方面的優化,這些優化依賴于更智能地了解存儲的使用方式,以及SSD和王機系統之間更好的協作。另一大類則與功能、錯誤處理,以及RAID重建等有關系。本文將介紹這些新規范中值得關注的內容,但并不是所有內容的詳細列表。需要聲明的是,本文中給出的用例可能和最終硬件供應商的實際產品不符,畢竟目前規范剛推出,依舊還有很大的操作空間。

更多的塊大小和對齊提示

NVMe的行為類似于常規塊設備,扇區大小通常是512字節或者4KB。現代NAND的原始頁面大小大于4KB,擦除塊大小的單位更是MB。這種不匹配情況是SSD閃存數據轉換層中絕大多數復雜處理和性能壓力的來源。FTL允許軟件在假設它們的存儲塊具有較小大小的情況下正常工作,但對如果能夠對實際的塊大小和頁面大小更為匹配的話將會簡化SSD的工作并且支持更高的性能。NVMe1.3規范引入了名稱空間最優化IO邊界的特性,允許SSD向主機系統通知讀取和寫入命令,最基本的要求是讓其實現最佳性能。目前在這個特性支持下,已經有允許更小尺寸的塊訪問驅動器的情況,但是對于小于4KB的數據,傳輸性能非常差。

即便是在最糟糕的情形下,驅動器應該只是放棄對512B扇區的支持,轉而采用默認的4KB扇區,但是在需要和舊操作系統兼容的情況下,關于哪些訪問模式可以兼容性工作的提示可能會對實際的操作有所幫助。NVMe 1.4版本下的SSD能夠和系統通訊并獲得更詳細的信息,使得諸如寫和存儲單元重分配(TRIM)等命令能夠匹配相關頁面的大小和擦除塊的大小。

在NVMe 1.4版本下,驅動器可以報告命名空間首選寫入對齊和命名空間首選的寫入粒度,這些值只對NAND頁面的一部分應用最小化的“讀取——修改——寫入”周期。同樣的,命名空間首選的存儲單元重分配對齊和命名空間首選的存儲單元重分配粒度也適用于NVME的存儲單元重分配命令,這個命令與ATA TRIM命令類似。對SSD來說,如果不增加寫入放大,就很難處理覆蓋小數據范圍或大數據范圍但沒有對齊部分的存儲單元重分配命令,否則這將會損害性能并增加寫入放大。支持NVMe 1.4的Streams功能的驅動器還可以在使用Streams功能時,提供首選寫入和取消分配粒度的提示,這些值通常是上述提示的倍數。

充分利用這些信息的責任現在將會落在操作系統和文件系統上,可以根據此信息設置RAID的條帶大小和文件系統塊的大小。對數據庫之類的應用也需要注意到這一點,因為這類應用往往會試圖繞過操作系統的大部分存儲堆棧,然后自主優化存儲性能,這一點在NVMe 1.4部署后需要進行調整。

更快度的錯誤檢測和數據恢復機制

NVMe 1.4引入了一些新的功能來幫助處理不可恢復的讀取錯誤和損壞的數據,尤其是在RAID和類似場景中,這項技術使得主機系統可以簡單地從其他地方獲取數據來更快地恢復損失的數據。

第一個技術被稱為讀取恢復級別判定,也就是Read Recovery Level。這項功能可以允許王機系統自行配置SSD恢復損壞區域數據的難度級別。我們知道SSD通常有多個錯誤校正層,一般來說上層比下層在數據恢復方面更為可靠,但是上層的速度會相應更慢且耗電量更高。在RAID 1或者類似場景中,主機系統通常傾向于快速獲取錯誤,這樣它既可以嘗試從鏡像的另一端讀取相同的數據,也不用等待驅動器部分進行數據重讀的嘗試,然后再返回ECC校驗這樣較慢的方法。目前NVMe已經可以支持有時間限制的錯誤恢復,也就是TLER,這項技術只允許主機將錯誤處理時間限制在100ms以內。相比之下,讀取恢復級別判定技術可以允許驅動器保存16個不同級別的錯誤的處理策略,只需要驅動器擁有2種不同的工作模式即可。這個功能將在每個NVM集的級別上進行配置。

接下來的技術是為了主動避免不可恢復的讀取錯誤。NVMe 1.4加入了驗證和獲取LBA狀態(Get LBAstatus)兩個命令。其中驗證命令比較簡單,這個命令除了將數據返回給王機系統之外,它還可以執行正常讀取所需要的一切操作。如果讀取命令返回錯誤,那么驗證命令也將返回;如果讀取命令成功完成,那么驗證命令也會成功完成。這個命令的優勢在于,其可以在不受王機接口帶寬瓶頸的影響下,對存儲的數據進行底層清理成為可能。一些SSD將通過移動或者重寫降級的數據來響應可修復的ECC錯誤,驗證命令也可以完成相同的行為。總的來說,驗證命令將減少對文件系統級別校驗和清除/驗證的需求。另外,在驗證命令執行的過程中,每個執行位置都會加入一個位標記,這個標記將指示SSD是應該恢復快速失敗還是應該努力恢復數據,位標記的功能和讀取恢復級別判定功能有很相似。

獲取LBA狀態命令允許驅動器向主機提供一個區塊列表。在這個區塊列表中,它包含的內容是那些嘗試讀取或者驗證命令后可能導致不可恢復的讀取錯誤的塊。S5D可能已經在自動后臺掃描中檢測到了ECC錯誤,或者在更嚴重的情況下,這個功能可以報告有哪些LBA受到了整個NAND通道的故障影響,從而可以避開這些區域。獲取LBA狀態命令還可以用于要求在返回可能不可恢復的區塊列表之前,就預先掃描選定的數據范圍。另外,當主機系統發現損壞或者數據丟失的LBA狀態特性時,或者發出讀取、驗證命令后收到錯誤,發現數據丟失時,這個命令還可以將其他地方的數據副本(比文DRAID或者備份數據)重新寫入到相同的LBA中,然后正常使用這些邏輯塊。SSD將在必要的時候徹底封閉受損的物理塊避免再次丟失數據。

持續存儲區域

大多數NVMe SSD,除了NAND以外,還加入了DRAM顆粒。這些DRAM顆粒的主要目的之一是作為Flash翻譯層表的緩存,這些表用于跟蹤邏輯塊的地址和物理閃存地址之間的映射。但是NVMe一直在探索使用DRAM或者其他更陜的方式去完成這個操作。在NVMe 1.2規范中,它引入了控制器內存緩沖區,這使得SSD的一些DRAM可以通過PCI地址空間直接訪問。這個設計允許IO命令提交和完成的隊列在SSD的內存而不是主機的CPU內存中存放,這將減少提交方的延遲,并目可以在NVMe over Fabrics的情況下切斷一些不必要的復制,甚至諸如DMA之間SSD和網卡的數據交換允許完全繞過主機DRAM等。

在NVMe 1.4規范中,新的PMR也就是持續存儲區域(PersistentMemory Region)功能以類似的方式運行,它可以直接接受外界數據的讀寫請求。主機系統可以使用基本的PCIe傳輸直接讀取或者寫入PMR,無需任何命令隊列的開銷。當然,控制器內存緩沖區通常用于支持正常的NVMe操作,PMR這不會參與其中。但值得注意的是,由于PMR是一個通用的內存塊,具有電源損耗保護電容器,它可以在主機電源意外斷電的情況下,安全地刷新企業級S5D的內部緩存,此時PHR內的內容將自動寫入閃存,并且在主機恢復時,可以要求SSD重新加載PMR中的內容。

PMR的性能和容量不會接近NVDIMM所能提供的數據,但是PMR可以提供一些類似的優勢。比如訪問PMR比構建NVMe IO命令并等待完成的速度要快很多,而且實現起來更為簡單。PMR功能還能夠接受非常大量的寫入數據,同時它不會耗盡任何閃存,因此其內容只有在電源發生故障的時候才會保存到閃存中,這使得PMR成為存儲數據庫或者文件系統日志最好的地方,因為這些文件會不斷地寫入更新,并且非常容易成為性能瓶頸。

NVM集和耐久陸組

NVM集和耐久性組是兩種新的高級組織結構,用于管理大于單個NVMe名稱空間的存儲池。由于高端企業級SSD對多個命名空間技術的需要,因此依賴于NVM集或者耐久性組的某些功能僅僅適用于多端口驅動器、虛擬化環境或者NVHe over Fabrics陣列,此時一個NVMe控制器的情況表現的像是在訪問多個驅動器。但是,即使在單個NVM集、有耐久性要求的單個驅動器上,這些新功能依舊能起到一些作用。

Endurance Group,也就是耐久性組,它是NVM的集合,是由命名空間和未分配的存儲組成起來的。每個耐久性組都是一個單獨的存儲池并執行自己的存儲磨損。此外,耐久性組還擁有自己的專用備用池.驅動器也會報告每個區塊的單獨磨損數據。在具有多個耐久性組的驅動器上,可以完全磨損一個耐久性組并使得其成為只讀組,其他的耐久性組依舊可以正常使用。

另外,特定的驅動器可以被設定為特定的NAND區域,也可以設置不同的NVM集或者耐久陸組,它們本質上是將其分割為多個相對獨立的驅動器。這樣不僅可以實現磨損管理的分離,而且可以提供嚴格的分區性能。云托管供應商可以將來自不同的客戶的VM數據放在不同的NVM集或者耐久性組上,以確保來自某一個客戶的繁忙工作不會損害另一個客戶的數據延遲。

可預測的延遲模式

新的可預測的延遲模式功能允許主機暫時暫停SSD控制器正在執行的任何后臺操作,確保此時不會立即處理從主機系統提交新的IO命令。在這種情況下,驅動器能夠提供最佳、最一致的性能。SSD無法無限期地在這種狀態下運行,并且最終需要離開性能模式并進行后臺工作處理。此時驅動器可以提供運行評佔,確保自己在性能模式完成之前就切換回非確定性模式。

可預測的延遲模式通常用于主機軟件可以跨多個驅動器進行負載平衡的環境。高優先級IO可以定向到當前處于確定性窗口的驅動器中優先處理,而非確定性窗口中的驅動器可以單獨處理后臺需求,或者用于處理低優先級的IO。在一組驅動器池中,每個驅動器都可以在確定性和非確定性操作之間交替運行,每個驅動器的窗口時間將取決于工作負載情況。如果負載均衡器工作正常,它將停止向驅動器發送對延遲敏感的IO命令,并目在驅動器達到其限制之前主動將其從確定性模式中呼出。此外,驅動器也可以配置成在達到閾值之前提供警告,因此主機系統無需經常檢查狀態指示器以查看驅動器是否接近離開確定性窗口。可預測的延遲模式給予每個NVM集配置,因此很多集的驅動器可以在任何給定時間的每個模式中都有一些延遲配置,并目在整個NVM集中進行負載平衡。

可預測延遲模式也不是用于控制驅動器何時執行后臺工作的第一個NVMe功能,NVMe 1.4添加了非操作電源狀態許可模式的功能,以便它可以在低功耗空閑狀態下要求驅動器不進行后臺工作。這里的目的是在使用電池供電或者關閉系統風扇的低功耗狀態下推遲后臺功能,這個功能不影響驅動器處于活動狀態時的后臺工作情況。

提交隊列關聯和命名空間寫保護

NVMe SSD通常可以支持多個命令提交和完成隊列。目前它的主要用途是為每個CPU核心提供自己的隊列,這樣驅動程序就不再需要從內核到內核的同步來執行普通的IO了。最近,Linux NVMe驅動程序也增加了將隊列用于特殊目的功能支持,比如為高優先級命令創建專用的隊列,這些命令會被輪詢完成而不會等待中斷,或者每個核心具有單獨的隊列讀取命令。NVMe 1.4和之前提到的可預見的延遲模式為多個隊列添加了另一個潛在的用例,那就是將一個隊列和特定的NVM集進行關聯。此外,NVMe 1.4還允許主機通知SSD的NVM隊列設置計劃,這樣可以讓SSD控制器在使用可預測延遲模式時有機會進一步降低延遲或者提高QoS,當然這項功能是可選的。

此外,在命名空間寫保護方面,NVMe 1.4也作出了加強。NVMe命名空間可以是下列三種只讀模式中的一種:只讀直到下一個電源循環、只讀直到寫保護功能被禁用后的第一個電源循環、驅動器生命內永久只讀。這樣的設置為嵌入式或者高安全性系統的關鍵性數據安全提供了一系列的選項。一個典型的用例是將操作系統或者最小恢復系統放置在寫保護的命名空間內,并且將用戶數據和應用程序保存在常規的讀寫命名空間中。這是NVMe開始為客戶端SSD提供多個命名空間時最引人矚目的功能之一,因為這項功能已經普遍適用于普通移動和桌面操作系統。另外,受寫保護的命名空間可以使得驅動器本身參與保護操作系統免受意外或者篡改,并且比現有的保護內存塊功能簡單很多。

NVMe的下一步

從技術發展角度來看,NVMe受到了開放式通道SSD的影響,這類SSD將全部或者部分閃存轉換成移除驅動器并掛接在CPU上。NVMe的一些功能正在受到這種新的模式的啟發,包括上文中關于最佳區塊大小、數據對齊、NVM集和耐久性組的設計等方面。去年,微軟還成立了ProjectDenali,對開放性通道固態內存進行了探討,希望能夠在低級控制和傳統的塊存儲之間提供易用性的最佳平衡,最終的目標是生成能夠被更廣泛采用的新標準。

總的來說,人們希望可以在NVMe上構建計算存儲設備的加速器和協處理器標準。目前已經有公司開始開發或者已經提供設備來承擔處理器的壓縮、加密、解密、搜索和AI推理等任務,并且是在數據存儲位置附近進行這些計算任務。標準化這些設備接口的工作目前依舊處于起步階段,但是在NVMe 1.5版本出現前的兩三年內,其中一些想法可能會變得足夠成熟,并能夠真正成為計算存儲的基礎設施標準,我們期待在接下來的發展中能夠看到這些新的進步。

猜你喜歡
耐久性功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
壓力容器產品銘牌使用耐久性的思考
橋梁混凝土耐久性提高措施
振動攪拌,基礎設施耐久性的保障
中國公路(2017年14期)2017-09-26 11:51:43
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
混凝土耐久性無損檢測技術
大雙摻混凝土耐久性研究
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 色老头综合网| 国产亚洲现在一区二区中文| 亚洲一区色| 成人午夜久久| 亚洲国产综合精品中文第一| 亚洲成A人V欧美综合| 无码福利日韩神码福利片| 欧美啪啪视频免码| 精品无码一区二区三区在线视频| 国产高颜值露脸在线观看| 国产一区在线视频观看| AV天堂资源福利在线观看| 最近最新中文字幕在线第一页| 中文精品久久久久国产网址| 国产十八禁在线观看免费| 久久男人资源站| 日本在线视频免费| 激情综合图区| 亚洲视频免| 亚洲三级a| 三级国产在线观看| 性色生活片在线观看| 欧美中文字幕在线播放| 久无码久无码av无码| 99热这里只有成人精品国产| 免费高清a毛片| 91免费观看视频| 国产国语一级毛片| 在线毛片免费| 成人午夜免费观看| 国产在线观看91精品亚瑟| 人妻中文久热无码丝袜| 欧美黄网在线| 青青草原国产一区二区| 黄片一区二区三区| 欧美自拍另类欧美综合图区| 国产99精品视频| 国产亚洲精品自在久久不卡 | 国产一区二区三区精品久久呦| 国产精品综合久久久| 国产网站免费观看| 日韩高清无码免费| 色哟哟国产精品一区二区| 亚洲精品va| 青青操国产视频| 成人免费午间影院在线观看| 亚洲三级片在线看| 亚洲精品视频在线观看视频| 久久综合婷婷| 国产精品免费露脸视频| 欧美亚洲另类在线观看| 国产成人无码AV在线播放动漫| 国产麻豆精品手机在线观看| 毛片网站观看| 亚洲性视频网站| 71pao成人国产永久免费视频| 亚洲天堂高清| 国产成人高清精品免费5388| 少妇被粗大的猛烈进出免费视频| 国产视频一二三区| 免费一级全黄少妇性色生活片| 久久久久久午夜精品| 欧美激情视频一区| 日本www色视频| 国产一级小视频| 国模私拍一区二区| 女人18毛片一级毛片在线 | AV在线天堂进入| 一级全免费视频播放| 精品一区二区三区四区五区| 99久视频| 亚洲综合色吧| 欧美日韩激情在线| 99热这里只有免费国产精品| 亚洲精品高清视频| 青青久久91| 日本草草视频在线观看| 亚洲视频三级| 手机在线国产精品| 国产视频 第一页| 亚洲欧美人成电影在线观看| 最新加勒比隔壁人妻|