過去兩個月以來,陸續傳出幾起關於NVMe over Fabric儲存設備發展的消息,讓這種備受矚目的新一代I/O介面標準的實際應用發展,有了更清晰的輪廓。

憑藉著結合PCIe匯流排與全新軟體堆疊架構所帶來高頻寬、低延遲效能,NVMe堪稱是進一步解放固態儲存裝置效能的關鍵技術,而

NVMe over Fabric(以下簡稱NVMeF)則是基於NVMe的外接遠端存取架構,目的是讓遠端存取應用,也能獲得NVMe所帶來的高效能,特別是NVMe全新軟體堆疊設計所帶來的低延遲優勢。

NVMe高效率的關鍵——全新軟體堆疊設計

NVMe的優勢不僅在於硬體方面採用了PCIe這種高效能匯流排規格,還在於採用了更具效率的軟體堆疊架構。

在NVMe誕生前,就已經有採用PCIe介面的固態儲存設備存在,如各式各樣的PCIe SSD卡產品,也有少數外接儲存設備採用了專屬的PCIe外接介面,這些產品都能透過PCIe匯流排,大幅提高傳輸效能並降低存取延遲,但軟體堆疊仍舊是基於傳統的SCSI協定,在遠端存取過程中,這會消耗100μs(0.1ms)左右的延遲。

就過去的儲存應用來說,PCIe匯流排提供的低延遲效能已十分足夠,SCSI協定額外增加的100μs延遲影響並不大。不過隨著固態儲存裝置效能的進一步提高,SCSI協定所造成的延遲增加,也變得越來越不能忍受,而這正是NVMe協定發揮所長的時候。

透過新設計的軟體堆疊架構,NVMe協定擁有更具效率的存取機制(省略了讀取暫存器、提供更大的駐列深度、更有效率的平行多執行緒等),可大幅降低PCIe SSD的存取延遲。

以OpenFabrics Alliance提供的數據為例,當傳輸架構的底層同樣使用PCIe 3.0×4匯流排時,採用傳統SCSI協定的SSD存取延遲大致在90~100μs左右,但若改用NVMe協定,則可將一舉將存取延遲降到20μs以下,未來還有降到10μs等級的可能。也就是說,對於追求極致高效的PCIe儲存應用來說,改用NVMe協定可縮減80~90%的存取延遲。

NVMe的外接存取應用—NVMe over Fabric

NVMe不僅能應用在伺服器內接的I/O架構上,作為新一代高效能SSD的傳輸介面,也能應用在外接儲存設備的遠端存取架構上,這就是NVMeF的應用目的。

NVMeF可以讓儲存網路存取也透過NVMe協定來進行,如此將能讓跨網路的外接儲存設備,擁有如同伺服器內接SSD般的極低延遲表現。

目前Brocade與Cisco新的FC光纖交換器都開始支援NVMF,也有少數儲存設備支援NVMeF架構,搭配NVMe介面的SSD裝置,讓NVMe F的實際應用開始略具雛形。

NVMe over Fabric產品發展受挫

理論上,從前端主機存取介面,到後端儲存設備I/O介面與SSD介面,全都採用NVMe規格的End-to-End NVMeF,是最能發揮NVMe效能的架構。但隨著EMC終止DSSD D5這款產品的發展,讓這種完整的NVMeF應用架構推廣遭遇了挫折。

DSSD D5是EMC於2016年初發表的全快閃儲存陣列,也是第一款端到端NVMeF儲存設備,DSSD D5採用了NVMe介面的Flash儲存模組,主機端也是透過專屬的PCIe I/O卡來存取DSSD D5,藉由這種徹底PCIe與NVMe化的I/O架構,DSSD D5擁有當時極為驚人的100~120μs存取延遲,相當於同時期一般全快閃儲存陣列的1/5到1/10。

然而DSSD D5儘管性能驚人,但應用上的諸多限制卻抵銷了效能上的優勢。首先,DSSD D5為了效能考量,幾乎全面由專屬的訂製硬體組成(控制器、Flash模組到前端主機I/O卡全都是專屬規格),其次,DSSD D5也完全沒有資料服務功能,只是單純提供高速儲存空間(資料服務軟體功能會增加許多延遲,在NVMeF架構中都不被使用)。最後,用戶端主機不僅必須透過專屬I/O卡,才能存取DSSD D5,且要使用這種專屬I/O卡還有許多限制(只支援Linux實體主機)

