因為NVMe的出現,硬碟的性能得到了極大的提升。這個極大是多少呢?讀帶寬從500MB/s提高到了3200MB/s,寫帶寬從400MB/s提高到了1200MB/s左右。而讀IOPS則達到了50萬,甚至更高。也就是說,現在一塊基於NVMe的SSD硬碟的性能比一個企業級磁碟陣列還要好。 牛皮吹了這麼多,那到底什麼是NVMe呢?NVMe的全稱是Non-Volatile Memory Express,如果翻譯過來就是非易失性內存主機控制器介面規範。你可能還是一頭霧水,那我們上搜索引擎搜索一下這個關鍵詞,可能會得到如下圖片。

廢話說了半天,到底什麼是NVMe呢?首先它是一種介面規範,其次它是用於存儲設備的介面規範。準確的說是目前最新的存儲設備通信協議。這個協議就好比SAS和SATA一樣,用於定義硬體介面和傳輸協議

關於存儲的幾個概念

為了徹底搞清楚什麼是NVMe,我們先理清楚幾個關於存儲的概念。

尺寸外形:也就是設備的形狀和大小,通常存儲設備的尺寸外形包括如下:

- 2.5寸或者3.5寸驅動器(在SFF標準中定義)

- M.2 和 PCI Express(PCIe)(在PCI-SIG標準中定義)

介面:也就是設備如何與計算機通信。常見的存儲設備介面包括:

- SATA介面,通常用於2.5寸和3.5寸硬碟,有時候一些M.2設備也會使用

- PCI Express(PCIe)介面, 用於M.2和PCIe設備

- SAS(串列SCSI)和FC(Fibre Channel)介面,僅用於伺服器領域和數據中心 PCIe介面要比SATA介面快的多,SATA3最大帶寬是6Gb/s,而基於4X PCIe的M.2介面最大可以達到32Gb/s。

協議:定義了如何在計算機與設備之間傳輸數據。常見的協議包括:

- 用於SATA介面的AHCI或者ATA協議

- 用於PCIe介面的NVMe協議

到這裡我們應該比較清晰了,NVMe是運行在某種介面上的通信協議,用於規範計算機與存儲設備的數據傳輸。上述設備尺寸、介面和協議通常是可以組合的。下面是常見的集中組合形式。

  • 一個2.5寸SSD硬碟,基於SATA介面,通信協議是AHCI或者ATA。具體設備大概如圖2所示。
  • 一個M.2的SSD, 基於PCIe介面,通信協議是NVMe。具體設備大概如圖3所示。

  • 一個PCIe的SSD,基於PCIe介面,通信協議是NVMe。具體設備大概如圖4所示。

這裡只是給出了幾個具體的例子,便於大家理解介面、設備和協議的關係。具體來說,還有其它很多種組合形式,本文不在贅述。

為什麼NVMe會這麼快

上面我們介紹了什麼是NVMe,下面本文將介紹一下為什麼NVMe如此之快(注意:這裡說的快是基於SSD設備的,如果是機械硬碟則不然)。由於SSD本身的物理特性,其數據的訪問已經非常快了,性能的瓶頸就是出在計算機與設備連接的介面和協議上面。 我們舉一個簡單的例子。比如我們有一個倉庫會不斷的生產出產品來,我們可以機械手將產品從倉庫拿到其它地方(如圖5所示)。對於SATA的SSD,類似於一個單臂的機器人,倉庫生產的很快,但機器人每次只能拿一個,搬移的速度就比較慢。

然而對於基於NVMe的SSD呢?相當於這個機器人長了數百隻手,這樣速度顯然就比前者快的多了。

NVMe協議的原理也是如此,它本質是上建立了多個計算機與存儲設備的通路,這樣搬運數據的速度自然就提高了。在NVMe協議中,多個通路其實就是多個隊列,具體如圖7所示。在SATA中計算機與存儲設備只能有一個隊列,即使是多CPU情況下,所有請求只能經過這樣一個狹窄的道路。而NVMe協議可以最多有64K個隊列,每個CPU或者核心都可以有一個隊列,這樣並發程度大大提升,性能也自然更高了。

今天只是一個入門,後面我們再詳細的介紹關於NVMe的更多內容。如果覺得不錯,還請大家關注本號,如果覺得太爛,還請下面留言

更及時的獲取新內容,請關注微信公眾號: itworld123


推薦閱讀:
相关文章