自從NVMe作為高性能固態(tài)硬盤(SSD)的最新協(xié)議出現(xiàn)以來,已經(jīng)改變了存儲行業(yè)。
NVMe最初是為高性能直連式PCIe SSD設(shè)計的,后來以NVMe over Fabrics(NVMe-oF)的形式進行了擴展,以支持機架級(rack-scale)的遠程SSD池。
業(yè)界普遍認為,這種新的NVMe-oF模式將取代iSCSI協(xié)議,作為計算服務(wù)器和存儲服務(wù)器之間的通信標準,并成為解耦合存儲(disaggregated storage)方案的默認協(xié)議。
然而,NVMe-oF最初的部署選項僅限于光纖通道(Fibre Channel)和遠程直接內(nèi)存訪問(Remote Direct Memory Access,RDMA)結(jié)構(gòu)。
如果我們能夠提供一種新的、更強大的技術(shù),既能提供NVMe的速度和性能,又不需要高昂的部署成本和復(fù)雜性,將會如何?
NVMe over TCP(NVMe/TCP)就可以使用簡單高效的TCP/IP結(jié)構(gòu)將NVMe擴展到整個數(shù)據(jù)中心。
本文將描述NVMe/TCP如何成為面向現(xiàn)有數(shù)據(jù)中心的一種更優(yōu)技術(shù)及其可提供的優(yōu)勢。這些優(yōu)勢包括:
- 支持跨數(shù)據(jù)中心可用區(qū)域的解耦合
- 利用無處不在的TCP傳輸和低延遲、高并行的NVMe協(xié)議棧
- 無需在應(yīng)用服務(wù)器端進行更改
- 可提供類似直連式SSD(DAS)性能和延遲的高性能NVMe-oF解決方案
- 針對NVMe優(yōu)化的高效、精簡的塊存儲網(wǎng)絡(luò)軟件棧
- 可并行訪問針對當今多核應(yīng)用/客戶服務(wù)器優(yōu)化的存儲
- 標準的NVMe-oF控制路徑操作
1. NVMe/TCP 概述
NVMe規(guī)范已經(jīng)成為高性能SSD的最新協(xié)議。
與SCSI、ISCSI、SAS或SATA 接口不同,NVMe實現(xiàn)了針對多核服務(wù)器 CPU 優(yōu)化的簡化命令模式和多隊列體系結(jié)構(gòu)。NVMe-oF規(guī)范擴展了NVMe,實現(xiàn)了通過網(wǎng)絡(luò)共享PCIe SSD,其最初是使用RDMA結(jié)構(gòu)來實現(xiàn)的。如今,Lightbits Labs與Facebook、英特爾和其他行業(yè)領(lǐng)先企業(yè)合作來擴展NVMe-oF標準,以支持與RDMA結(jié)構(gòu)互補的TCP/IP傳輸。
基于NVMe/TCP的解耦合存儲方案具有簡單、高效等明顯優(yōu)勢。TCP具有普及性、可擴展性和可靠性,對于短暫連接和基于容器的應(yīng)用而言是一種理想的選擇。
此外,通過NVMe/TCP遷移到共享閃存(Flash)也不需要更改數(shù)據(jù)中心的網(wǎng)絡(luò)基礎(chǔ)設(shè)施。無需更改基礎(chǔ)設(shè)施意味著可以輕松地跨數(shù)據(jù)中心進行部署,因為幾乎所有數(shù)據(jù)中心網(wǎng)絡(luò)都被設(shè)計為可支持TCP/IP。
基于NVMe/TCP協(xié)議的廣泛行業(yè)合作意味著該協(xié)議從設(shè)計之初就具有廣闊的生態(tài)系統(tǒng),并且支持任何操作系統(tǒng)和網(wǎng)絡(luò)接口卡(NIC)。NVMe/TCP Linux驅(qū)動程序原生匹配Linux內(nèi)核,可以使用標準的Linux網(wǎng)絡(luò)協(xié)議棧和NIC,無需任何修改。
這種很有前景的新協(xié)議為超大規(guī)模數(shù)據(jù)中心量身定制,可以在不改變底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施的情況下輕松實現(xiàn)部署。
圖1 NVMe/TCP可與Linux內(nèi)核中的現(xiàn)有NVMe協(xié)議無縫集成
2. 現(xiàn)在的數(shù)據(jù)中心如何處理存儲
2.1 直連式存儲架構(gòu)與NVMe
NVMe存儲協(xié)議旨在從固態(tài)驅(qū)動器(SSD)中提取全部性能。
NVMe協(xié)議中所設(shè)計的并行能力有助于實現(xiàn)這種性能。NVMe并未使用單一隊列的iSCSI模式。取而代之的是,NVMe在CPU子系統(tǒng)和存儲之間可支持多達64000個隊列。
SSD是使用多個并行通信信道與多個SSD存儲位置相連接的并行設(shè)備,這意味著SSD可以在大規(guī)模的并行流中高效地接收數(shù)據(jù)。在NVMe/TCP協(xié)議出現(xiàn)之前,利用這種并行模式的最簡單方法就是將NVMe SSD直接安裝到應(yīng)用服務(wù)器上。換句話說,你必須使用DAS模式來構(gòu)建自己的存儲基礎(chǔ)設(shè)施。
使用DAS方法,應(yīng)用可以受益于以下方面:
- 多個CPU
- 多個NVMe I/O隊列
- 并行SSD架構(gòu)
對業(yè)界而言,挑戰(zhàn)在于將SSD從可能具有多余容量的獨立服務(wù)器轉(zhuǎn)移到具有更高基礎(chǔ)設(shè)施利用率且不會損失DAS性能收益的共享存儲解決方案。因此,所有NVMe解耦合技術(shù)的目標都是在共享NVMe解決方案中實現(xiàn)DAS性能。
2.2 前一代基于 IP 的存儲架構(gòu)
以前,iSCSI標準是通過TCP/IP網(wǎng)絡(luò)連接至塊存儲的唯一選擇。它是在世紀之交開發(fā)的,當時大多數(shù)處理器都是單核器件。
在SCSI中,應(yīng)用(Initiator)和存儲(Target)之間只有一個連接。對于iSCSI,也是只有一個TCP套接字(socket)將客戶端連接至塊存儲服務(wù)器。
現(xiàn)在,數(shù)據(jù)中心的處理器都是大規(guī)模并行多線程器件。當今處理器的這種復(fù)雜性要求對可用的存儲協(xié)議進行徹底改革。其結(jié)果就是NVMe作為SATA和SAS(串行連接 SCSI)的替代者出現(xiàn)了。
所有那些早期協(xié)議的開發(fā)都是基于一個串行的旋轉(zhuǎn)型磁盤驅(qū)動器。
非易失性存儲器(NVM)是一種并行存儲技術(shù),它不需要一個或多個盤片在一個或一組磁頭下面旋轉(zhuǎn)。使用 NVM存儲設(shè)備,可以并行訪問許多存儲單元,且具有較低的延遲。
毫無疑問,iSCSI仍然適用于具有低到中等存儲性能要求的應(yīng)用場景。然而,iSCSI卻不能滿足I/O密集型應(yīng)用的要求,這類應(yīng)用需要在大規(guī)模下實現(xiàn)低延遲。
2.3 其他替代方案和NVMe/TCP解耦合方案
RDMA、基于聚合以太網(wǎng)的RDMA(RoCE),以及基于光纖信道的NVMe(NVMe over FC),也是試圖解決解耦合問題的其他網(wǎng)絡(luò)存儲協(xié)議。然而,這些替代方案要求在兩端(應(yīng)用服務(wù)器和存儲服務(wù)器)都安裝昂貴的特殊硬件,例如具備RDMA功能的NIC。此外,安裝了RDMA硬件之后,在你具備RDMA功能的交換結(jié)構(gòu)中配置和管理流控制也是很復(fù)雜的。
RDMA確實提供了適用于某些高性能計算環(huán)境的性能,但它要求更高的成本,并且需要進行非常復(fù)雜的部署。
TCP/IP已被證明可以在超大規(guī)模環(huán)境中可靠、高效地工作。NVMe/TCP繼承了這種可靠性和效率,它可以作為RDMA的互補解決方案與之共存,也可以完全取代RDMA。
3. 數(shù)據(jù)中心中的閃存解耦合和 NVMe/TCP解決方案
在DAS環(huán)境中,驅(qū)動器是在部署到服務(wù)器中之前購買的或與服務(wù)器一起購買的,隨著時間的推移,它們的容量利用率增長得很緩慢。另外,為了避免存儲用盡這種尷尬的局面出現(xiàn),DAS常常會有意將容量配置為過剩的狀態(tài)。
相比之下,將存儲從計算服務(wù)器中分離出來的數(shù)據(jù)中心會更加高效。這樣,存儲容量就可以獨立地進行擴展,并且可以根據(jù)需要分配給計算服務(wù)器。
隨著每GB閃存成本的降低,解耦合存儲方法更加經(jīng)濟高效,而且數(shù)據(jù)中心部署的前期成本也要低得多。通過動態(tài)分配存儲資源,可以避免過度配置(over-provisioning)開銷,從而大大降低總體成本。
NVMe/TCP解決方案釋放了基于解耦合高性能固態(tài)硬盤(SSD)的云基礎(chǔ)設(shè)施的潛力。它使數(shù)據(jù)中心能夠從低效的直連式SSD模式轉(zhuǎn)為一種共享模式,在該模式中,計算和存儲可以獨立擴展,以最大限度地提高資源利用率和運行靈活性。
這種新的共享模式采用了創(chuàng)新的 NVMe/TCP標準。Lightbits Labs發(fā)明了這一概念,并且正在引領(lǐng)這一新標準的發(fā)展。
NVMe/TCP不會影響應(yīng)用的性能。實際上,它通常會改善應(yīng)用的尾部延遲,從而提升用戶體驗,并使云服務(wù)提供商能夠在相同的基礎(chǔ)設(shè)施上支持更多用戶。它也不需要對數(shù)據(jù)中心網(wǎng)絡(luò)基礎(chǔ)設(shè)施或應(yīng)用軟件進行任何更改。它還可以降低數(shù)據(jù)中心的總體擁有成本(TCO),并使維護和擴展超大規(guī)模數(shù)據(jù)中心變得更容易。Lightbits Labs正與其他市場領(lǐng)導(dǎo)者合作,以實現(xiàn)該標準在行業(yè)中的廣泛采用。
NVMe/TCP利用標準的以太網(wǎng)網(wǎng)絡(luò)拓撲,獨立地擴展計算和存儲,以實現(xiàn)最高的資源利用率,并降低TCO。
圖2 從直連式存儲(DAS)轉(zhuǎn)為解耦合存儲和計算
4. Lightbits Labs:在數(shù)據(jù)中心部署NVMe/TCP
Lightbits Labs的解決方案提供了如下性能優(yōu)勢:
- 與直連式存儲(DAS)相比,尾部延遲減少多達50%
- SSD容量利用率翻倍
- 數(shù)據(jù)服務(wù)的性能提升2-4 倍
- 可擴展至數(shù)萬個節(jié)點
- 可支持實現(xiàn)數(shù)百萬IOPS的性能,平均延遲低于200 μs
Lightbits解決方案在不影響系統(tǒng)穩(wěn)定性或安全性的情況下可實現(xiàn)如下改進:
- 應(yīng)用服務(wù)器及其存儲的物理分離
支持獨立部署、擴展和升級
支持存儲基礎(chǔ)設(shè)施比計算基礎(chǔ)設(shè)施更快地擴展
提高應(yīng)用服務(wù)器和存儲的效率
通過對應(yīng)用服務(wù)器和存儲硬件進行獨立的生命周期管理,可簡化管理并降低TCO
- 提供與內(nèi)部NVMe SSD相當?shù)母咝阅芎偷脱舆t
- 可利用現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,無需進行更改
- 可在多跳(multi-hop)數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)中實現(xiàn)解耦合
圖3 NVMe/TCP可以跨數(shù)據(jù)中心將存儲節(jié)點連接至應(yīng)用服務(wù)器
5. Lightbits存儲解決方案的工作原理
Lightbits Labs為云和數(shù)據(jù)中心基礎(chǔ)設(shè)施提供了解耦合閃存平臺。
當數(shù)萬或數(shù)十萬計算節(jié)點將直連式存儲的多個孤島鎖定在每個物理節(jié)點中時,云級網(wǎng)絡(luò)就會暴露出其所存在的極端復(fù)雜性。
Lightbits的解決方案釋放了解耦合高性能 SSD解決方案的潛力。它使數(shù)據(jù)中心能夠從低效的直連式SSD模式轉(zhuǎn)為一種共享模式,在該模式中,計算和存儲可以獨立擴展,以最大限度地提高資源利用率和靈活性
。
在 Lightbits Labs發(fā)明NVMe/TCP時,我們繼續(xù)使用DAS設(shè)備所用的 NVMe模式,然后將其映射到行業(yè)標準的TCP/IP協(xié)議組中。NVMe/TCP是將多個并行的NVMe I/O隊列映射到多個并行的TCP/IP連接上。這種NVMe和TCP之間的配對可以實現(xiàn)一種簡單的、基于標準的、端到端的并行架構(gòu)。
圖4 針對并行云架構(gòu)打造的NVMe/TCP
這種新的共享模式使用了創(chuàng)新的NVMe/TCP標準,該標準不會影響延遲,也不需要更改網(wǎng)絡(luò)基礎(chǔ)設(shè)施或應(yīng)用服務(wù)器軟件。Lightbits Labs正在與其他市場領(lǐng)導(dǎo)者合作,以推動這一新的 NVMe/TCP 標準的采用。
利用Lightbits Labs的解耦合存儲解決方案,存儲可以精簡的方式配置給應(yīng)用服務(wù)器。精簡配置意味著管理員可以將任意大小的卷分配給客戶端。而且,只有當應(yīng)用服務(wù)器寫數(shù)據(jù)時,才會消耗底層存儲容量。因此,存儲在最后一刻(即需要它的時候)才會被使用。這將延遲對更多存儲資源的購買,從而進一步降低成本。Lightbits還為以線速運行的數(shù)據(jù)服務(wù)提供了一種硬件加速解決方案。
因此,當使用 Lightbits精簡配置技術(shù)和面向數(shù)據(jù)服務(wù)的硬件加速方案時,存儲成本可以降低到只有性能相當?shù)腄AS解決方案成本的一小部分。
5.1 適合閃存的寫算法
對于讀和寫操作而言,閃存介質(zhì)的延遲都很低。但是,SSD上的閃存控制器必須持續(xù)執(zhí)行“垃圾收集”操作,以便為即將到來的寫操作提供可用空間。與硬盤驅(qū)動器的寫操作可以覆蓋現(xiàn)有數(shù)據(jù)不同,閃存驅(qū)動器只允許將數(shù)據(jù)寫入以前未寫入或已擦除的閃存塊中。
垃圾收集操作會導(dǎo)致“寫入放大”。顧名思義,SSD控制器執(zhí)行垃圾收集時,應(yīng)用服務(wù)器發(fā)出的單個寫操作會被進行垃圾收集的SSD控制器在實際的閃存介質(zhì)上放大為更多的寫操作。寫入放大會增加閃存驅(qū)動器的耗損,這將影響它的長期使用。
此外,后臺的垃圾收集會導(dǎo)致即將到來的I/O的延遲增加,并且隨著更多隨機寫操作被寫入閃存驅(qū)動器,垃圾收集會顯著增加。不幸的是,很大比例的I/O都是隨機的??偟膩碚f,這意味著用戶無法獲得最好的性能或閃存耐久性。
Lightbits Labs的解決方案通過一個智能的管理層來解決這一問題,該層以不同的服務(wù)質(zhì)量(QoS)等級來管理SSD池。這種解決方案減少了SSD后臺操作,并使I/O更快速、更高效。
LightOS架構(gòu)將多種算法緊密結(jié)合在一起,以便優(yōu)化性能和閃存利用率。這包括將數(shù)據(jù)保護算法與用于數(shù)據(jù)服務(wù)的硬件加速解決方案以及我們的高性能讀寫算法緊密結(jié)合在一起。最終,跨SSD池管理和平衡所有I/O,從而極大地提高閃存利用率。
這種設(shè)計提高了總體性能,減少了尾部延遲、寫入放大和SSD上的耗損。這意味著LightOS可以為你的閃存存儲提供最高的投資回報率(ROI)。
5.2 高性能數(shù)據(jù)保護方案
要想實現(xiàn)存儲與應(yīng)用服務(wù)器的分離,還需要智能、高效且不影響性能的數(shù)據(jù)保護功能。
Lightbits結(jié)合了高性能數(shù)據(jù)保護方案,其可與用于數(shù)據(jù)服務(wù)的硬件加速解決方案和讀寫算法一起工作。
就如何將數(shù)據(jù)寫入SSD池而言,相比傳統(tǒng)的RAID 算法,Lightbits的數(shù)據(jù)保護方法可以防止過多的寫入, 以避免SSD遭受更多耗損。
6. 總結(jié)
Lightbits Labs實現(xiàn)了高效的閃存解耦合方案,在實施和運行方面具有以下優(yōu)點:
- 不需要任何昂貴的專用網(wǎng)絡(luò)硬件,Lightbits解決方案運行在標準的TCP/IP 網(wǎng)絡(luò)上。
- 使用TCP/IP以機架規(guī)模在一個或多個局域網(wǎng)上運行,沒有協(xié)議方面的限制。
- 提供與DAS相當?shù)男阅芎脱舆t,包括尾部延遲比DAS尾部延遲低50%。
- 將高性能數(shù)據(jù)保護方案與其用于數(shù)據(jù)服務(wù)的硬件加速解決方案,以及可確保性能不受影響的讀寫算法結(jié)合在一起。
- 通過用于數(shù)據(jù)服務(wù)的硬件加速解決方案最大限度地提高閃存效率,該解決方案以全線速運行,且不影響性能。
- 實現(xiàn)了精簡配置的存儲卷,支持“按需付費”的消費模式。
Lightbits是NVMe/TCP的發(fā)明者,也是其廣泛采用的推動者。
作為一種新理念的應(yīng)用,Lightbits的NVMe/TCP解決方案可以實現(xiàn)高效的閃存解耦合,從而獲得與 DAS相當甚至更好的性能。Lightbits創(chuàng)造了一種現(xiàn)代的IP存儲架構(gòu)實現(xiàn)方式,可以最大限度地發(fā)揮應(yīng)用服務(wù)器、NVMe、TCP和SSD并行架構(gòu)的潛力。
通過Lightbits Labs的解決方案,云原生應(yīng)用可以實現(xiàn)云級性能,云數(shù)據(jù)中心可以降低其云級TCO。
作者:Lightbits Labs