NVMe over Fabric將如何改變儲存環境?
開篇之前,還是有必要介紹下背景。隨著光纖通道技術的廣泛採用,儲存網路在20世紀90年代末和21世紀初開始流行起來。對於那些不想花費安裝專用光纖通道硬體的人來說,幾年之後,iSCSI協議提供了一種可靠的基於乙太網的替代方案。這兩種傳輸都依賴於使用SCSI作為源(啟動器)和儲存(標的器)之間通訊的儲存協議。隨著儲存行業開始採用快閃記憶體作為持久儲存介質,我們開始看到了SCSI遇到的效能問題。
這導致了NVMe或非易失性儲存器快速發展,NVMe是一種旨在超越SCSI並解決效能問題的新協議。我們來看看NVMe以及它與其他協議的不同之處。在文章中,我們還將探索NVMe如何改變儲存網路的格局。
介質技術遇到瓶頸
儲存網路技術是基於儲存硬體的發展和集中儲存的需求不斷演進的。我們可以將光纖通道的起源追溯到大型機上的ESCON,這是一種基於光纖的連線協議。另一方面,SCSI是基於伺服器內硬碟的物理連線。
SCSI最初是一種並行通訊協議——任何熟悉將磁碟安裝到伺服器中的人都會記得帶狀電纜。隨著SAS的發展,它轉變為一個序列介面。與其對應的個人電腦先進主機控制器介面(AHCI)也展成了SATA。或許您可以在當前硬碟驅動器和固態硬碟上找到這兩種協議。
光纖通道或乙太網給伺服器和儲存之間提供了物理連線,SCSI仍然充當高階儲存通訊協議。然而,業界開發的SCSI與HDD一起工作導致響應時間比系統記憶體和處理器慢幾個數量級。因此,雖然我們可能認為SSD硬碟速度很快,但我們發現內部硬碟存在嚴重的效能問題。大多數SATA驅動器仍然基於SATA 3.0規範,介面限製為6 Gbps和600 MBps的吞吐量。SAS驅動器已開始轉向提供12 GBps吞吐量的SAS 3.0,但許多仍使用6 Gbps連線。
然而,對SAS和SATA來說,最主要的問題還是單個裝置的併發I / O處理能力。看看硬碟的幾何形狀,很容易看出處理多個併發I/O請求的能力困難以至於不可能。對效能的提升也是出於偶然性,讀/寫頭或許可以對齊多個請求;或使用一些緩衝,但它不是一個可擴充套件的選項。SAS和SATA都不是用來處理多個I / O佇列的。AHCI有一個深度只有32個命令的單一佇列。根據實施情況,SCSI相對好些,可以提供128到256個命令的單個佇列。
單佇列但來的負面影響就是延遲。隨著佇列大小的增加,新請求延遲遇到的延時更大,因為他們必須等待其他請求完成。因為沒有機械移動部件,固態硬碟驅動器的問題相對較少,單個I/O延遲較低,但單個佇列是固態介質的瓶頸。
初探NVMe技術
業界對介面問題的回答是NVMe在裝置和網路層面取代SCSI。非易失性儲存器使用PCIe匯流排(而不是專用儲存匯流排)為內部連線的磁碟裝置提供更大的頻寬和更低的延遲連線。一個PCIe 3.0*4 Lane的裝置,具有大約4 Gbps的頻寬。
NVMe最大的變化是儲存協議的最佳化。序列化I / O訪問所需的內部鎖定已經減少,而中斷處理的效率已經提高。此外,NVMe最多支援65535個佇列,每個佇列的佇列深度為65535個。因此,NVMe不只有一個佇列,還為連線裝置的I/O提供了大規模的並行性。想想現代處理器中的核心數量。在並行完成大量工作的IT環境中我們可以看到多個I/O佇列併發處理帶來的好處,以及這將如何改善外部I / O吞吐量。
NVM Express工作組是一個由約90家公司組成的聯盟,於2012年開發了NVMe規範。該工作組於7月份釋出了NVMe規範1.3版,增加了安全性,資源共享和SSD耐久性管理問題的功能。
什麼是NVMe over Fabrics
如果NVMe替代裝置連線中的儲存協議,則不難看出NVMe也可以用iSCSI和光纖通道協議替代SCSI。這正是NVMe over Fabric標準的發展情況,該標準始於2014年,並於去年釋出。
關於NVMe over Fabric,有兩種型別的傳輸正在開發中,使用遠端直接記憶體訪問(RDMA)的NVMe over Fabric和使用光纖通道(FC-NVMe)的面向NVMe over Fabric。
RDMA支援在不涉及處理器的情況下將資料傳輸到兩臺計算機的應用程式記憶體,並提供低延遲和快速資料傳輸。RDMA實施包括融合乙太網上的Infiniband,iWARP和RDMA,或RoCE(發音為“rocky”)。像Mellanox這樣的供應商提供適用於Infiniband和乙太網的速度可達100 Gbps的適配卡,其中包括NVMe over Fabrics解除安裝。
NVMe允許對SSD裝置進行大規模並行訪問,從而充分利用SSD效能, 3D XPoint的應用更是一個遊戲規則改變者的表現。
基於光纖通道的NVMe使用當前可升級的光纖通道技術,以支援SCSI和NVMe儲存傳輸。這意味著客戶只需透過適當的韌體升級交換機即可使用他們現有的技術。在主機系統,主機匯流排配接器(HBA)必須支援NVMe—通常為16 Gbps或32 Gbps顯然,儲存裝置也必須能夠支援NVMe。
如何實施NVMe
隨著NVMe在資料中心的應用,最明顯的選擇是在伺服器中使用NVMe裝置。供應商早已將支援NVMe的伺服器推向市場,並提供物理聯結器和BIOS支援。大多數現代作業系統已經支援NVMe,就像VMware vSphere等管理程式平臺,VMware的vSAN平臺早已經支援NVMe裝置。
另一種選擇是支援NVMe作為儲存裝置中的後端儲存連線。儲存供應商已經開始向SAS過渡作為後端介面,隨著時間的推移,取代了光纖通道仲裁環路和並行SCSI。NVMe將取代SAS作為儲存陣列的主要內部協議。在優良的架構產品中,這一變化將導致顯著的效能改進,因為快閃記憶體的好處被髮揮了。
部署NVMe可以為快閃記憶體裝置提供快速,低延遲的連線,並且在高效儲存作業系統程式碼的情況下顯著提高陣列效能。迄今為止,我們已經看到HPE宣佈支援3PAR的NVMe,NetApp將NVMe作為FlashCache中的讀取快取引入,Pure Storage將其提供給其FlashArray//X平臺等等。
具有NVMe的Pure Storage的FlashArray//X聲稱可以提供前一代延遲的一半,並具有兩倍的寫入頻寬。但是,這些規格不包括基於主機的NVMe over Fabrics支援,所以仍然有潛在的效能提升。
NVMe面對的選擇
NVMe技術的全面採用意味著使用NVMe實現整個SAN服務架構,這正是NVMe over Fabrics所提供的。潛在的客戶都採用上述兩種實施方案。並有可能轉換為適用於基礎設施的資料中心的FC-NVMe。思科宣佈其高階MDS 9710光纖通道Director支援FC-NVMe。Brocade已經在其Gen6 32 Gbps交換機中支援NVMe,包括最近宣佈的G610。
遷移到NVMe的客戶可以避免對光纖通道裝置進行翻新和更換。對於已經支援32 Gbps連線的資料中心來說,情況確實如此; 但是,對可能不使用32 Gbps HBA卡伺服器來說,情況並非如此。
支援NVMe的儲存陣列出現時,客戶可能不必一次升級到NVMe,因為SCSI和NVMe可以共存於同一基礎架構上。從管理和運營的角度來看,熟悉光纖通道的資料中心和IT部門可能會發現轉型過程比轉向融合乙太網更容易,因為融合乙太網由於更換硬體需要花費而從未真正替換。
NVMe over Fabrics可以在光纖通道第六代技術及以後的環境共存。這允許將儲存陣列轉換為支援NVMe的Fabrics,並且比透過乙太網遷移到NVMe所需的拆分和替換方法更容易。
光纖通道的替代方案是將NVMe用於RDMA,並以可擴充套件性為代價實現新的儲存網路,以獲得略高的效能。一些供應商使用這種方法提產品。初創公司E8 Storage開發了一種基於NVMe的儲存陣列,該陣列使用100 G乙太網(GbE)融合交換機和RDMA網路介面卡實施高效能SAN。該公司宣稱多達1000萬次讀取和200萬次寫入IOPS,讀取時間為100微秒(μs),寫入延遲時間為40微秒。
另一家創業公司Excelero已經開發出一款稱為NVMesh的軟體產品,該產品使用支援NVMe的伺服器網格來建立分散式計算和儲存結構,以實現一系列系統,例如超融合計算環境。該公司已與美光公司合作生產基於Micron 3.2 TB固態硬碟和Mellanox乙太網RoCE交換機的名為SolidScale的平臺。
該公司宣佈支援面向NVMe的NVMe,作為其FlashStack參考架構的一部分。這將包括FlashArray//X,Cisco MDS 9700導向器和思科UCS,或具有32 Gbps HBA的C系列交換機。
還有一家新興公司Apeiron Data Systems正在開發基於40 GbE的NVMe陣列體系結構和一種外部化的超融合設計,實現儲存和計算能夠獨立擴充套件。
NVMe的未來
我們將NVMe替代SCSI和SAS作為SSD裝置的預設連線。高階部署將使用NVMe over Fabrics,在現有的陣列平臺中使用NVMe將會保留了快照,複製,壓縮和重覆資料刪除等功能,並採用了像Excelero和Apeiron這樣的新平臺體系結構。過去,這些功能的缺乏使得基於NVMe的產品沒有受到關註。然而,隨著時間的推移,NVMe肯定會取代傳統全快閃記憶體技術中存在的傳統架構。
本期分享就到這裡了,下期我們將分享“基於光纖通道的NVMe(基於FC的NVMe)或FC-NVMe標準”。關於SSD、快閃記憶體技術、產品現狀和NVMe趨勢詳細分析,請透過原文連結獲取電子書材料。
相關閱讀
溫馨提示:
請搜尋“ICT_Architect”或“掃一掃”二維碼關註公眾號,點選原文連結獲取更多技術資料。
求知若渴, 虛心若愚—Stay hungry, Stay foolish