閃存存儲設備提供了有效的方法來消除數據存儲性能問題,特別是當它們安裝在應用程序所在的服務器上時。使用閃存作為該應用程序數據的緩存,能夠以自動化的方式利用性能加速,并可以加速內部服務器存儲和共享存儲網絡上的存儲。如今,IT專業人士面臨的挑戰是確定哪個閃存緩存替代方案是其最佳選擇。
當用戶需要提高存儲性能時,應該考慮采用這三種主要的閃存緩存類型:
•文件級緩存
•塊級緩存
•聚合緩存
每種方法都有其利弊。本文描述了每種方法,以便用戶可以為自己的環境選擇正確的緩存解決方案。
所有這些方法的產品通常安裝在環境中的服務器上,服務器可以訪問基于閃存的存儲,無論是服務器內部還是存儲網絡。最典型的用例是將閃存存儲在服務器中,通常稱為服務器端閃存。
所有這三種緩存解決方案都可以利用安裝在服務器插槽中的固態硬盤驅動器(SSD),基于PCI Express(PCIe)的閃存卡,或新興的基于雙列直插內存模塊(DIMM)的閃存設備。
大多數這些解決方案還將支持專用存儲網絡上的閃存存儲。通常,唯一的要求是將閃存作為塊設備呈現給軟件。
(1)文件級閃存緩存
顧名思義,文件級緩存軟件在操作系統或應用程序中的文件級別上運行。這些產品會自動分析和評估特定文件以測量其緩存的有效性。但大多數將加速整個文件,而不僅僅是其中的一部分。
文件級緩存解決方案通常不能在虛擬化環境中的虛擬機管理程序級安裝,因此無法從單個軟件實例向多個虛擬機(VM)提供緩存服務。相反,它需要安裝在每個要加速的虛擬機上的客戶機操作系統中。文件級緩存也可以安裝在裸機或非虛擬化服務器上??。
關鍵是軟件的每一個實例都必須提供一個由某種形式的閃存組成的專用塊設備。
雖然這些實施要求需要管理緩存軟件的多個實例,而在虛擬化環境中,將內部服務器SSD細分為潛在的許多獨立塊設備,但獎勵是非常有效的應用程序加速。緩存不會浪費在數據上,因為某些原因可能會暫時限制SSD層。
文件級緩存產品往往被用于可以離散選擇需要加速的文件(如數據庫日志和索引)的應用程序特定環境中。這使得通過這些解決方案人工選擇要由高速緩存分析的文件是常見的情況。
其結果是,文件級緩存可以很好地加速幾個任務關鍵文件運行,而不需要過多的閃存容量。但為了達到這個效率水平,在購買閃存硬件和軟件之前,必須了解哪些文件應該被指定為高速緩存。
(2)塊級閃存緩存
塊級緩存解決方案在塊級別運行,因此它們不會或不能注意生成I / O的文件或應用程序。相反,他們只是尋找最活躍的數據塊,并加速它們,而不管這些塊可能來自哪里。
與文件級緩存不同,塊級緩存是虛擬化環境的理想選擇,用戶可能希望部署一個緩存解決方案,從而加速該服務器上所有虛擬機的性能。這種方法的優點是每個物理主機只需要實現緩存軟件的一個實例。其缺點是,在大多數情況下,該主機上的所有數據均被處理,所以任何活動數據集將消耗閃存容量。
一些塊級產品現在正在添加智能功能,以便可以跟蹤特定虛擬機的特定I / O。通過該功能,用戶可以自定義緩存軟件,將某些虛擬機固定為高速緩存或始終排除某些虛擬機。但是,這種優化是一個無所不在的命題;塊級緩存解決方案無法對等到虛擬機中,以僅加速該虛擬機中的某些文件。
虛擬機遷移和服務器端緩存
在虛擬機遷移時,文件和塊級緩存產品都會在虛擬化環境中受到挑戰。如果虛擬機從一個物理服務器移動到另一個物理服務器,則緩存軟件必須攔截該遷移,并在實際發生遷移事件之前使緩存失效(緩存無效是清空緩存內容的過程)。
在最低限度上,市場上的大多數緩存產品都可以確保在虛擬機移動之前緩存無效。然而,重點是當虛擬機到達其目標服務器時如何重建高速緩存。這就是文件級緩存具有明顯優勢的地方。由于緩存軟件安裝在客戶機操作系統中,要加速虛擬機,需要遵循特定文件上的策略,這些文件可以在虛擬機遷移后快速重新加載到緩存中。
當虛擬機到達目標主機服務器時,塊級緩存必須從頭開始重建緩存分析。這意味著可以重新獲得資格的數據高速緩存的適應性績效將硬盤驅動器(HDD)速度約束。在某些情況下,將正確的數據放回新服務器的緩存可能需要幾天時間。
當發生遷移時,一些塊級解決方案可以將高速緩存分析傳輸到目標主機。顯然,這意味著需要在每個主機上安裝相同的緩存軟件,但這將是典型的。通過在遷移虛擬機時將緩存分析轉移到虛擬機中,運行在接收主機上的緩存軟件可以立即將該虛擬機的正確塊復制到其緩存區域。雖然這個過程發生時性能仍然會受到硬盤限制,但它應該是一個非常快的過程,通常只需幾分鐘。
聚合緩存解決方案
第三個閃存緩存替代方案是聚合緩存解決方案。這些產品通過將服務器內部的閃存資源組合成虛擬但共享的存儲池來解決遷移問題。它們還提供更好的彈性,因為可以實現類似于RAID的數據保護方案。遷移友好和彈性的組合使得這些聚合解決方案非常適合讀寫緩存。
這些產品通過在虛擬集群中的所有主機上安裝緩存聚合軟件來實現,該虛擬集群執行兩個功能:聚合閃存資源,并向每個主機提供有關如何最佳地將該聚合閃存池用作緩存的智能。這種智能類似于文件和塊級緩存解決方案使用的緩存算法。
集群中至少有三個(但通常是更多)的主機需要貢獻閃存資源,然后將它們聚合到作為傳統存儲層的緩存層的閃存存儲的虛擬池中。重要的是要注意,盡管至少有三個主機必須參與,但并不是所有的主機都需要提供閃存容量。大多數這些緩存聚合軟件產品允許在集群中連接的任何主機訪問閃存的共享池。
產品采樣器:閃存緩存軟件
以下是在文件,塊或聚合級別工作的閃存緩存產品的一些示例。
(1)文件級緩存
•Intel Cache Acceleration軟件
(2)塊級緩存
•SanDisk FlashSoft
•近端數據自動緩存
•HGST Virident EnhanceIO SSD緩存軟件
(3)聚合緩存
•Infinio加速器
•PernixData FVP
一旦建立了閃存的聚合池,軟件就會向每個主機提供緩存智能,以將最活躍的數據移動到閃存層,并且在許多情況下,首先將閃存層直接寫入I / O(由于聚合緩存的更好的可用性)。但與其他兩種緩存類型不同,如果發生遷移,則無需重新構建緩存分析,因為它使用共享池。目標主機簡單地拾取原來主機關閉的位置。
最好的閃存緩存選項是什么?
企業最好的服務器緩存解決方案取決于環境。 例如,如果企業的服務器到服務器網絡已經建立并升級,則聚合緩存解決方案有很多優勢,可能會提供更有彈性的方式來緩存數據。但是,如果企業的服務器到服務器網絡無法處理此類工作負載,則由文件或塊級緩存提供的內部服務器選項可能是最佳選擇。它們提供了顯著的性能提升,而不必接觸網絡,這是一個關鍵點,因為許多存儲管理員沒有授權升級或修改服務器網絡。