要改善物理服務器或虛擬服務器應用的I/O性能,一個重要因素就是縮短I/O發起者與目標存儲之間的延時。延時是應用程序性能的頑固之敵,有著簡單的算術關系:隨著時延增加,性能降低。
延時與下面幾個因素直接相關:
· 距離延遲,這受限于光的速度
· 存儲協議延遲,如TCP/IP,FCP,iSCSI,FCoE、 AoE、 SCSI、 SATA、 SAS等
· I/O 處理步驟延遲,這是由于I/O處理路徑需要經過從應用到目標存儲,包括PCIe、 SAS、 SATA、 FC等類型的存儲控制器
· 切換延遲
· 爭用延遲
· 存儲的讀寫延遲 (這項對于旋轉介質相對較高) 延遲是添加劑。關于降低延遲和提高 I/O 性能的傳統觀點是消除或盡可能多地減輕相關因素。
· 減輕距離延遲:通過使目標存儲盡可能接近 I/O 發起者
· 緩解存儲協議延遲:通過使用需要處理或轉換最少的協議
· 緩和 I/O 處理延遲:通過移除I/O處理路徑上的某些步驟或控制器
· 避免切換延遲:不經過任何切換
· 減少爭用延遲:通過限制I/O 必須經過的共享交換結構 PICe閃存卡 讀/寫延遲是存儲管理員最關注并著力解決的,盡管它只是延遲全圖中的一部分。
減輕這部分的延遲在今天看來是比較簡單容易辦到的,使用基于閃存的存儲驅動器。支持SATA, SAS, FC或FcoE接口類型的閃存驅動器(又名固態硬盤或SSD)直接安裝在服務器內,對減緩上邊提到的其他類型延遲效果并不明顯。
另一方面,PCIe閃存卡也確實減輕了那些延遲,因為它們是直接嵌入PCIe通道,而不是通過PCIe連接到外部的SAS,SATA或FC存儲控制器。它們幾乎不需要從應用到達目標存儲路徑的步驟。它們沒有對交換的競爭。他們唯一的競爭來自于PCIe通道上的其他設備。
PCIe閃存驅動器對于減輕或消除所有延遲因素的能力,使得它很容易能提高應用的I/O性能。
隨著NAND非模的繼續下降,PCIe閃存卡的可擴展性一直穩步上升。今天,大容量的PCIe閃存卡可從3.2TB到4.8TB。一臺具備四個PCIe插槽的服務器可擁有高達19.2TB的高性能低延遲的閃存。隨著NAND發展到19nm和20nm以及3-D,容量會繼續擴大。
這使近年來PCIe閃存卡如何占據服務器端閃存變得容易理解。然而,沒有一種技術是完美的,PCIe閃存卡也不例外,它有很大的限制。那些PCIe閃存卡安裝在物理服務器內部,它們只是本地存儲。如果要在多個服務器上共享,它們需要特定軟件將其虛擬化并轉換成共享存儲。這就增加了延遲并降低了I/O性能。增加的延遲量依賴于服務器的網絡互連和TCP/IP。另一個針對虛擬化/共享的PCIe閃存卡的降低延遲的方法就是將數據復制到不同物理服務器上的閃存卡里。數據復制導致PCIe閃存卡容量至少增加了一倍(產生更多成本)。
還有就是服務器中的PCIe插槽有限,通常介于二至八個(根據不同廠商,可能會有更多,但也多不了太多)。那些PCIe插槽被用于眾多不同的適配器,比如以太網卡,光纖卡等,使得可用于PCIe閃存卡的數目大大受限。刀片服務器和雙服務器有著更嚴重的PCIe插槽受限和尺寸受限。
過去幾年,或許PCIe閃存卡的最大問題一直是存在大量專有的軟件驅動。每家廠商都有自己的驅動程序,API和軟件。使用多家廠商的PCIe閃存卡甚至是交換機、第三方緩存軟件而變得困難。
然而,業內人士已經走到一起來解決這個問題。主要的市場領導者(英特爾,戴爾,閃迪SanDisk,EMC,NetApp,三星,美光,安華/LSI,希捷,PMC,甲骨文,思科,西數/日立等)共同組織了以NVM Express(NVMe)來標準化PCIe閃存卡/SSD和API。所有供應商和其他大多數的PCIe閃存卡廠商都承諾將致力于NVMe。假以時日,這個問題將得以解決。
為應用很多用戶需要的特性和功能,如提高可用性和正常運行時間共享,服務器虛擬化需要額外的存儲。利用PCIe閃存卡和共享存儲則需要額外的軟件。該軟件可能是直寫式高速緩存軟件(又名讀緩存)或回寫緩存。兩者都會增加延遲以及許可和操作成本。
直寫式高速緩存是最常見的。它將所有寫操作都送到共享存儲,并將訪問頻繁的讀數據放入PCIe閃存卡中緩存。直寫式高速緩存不會加速寫I/O。但它能加快讀I/O操作。回寫式緩存每次在數據被確認寫入時只將數據保留在PCIe閃存卡中。當初始寫操作被確認寫入后,寫數據也被復制到共享存儲。回寫式緩存確實能加速寫操作,但也加快了閃存的磨損。
內存閃存型存儲
內存閃存型存儲通過將閃存直接插到DIMM插槽,而使它距離應用的I/O更近。而這也使閃存看起來像DDR3內存一樣。在DIMM通道上導致減速的因素更少,如I/ O集線器(最近納入了英特爾最新的至強芯片組),PCIe控制器或存儲控制器都可暢通無礙。DIMM通道上無需管理同其它設備的I/O競爭,而在PCIe通道上卻必須協調。應用與內存存儲之間的距離已不能再短,因為它已駐留在內存通道。內存閃存的平均寫延遲可以小于5微秒,而PCIe閃存卡是這個數字的兩到三倍。讀延遲則基本相當。
但是,內存閃存型存儲的真正性能優勢是延遲的一致性。內存閃存存儲具有很低的延遲變化率,而PCIe閃存卡的延遲變化率被證明要大得多。一個金融服務公司的測試結果顯示,PCIe閃存卡的延遲變化率超過內存閃存三個數量級(1000倍以上)。
這可不是小事。
具有高分頁比而又內容受限的應用將會得益于連續一致的低延遲。這類應用程序中有內存數據庫,高頻交易,衍生品交易,布萊克斯科爾斯建模,BGM/LIBOR建模,石油和天然氣儲層建模,地震資料解釋,流體學模擬,湍流模型,三維建模,動畫渲染,CGI,蛋白質-基因組匹配等。
雖然DIMM插槽比較有限,但19納米的NAND非模可以打造200或400 GB的內存閃存。正如PCIe閃存卡將受益于更小的NAND非模以及3D NAND,內存閃存也一樣。
服務器DIMM插槽就是更好的事例。雖然服務器的PCIe插槽有限,DIMM插槽卻多得多。舉個例子,以Intel最新的四插槽(4顆至強E7-4890)主板為例,有96個DIMM插槽,或每CPU插槽24個DIMM。
假設每CPU至少有兩個DIMM插槽用于SDRAM,那么一共留下88個DIMM插槽可供內存閃存使用,約35.2 TB的極速閃存存儲。
就像PCIe閃存卡,內存閃存存儲也有其不足之處。目前只有一家供應商(Diablo Technologies),并且它通過閃迪Sandisk公司出售其內存閃存。
閃迪的智能存儲將Diablo的技術與自身的Guardian軟件相搭配,以提高閃存的性能,增強NAND耐受性,減少寫入放大,并提供卓越的檢糾錯功能。合并后的產品以ULLtraDIMM進行銷售。
預計其他廠商將迅速進入內存閃存市場。但在那以前,經濟規律的稀缺法則意味著內存閃存的每GB價格將比PCIe閃存卡更高。
IBM在其System X服務器中是eXFlash技術的早期OEM。IBM MSRP顯示每GB容量內存閃存比PCIe閃存卡有大約3倍到4倍的溢價。
那么,誰將贏得這場較量?
如同所有的技術對比,它取決于具體情況。當應用程序對延遲的一致性要求高,并且這是很重要的,那么內存閃存更具優勢。當應用程序內存受限或服務器插槽緊張(PCIe插槽少,刀片服務器等),內存閃存再次具有優勢。而另一方面,當技術成熟度,產業標準化,廠商選擇以及成本是重要因素,則PCIe閃存卡擁有優勢。