於是經過一年多的市場考驗後,顯示DSSD D5雖然擁有許多獨特的特性,但對於當前的用戶來說,恐怕步伐邁得太快、太激進,難以被接受。

更實用的軟體定義化NVMe over Fabric架構

儘管EMC的DSSD D5沒有成功,成了NVMeF應用的先烈,但仍有其他廠商持續推動NVMeF儲存應用,並採取了比較和緩的發展路線,以色列新創廠商Excelero的NVMesh便是一個例子。

NVMesh的目的也是建立一個低延遲的End-to-End完整NVMeF存取架構,但形態與DSSD D5恰好相反,如果說DSSD D5是一種基於專屬硬體的硬體定義式NVMeF產品,那麼NVMesh便是徹底的軟體定義式NVMeF產品。

NVMesh的產品形態類似當前流行的Server SAN,透過軟體模擬,讓標準伺服器硬體扮演儲存設備角色,並提供儲存設備需要的擴展性與管理性,差別在於NVMesh是基於NVMe協定,可透過專屬軟體,將內含NVMe SSD的x86伺服器建構為NVMesh Target端設備,前端主機透過NVMesh Client端軟體,便能以NVMeF架構存取NVMesh Target端設備的NVMe SSD,至於底層傳輸通道則支援RoCE規格的乙太網路,或是InfiniBand,所以是一種NVMe over Ethernet或over InfiniBand的傳輸架構。

Excelero宣稱NVMesh也能提供100μs等級的存取延遲,但又不需使用任何專屬硬體,但同樣也不提供資料服務功能。

更保守的後端NVMe over Fabric架構應用

DSSD D5、NVMesh採用的End-to-End NVMeF存取架構,固然有低延遲的優點,但也因此而捨棄了快照、複製等資料保護與資料服務功能(只依靠RAID來提供基本保護),對於多數企業用戶來說,這種需要100μs等級存取延遲的效能、但又不需要保護與資料服務的應用情境,畢竟相對少見,因此接受的用戶不多也在情理之中。

因此另ㄧ些廠商採取的策略是「半套」的NVMeF架構,試圖調和效能與資料保護/軟體功能兩方面的需求。

例如Pure Storage 剛發表的FlashArray //x,與華為日前推出的Dorado 5000 v3,便是這種「半套」的NVMeF儲存產品。

所謂的「半套」,是指只在後端儲存介面採用NVMe。FlashArray //x與Dorado 5000 v3都號稱是NVMe全快閃儲存陣列,但與它們的上一代產品相比,主要差別是以NVMe介面的SSD或Flash模組,替換以前採用的SAS介面SSD,主機端則仍沿用原有的FC、iSCSI等介面。所以前端主機則仍可透過傳統的FC、iSCSI等介面,來存取這2款NVMe儲存陣列。

這種「半套」架構的存取延遲表現,顯然不能和真正的「全套」NVMeF、也就是全部存取環節都採用NVMe介面的儲存產品相比,但優於上一代採用SAS SSD的產品,更重要的是可保留重複資料刪除、快照、複製等完整的資料服務功能,相對也更容易讓用戶接受。

因此就目前來看,這種架構雖然是最保守的NVMe應用,但也是最實用的,而且也便於在日後升級到真正的NVMeF,例如Pure Storage便宣稱日後只要增加一張I/O卡,便能讓//m升級為完整NVMeF架構。

 

既有的NVMe Fabric儲存架構

現有的NVMe應用架構,只被作為SSD裝置的介面,尚不能充分發揮NVMe的低延遲潛力,前端主機經由遠端存取協定,透過Flash儲存設備對於底層SSD裝置的存取,仍是基於傳統的SCSI軟體堆疊,必須經過協定轉換才能存取底層的NVMe SSD。

 

End-to-End的NVMe over Fabric架構

可提供更完整的NVMe over Fabric架構,可讓前端主機到後端儲存介面,全都透過NVMe協定來進行,即使是遠端存取,也能享受到近似伺服器內接PCIe存取的極低延遲。

資料來源:OpenFabrics Alliance

熱門新聞

Advertisement