在高速记忆体中缓存那些经常访问的存储块可以有效加快那些需要大量随机读取和写入的应用程序的速度。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环境的市场机遇。