【轉載】什麼是NVMe?

什麼是NVMe?

【轉載】什麼是NVMe:http://storage.it168.com/a2018/0921/5045/000005045252.shtml

NVMe是Non-Volatile Memory express(非易失性內存主機控制器接口規範)的簡稱,它是一種協議,能夠使固態硬盤(SSD)運行得更快,如今在企業用戶中已越來越流行。

  理解什麼是NVMe的最簡單的方法就是打個比方——假設你剛買了一輛跑車,速度能達到400公里每小時,是你以前那輛老汽車的3到4倍。唯一的問題是,普通的道路是無法允許以這樣的速度行駛的,而且一般城市道路限速幾十公里每小時,往往還得考慮車流的問題。如果你想要讓跑車更快,就需要換一條路開。

  這個場景有點像製造商推出基於閃存技術的SSD之後,存儲行業的情況。閃存技術比傳統機械硬盤快很多倍(快多少倍取決於你使用的設備),但是早期的設備都使用與硬盤驅動器相同的SATA或SAS連接到系統和網絡。雖然這些接口對於硬盤驅動器(HDD)所能提供的性能來說已經足夠了,但是它們爲SSD帶來了瓶頸。這對於企業大數據分析和其他數據密集型工作負載來說,尤其是個問題。

  這些性能問題促使人們尋找更好的方式將SSD連接到服務器,這正NVMe的用武之地。

1、什麼是NVMe?

  NVMe協議標準由NVM Express公司監管,這是一個由100多個組織組成的聯盟,這些組織致力於開發更快的協議以提高非易失性存儲的性能。該組織由一個13家公司組成的董事會領導,其中包括Cavium、Cisco、Dell EMC、Facebook、英特爾、Micron、Microsemi、微軟、NetApp、三星、希捷、東芝內存和Western Digital。

HDD能達到的最高理論速度,與SATA、NVMe最高提供的理論速度對比

  NVMe的官方定義將其描述爲“一個開放的標準和信息集合,以充分釋放非易失性存儲在從移動端到數據中心的所有類型的計算環境中能夠提供的優勢。NVMe從底層開始設計,爲當前和未來的NVM技術提供高帶寬和低延遲存儲訪問。”

  NVMe是通過PCI Express總線將存儲連接到服務器的接口規範,簡單來說就是,使SSD與主機系統通信的速度更快。它有助於緩解閃存通過最初爲HDD設計的SAS或SATA連接到系統時出現的瓶頸。

2、NVMe的速度遠遠快於SATA或SAS

  NVMe控制器通過幾種不同的方式提高性能。一種是使用PCIe總線,它將存儲直接連接到系統CPU。這種直接連接消除了SATA的一些必要步驟,並提高了整體性能。

  此外,NVMe SSD在很大程度上實現了並行性,極大地提高了吞吐量。當數據從存儲傳輸到服務器主機時,它會進入一行或隊列。傳統的SATA連接只能支持一個隊列,一次只能接收32條數據。再回到車的類比上,這就像只有一條車道的車流可以容納32輛車。

  而NVMe存儲支持最多64000個隊列,每個隊列有64000個條目。換句話說,這就像從一條單行道走到一條6.4萬車道的路上,每條車道都能容納6.4萬輛汽車,這對整體表現產生了巨大的影響。

  正如我們的類比中說城市道路一般限速在幾十公里每小時一樣,SATA和SAS連接也有速度限制。對於SATA,理論最大傳輸速度爲6.0 Gbps(在實踐中,最大傳輸速度要低得多)。這就相當於給SATA SSD的運行速度設定了上限。超過一定限度,使用再快的閃存對系統的整體性能沒有影響,因爲SATA連接會造成瓶頸。

  對於大多數消費者來說,SATA SSD提供了足夠的性能來完成日常工作。而且由於SATA SSD比NVMe SSD便宜,大多數消費者級別的固態存儲仍然使用SATA接口。

  然而,企業處理的數據通常比消費者多得多,對他們來說,SATA連接帶來的延遲可能會成爲一個問題。

英特爾750系列是支持NVMe技術的固態硬盤產品之一

3、只有SSD運行在NVMe上

  因爲NVMe驅動器要比SATA快得多,所以將NVMe與HDD放在一起使用來提高性能似乎是個好主意。但是請記住,NVMe代表非易失性存儲接口規範,它是專門爲NAND 閃存等非易失性存儲設計的(儘管它也可以用於較新的非易失性內存,比如3D XPoint)。

  當系統從HDD讀取數據時,它一次只能讀取一塊數據。因爲它必須進行旋轉以定位到第一個數據塊的正確物理位置,然後再次旋轉,移動到第二個數據塊的正確位置,以此類推。另一方面,閃存和其他非易失性存儲技術沒有移動部件。這意味着系統可以同時從許多不同的位置讀取數據。這就是爲什麼SSD可以利用NVMe提供的並行性,而HDD不能。

4、PCIe和NVMe有關係,但它們不是同一個東西

  對於很多人來說,NVMe最令人困惑的部分是它與PCIe的關係。一些廠商使用NVMe作爲標籤來指代他們的SSD,另外一些廠商則使用PCIe標籤,還有一些廠商似乎可以互換使用這些術語。

  雖然PCIe和NVMe密切相關,但兩個術語指的是略有不同的技術。可以將PCIe看作是系統的物理部分。當您將一個NVMe SSD插入服務器時,您需要通過一個PCIe插槽連接它。

  相比之下,NVMe是一種協議,是一組允許SSD使用PCIe總線的軟硬件標準。可以這麼說,NVMe是允許存儲設備與服務器連接的語言,而PCIe是實際的物理連接。

5、NVMe-oF連接SSD到網絡

  本文主要關注的是標準的NVMe,它將SSD直接連接到服務器,但是NVM Express組織也發佈了NVMe over Fabric (NVMe- oF)的規範,它將用於塊存儲的非易失性存儲連接到網絡。根據該組織的說法,“NVMe- oF定義了一個通用架構,它支持一系列存儲網絡結構,用於存儲網絡結構之上的NVMe塊存儲協議。”這包括在存儲系統中啓用前端接口,擴展到大量NVMe設備,並在數據中心內延長NVMe設備和NVMe子系統可訪問的距離。

  NVMe-oF規範與NVMe規範有大約90%的相同;然而,它確實使用了一種不同的傳輸映射機制。NVME-oF也有兩種不同的變體:一種用於RDMA,另一種用於光纖通道。

  NVMe-oF規範也比NVMe規範新得多,儘管一些廠商已經宣佈支持這項技術,但實際上很少有廠商銷售NVMe的產品。期待這種技術在未來幾年變得更加普遍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章