在高速記憶體中緩存那些經常訪問的存儲塊可以有效加快那些需要大量隨機讀取和寫入的應用程序的速度。SQL數據庫應用程序,比如Online Transaction Processing(在線交易處理),就是那些需要大量隨機I/O的應用程序。將服務器內的固態驅動器作為“-1層”可以提供透明的存儲加速。
不過,服務器虛擬化已經讓幾乎所有應用程序都面臨大量的隨機存儲訪問。在最新的多核服務器上采用虛擬化合并的用戶發現,由于大量隨機I/O流給共享的存儲系統造成負擔,服務器虛擬化后的性能并不理想。flashsoft將服務器內的直連式固態驅動器(SSD)與讀寫高速緩存結合在一起作為一種可以有效提高底層存儲系統訪問速度的方式。
存儲局域網和網絡附加存儲的制造商在他們的陣列內部署越來越多類型的驅動器。這些系統從短擊式1.5萬轉光纖通道(FC)驅動器配慢速高容量的串行ATA(SATA)驅動器的組合發展到如今常見的0層SSD、1層高速FC或串行連接SCSI(SAS)驅動器配2層的高容量SATA驅動器。
這些系統都是將高使用率的塊放在0層存儲,然后在訪問率下降的時候將這些塊遷移到更低成本的高容量存儲上。這種做法是好的,但是共享存儲控制器的處理所帶來的時間是一個問題。
將高速存儲直接放在每個服務器上是一種解決方案,不過是一種昂貴的解決方案。首先,將應用程序所需要的所有閃存存儲放在服務器上會帶來高昂的成本,會犧牲共享存儲所帶來的好處。其次,你需要對應用程序進行設置以便讓應用程序知道應該將哪些數據存儲在本地。第三,你需要運行分析工具來判斷數據集中的熱數據,然后將熱數據放到閃存存儲中。
flashsoft采用了不同的方式,不過這種方式和目前現有的共享存儲和直連式存儲都是兼容的。flashsoft在Windows Server 2008 R2設置了一個NTFS層下的驅動程序來作為塊層次過濾器驅動程序。在這個位置上,flashsoft能看到來自應用程序和VM(虛擬機)鏡像所發來的所有讀取和寫入命令。分配給flashsoft的SSD并不能用于其它應用程序,但可以作為一個高速非易失性位置來存儲經常訪問的塊和元數據。因此,這些SSD成為自動適應的存儲層,對服務器應用程序和共享存儲系統來說是透明的。由于共享存儲所涉及的I/O量大幅減少,共享存儲的性能可以有效提高。
flashsoft驅動程序有兩種模式:讀取-寫入高速緩存,只讀高速緩存。只讀模式會一直將數據寫入SSD和存儲,而讀取-寫入模式不會寫入存儲,除非符合特定條件。作為一種寫入高速緩存,它支持寫入通過模式以及寫回模式,可以識別出大型寫入數據流并直接寫入底層存儲,從而為SSD空間提供更好的利用率。
flashsoft使用預讀和周邊讀取技術,可以判斷出經常被訪問的“熱點”會出現在哪里。如下圖所示,flashsoft會分析寫入命令,并判斷出這個命令是否應該在寫回模式下處理,如果是的話,重定位到SSD上。那些只存儲在SSD上的數據會定期寫入到后端存儲上。flashsoft同時還可以認出最經常讀取的數據并將它保存到作為讀取高速緩存的SSD上。在只讀模式下,數據總是直接寫入到底層存儲。由于flashsoft將整個SSD池看作一個緩沖,因此SSD的性能得到最大化,同時損耗也得到最小化。
flashsoft將Windows Server和Hyper-V作為初步進入市場時的平臺。毫無疑問的是,未來的系統將兼容Linux、VMware和其他虛擬機管理器,支持獨立的服務器和服務器集群。Windows服務器龐大的用戶群為flashsoft的首發產品提供了廣闊的市場。像Exchange、SharePoint和SQL等應用程序可以通過高級的高速緩存算法得到立即的性能改善。flashsoft可以充分利用Windows Server環境的市場機遇。