本文已發表於網路世界奔跑吧,快閃記憶體!,由於篇幅所限有刪節,在這裡發布的是完整的版本。

PCIe快閃記憶體相對SASSATA SSD的優勢

當我們在十幾年前開始使用U盤時,只看到它的便攜與易用,估計很少有人還意識到快閃記憶體蘊藏著巨大的性能潛力。

今天,包括PCIe SSD在內的快閃記憶體存儲在企業級應用中的普及,歸根結底要歸功於半導體技術的發展。一方面,CPU性能越來越快,而發展緩慢的硬碟越發顯得跟不上;另一方面,以NAND快閃記憶體為代表的半導體存儲容量密度增大,而且越來越便宜。當那個拐點的時間到來,人們發現用小小的SSD能頂上幾十甚至上百塊硬碟的性能。

在企業級SSD發展初期,更多的應用形式是安裝在EMC等存儲系統廠商的陣列中,替代磁碟的SAS SDD;或者伺服器裡面使用的SATA SSD。它們能夠與傳統硬碟控制器良好兼容,但當時主流的SATA和SAS介面帶寬只有3Gb/s或者6Gb/s(300-600MB/s),如今12Gb/s SAS還沒有普及,而x8 PCIe 2.0的理論帶寬已經達到4GB/s,PCIe 3.0更是翻了一倍。

此外,針對傳統硬碟設計的SAS控制器自身也存在性能瓶頸,那麼「有路何須搭橋」?直接將快閃記憶體做到PCIe卡上顯然速度和延時都會更好,伺服器的存儲架構也變得更加簡單,甚至實際量產的成本都會降低。

這就是今天PCIe SSD越發流行的原因。

產品架構之間的PK

PCIe SSD從架構設計方面來區分,包括FPGA/ASIC原生控制器方案和SAS IOC轉接SAS/SATA SSD模塊幾種方式。

SAS轉接方案:儘管筆者一直不看好SAS轉接方案的長遠發展,但兼容性好和成熟的架構是它最大的優勢。產品形態就是把SAS控制器連接的多個SSD盤RAID 0做在一張PCIe卡上,因此他們的Firmware(固件)和主機端驅動與SAS HBA基本通用,兼容絕大多數的伺服器、各種操作系統版本都沒有問題。

SAS轉接方案的PCIe SSD現在很少宣傳其性能,畢竟這方面對比原生PCIe快閃記憶體控制器沒有優勢。不過,如今幾乎所有PCIe快閃記憶體卡的性能對企業級客戶都不是問題(這也是我們把兼容性和可靠性放在前面講的原因),因此目前市面上Oracle Exadata資料庫一體機就用的SAS轉接PCIe SSD,最近還有國內雲和恩墨用EMC ScaleIO分散式SAN軟體搭建的Oracle預集成系統。

總的來說,SAS轉接PCIe SSD的多晶元控制方案從效率、成本上都不佔優。因此我們幾乎只看到LSI這一家先天有利的廠商(該部門如今已賣給希捷)在該領域表現尚可,Intel搞了一段過渡的SSD 910今年也推出自有ASIC控制器的NVMe產品了。

FPGA/ASIC原生方案:FPGA(現場可編程門陣列)的特點是設計靈活性強,在現有的晶元上通過不同的軟體(Firmware)就可以定義出差異化的快閃記憶體卡(盤),並且易於升級。這種低門檻方案非常適合中小規模的廠商。FPGA晶元的缺點是封裝尺寸和發熱量比ASIC較大,數量達到一定規模後成本不如ASIC。代表廠商是PCIe快閃記憶體卡領域的先行者,被SanDisk收購的Fusion-io,被HGST收購的Virident,以及國內的Memblaze和Shannon寶存科技等。

圖1:曾經是PCIe SSD單卡容量之冠的Fusion-ioioScale 3.2TB。當年它從Facebook走出,帶有為互聯網行業定製,高性價比的特點。令人可喜的是,今年全球率先達到單卡6.4TB容量的寶存科技是一家國內廠商。

當PCIe快閃記憶體卡向著的容量越來越大、性能越來越高的方向發展,單卡的功耗就容易超過普通PCIe插槽的25W限制。像SFF-8639尺寸的2.5英寸驅動器形式,插在伺服器的前端密度更大,還要注意散熱的問題。這時功能相對固定,但功耗較低的ASIC就體現出價值了。但設計出一顆優秀的ASIC,僅僅是流片成功都要付出巨大的成本。目前比較多見的原生PCIe SSD ASIC有被晶元廠商PMC收購的IDT產品線,曾用於美光(Micron)的卡和盤;再有就是Intel和三星這樣的巨頭;我差點忘了Marvell和SandForce(幾經轉手被希捷收購),儘管後者的原生PCIe SSD控制器應該還不能量產出貨,但價格和對技術門檻要求低向來是他們的優勢。

NVMe橫空出世

NVM Express(NVMe)是一種為企業級、客戶端系統所用的PCI Express SSD而專門設計的高性能、可擴展主機控制介面。它由Intel等十幾個發起成員公司領導,以及數十個成員組成的行業聯盟共同開發。

NVMe主要解決的問題,或者說好處主要包括以下幾點

(1)標準化的驅動,比如較高版本的Linux內核集成通用的NVMe SSD驅動程序

(2)精簡優化的存儲堆棧,提高效率。比如支持更大的隊列深度、MSI-X將IO產生的中斷更好的分配到多個CPU核心上,避免出現性能瓶頸。

(3)NVMe還有個好處,就是它不僅盯著NAND快閃記憶體,還宣稱考慮了下一代性能更高的非易失性半導體存儲介質。就眼前來看,已經有人拿DRAM放在NVMe卡上跑Demo,也有廠商做出了類似的產品。

更多背景資料參見:

NVMe:PCIe SSD標準不斷完善,直指Fusion-io

IDF2013:NVM Express目標SAN共享存儲

除了性能考慮、驅動層面對熱插拔更好的支持之外,如果各家的PCIe SSD都同樣使用操作系統自帶的驅動,無疑對用戶是個好事情——至少能減少許多測試和驗證工作。但另一方面,SSD個性化的增強功能,目前主要是狀態監控,乃至於進一步增值的緩存軟體、RAID支持等都可能要依賴廠商專門的驅動。如果是帶來同質化的結果,最後拼供應鏈和成本,這個市場剩下的估計只有三星、美光等NAND快閃記憶體廠商和Intel這樣的業界巨頭。

NVMe最初是在Fusion-io一家獨大的情況下出現。到了如今PCIe SSD百花齊放的時代,NVMe產品也接近成熟,但由於各家廠商的利益不一致,對NVMe支持的力度也不盡相同。

有幾位業內朋友的觀點可以作為參考:「美國人和國內對於NVMe的態度、普及時間上有些差距。美國人覺得NVMe沒有那麼快成熟,而且熱插拔沒有行業標準,暫時還不可靠,產品之間不兼容。感覺國內幾大家都已經要撲上去了。」

「注意各家的驅動不兼容。都不是用的原始驅動,因為性能不夠。而且目前價格可真不便宜。

「某國外伺服器廠商對NVMe的支持,推遲到2015年下半年,可能仍會延期。因性價比還不如任何一家『非標準』的PCIe SSD。」


推薦閱讀:
查看原文 >>
相关文章