性能提升永遠在路上 全閃存如何求突破?
閃存陣列徹底改變了企業的存儲環境。在遷移至全閃存陣列后,以往困擾存儲已久的性能問題幾乎完全得以解決。不過,最終用戶期望的提升以及應用程序的復雜性很快帶來了更大的挑戰,換句話說,改進性能的需求永遠不會停止。所幸的是,存儲供應商并未坐享其成、停滯不前,業內正在產生的一些創新技術正促使全閃存系統領跑于用戶的需求。
存儲媒介無法決定閃存陣列是否有更大的提速空間,事實上,這更多地取決于周圍的基礎架構。大多數情況下,隨著閃存顆粒密度的提升,系統實際只會變得笨拙而遲緩,尤其是針對寫入的I/O操作??傊?,閃存的性能已經遠遠大于硬盤驅動器,比起周邊系統其它組件的延遲也更低。
目前,閃存供應商所面臨的挑戰在于,存儲介質發展如此之迅猛,而延遲主要源自閃存封裝以及其它相關組件。無論對于閃存驅動器還是全閃存陣列,供應商下一階段從整體角度來提升性能。
處理器首當其沖
當今的閃存存儲系統的核心在于軟件,大多數情況下,其運行在相對標準化的英特爾服務器硬件上。處理器構成了硬件的核心。處理器速度越快,軟件執行的速度亦得以提升,從而使得全閃存陣列運行越快。事實上,在過去三到四年中,全閃存陣列中大部分的性能升級得益于處理器的提速,而非存儲媒介的改善。
目前,存儲軟件供應商所面臨的難題在于,推動處理器變得日益強大的動力并非是處理內核原始速度的提升,而更多來自于增加處理內核數量。但是僅有少數軟件供應商能夠在存儲的軟硬件上充分利用多線程技術。那些具備多線程應用能力的供應商現在已經實現了業界保持了性能領先的地位,他們減少處理器數量(因為可以利用所有可用的處理內核),在成本方面贏得競爭力。
更高效的存儲服務
各家存儲系統都有不同的功能特性——全閃存存儲系統尤其如此。除了標準的軟件功能(例如快照與復制技術),大多數全閃存陣列亦包含有重復數據刪除和壓縮等技術以降低成本。混合閃存存儲系統能夠在閃存與硬盤之間實現數據的自動遷移。未來這種數據遷移或許還將發生在不同類型與性能的閃存層之間。
而這些功能同樣也帶來了額外的系統開銷,在多數情況下都會增加I/O負擔。軟件供應商正致力于使其應用程序變得更為高效,以減少其軟件方案在整合到閃存存儲系統過程中帶來的延遲量。顯然,解決問題的方式之一是利用上文所提及的多核處理器技術。此外,供應商還需要進一步改進復制與壓縮技術的效率。這種改善主要通過陣列改變管理這些功能在元數據方面的開銷得以實現。
NVMe:更快速的閃存連接
另一項有待探索的領域是如何實現閃存陣列內部的連接。今天,大多數全閃存陣列本質上是運行著存儲軟件的服務器。這些服務器通常使用SAS連接處理器和閃存驅動器。雖然SAS在設計之初擁有強大的初始帶寬,但我們不要忘記這項技術誕生在硬盤驅動器時代,而非為閃存時代設計。換句話說,系統使用標準SCSI協議來連接SAS接口的閃存驅動器。
SCSI協議增加了延遲,因此供應商不停地尋找更好的替代方案,甚至創建自己的專用協議。雖然這些專用協議確實提高了性能,但如果繼續以這種情況發展,每家閃存供應商的產品都需要自己的驅動程序。在企業中,這意味著每臺服務器都將需要在存儲數據的每個閃存設備上分別安裝驅動。供應商則必須為各種操作系統和環境開發相應的驅動程序。
供應商和IT專家所需要的是特定的用于訪問閃存存儲系統的標準協議。于是NVMe(非易失性快速存儲協議),一種基于內存存儲技術設計的專用標準化協議,應運而生。
NVMe減少了SCSI堆棧中不必要的開銷,從而簡化軟件I/O堆棧。其同時還支持比標準SCSI更多的隊列,相較于傳統的AHCI(高級主機控制器接口)所支持的單個隊列,NVMe可以支持高達64,000個隊列。而每個NVMe隊列可以支持64,000條命令(AHCI單個隊列支持32條命令),這意味著NVMe驅動器連接速度會比SAS或SATA快出2至3倍。此外,由于基于相同的行業標準,某家供應商的NVMe驅動器完全可以和另一家的相互協作。
目前,閃存驅動器廠商正快速在其產品中部署NVMe協議;另一方面,大部分的閃存陣列供應商亦已發布了或即將發布基于NVMe協議的相應產品。我們可以預見到,存儲系統內部的數據遷移速度應該會在明年得到顯著提升。不過,訪問共享存儲系統時仍然要遍歷整個存儲網絡。
Brocade與Cisco在內的一線網絡供應商都已宣布支持NVMe over Fabrics,這種協議可以同時適用于以太網和光纖通道網絡。而對數據中心而言,該標準的滲透則需要更長的時間?;蛟S不少數據中心會在未來數年之內進行轉型。值得慶幸的是,最近市場上發布的產品既支持傳統的SCSI連接,亦可用NVMe進行訪問。
從今往后,連接方面的改善空間將更多來自于帶寬的持續增加,以及帶寬更為智能的利用。
閃存DIMM
大部分的NVMe產品經由PCIe接口安裝。不過現在,內存供應商有了更快速的通道:系統自身的內存總線。PCIe總線是實現各種設備間連接的共享總線,而在內存總線則是內存所專用的。顯然,內存總線主要運用于動態RAM(DRAM)領域,但是現在,閃存制造商也希望藉此實現通往處理器的高速路徑。雖然閃存DIMM比DRAM慢,但它為每個DIMM提供了更大,且成本更低的存儲容量。
供應商提供兩種不同形式的閃存DIMM技術。一種形式是將閃存DIMM封裝成為閃存驅動器,用作高速存儲設備。DIMM即存儲是存儲那些熱點文件(如虛擬內存分頁文件)的理想場所。
閃存DIMM技術的另一種形式是將閃存DIMM作為內存而不是存儲外設。這種做法的優點同樣是提升存儲密度,降低成本;當然亦有缺陷,延緩了整體內存的性能。不過這種性能的延緩或許不會有你想象的那么大。在大多數設計中,閃存DIMM完全可以充當DRAM DIMM。寫入操作先會在DRAM 上執行,當再次需要被讀取前降級到容量更大的閃存區域。
將閃存作為系統內存所帶來的關鍵好處在于單臺服務器有機會以大約一半的成本部署一倍的內存容量,是當前橫向擴展應用程序的理想選擇。通常在這類環境中都面臨著管理橫向擴展節點的難題,其解決之道在于更多的內存,而非處理器性能。
閃存DIMM的另一用途在于防止服務器在系統崩潰時丟失數據。設想服務器會像筆記本那樣:當發生斷電時,它只是進入休眠狀態;在電源恢復時又會自動從停下的地方重新啟動。
總結
今天的企業***次可以為應用程序與最終用戶提供超出其所需的內存容量。但這并不能滿足所有的應用程序。此外,伴隨著虛擬化技術在系統環境中日益滲透,應用程序的持續擴展,這部分富裕的性能遲早會被消耗殆盡。
設備供應商仍將持續專注于改善和提高性能,但比起今天單純將閃存添加入傳統的系統會困難許多。保持性能的領先需要的是更高效的軟件,以及本文中所提到的內外部連接的改善。