由固体存储技术获得的性能,并不局限于数据库应用。
这就是为什么我们看到了缓存和分层解决方案需求的增加。大多数服务器无论是单独的还是集群的都因为有大量的应用作业而压力很大,每台服务器都有不同的繁忙时间和空闲时间。如果你把所有数据都放在固态存储上,那你就不需要考虑缓存和分层技术了;但如果你的数据中心,就像大多数数据中心一样,大部分当前应用的数据都保存在传统的旋转硬盘驱动器上,就应该考虑这种技术。
利用SSD分层技术,用户可以决定什么时候什么数据放置在固态硬盘上。分层可以手工执行,也可以借助主机或存储控制器上的自动分层软件执行。分层技术会在合适的时间把特定的热点数据迁移到SSD层,同时,在合适的时间再把它们迁移回低速的磁盘层。如果分层是手工执行的,那么管理员必须不停地观察I/O活动,以决定何时迁移哪几个文件或数据。你不得不人工跟踪你系统中每个文件的访问频率,从而根据这些访问确定何时把这些数据迁入迁出SSD层。对于各种不同规模的系统,手工执行几乎是不可能完成的任务,这就需要自动分层软件了。利用自动分层软件,文件和数据的访问情况会被自动地跟踪,数据迁移按照用户定义的策略,在预定的时间执行。分层技术的采用,使那些数据已经迁移到较快层级的应用受益,且性能的提升是立即而显着的。如果你有多个应用,需要提升性能,而却无法抉择(或者没有时间去检验,哪些应用需要提升性能),自动分层解决方案是一个好的选择。如果你只有一个应用希望从分层技术中受益,你就不需要自动分层软件了。而大部分拥有几十、上百甚至是上千应用系统的数据中心都可利用这种技术获得更高的性能。
固态缓存技术
另外一种技术叫做SSD缓存技术。数据缓存到SSD中是由主机软件或存储控制器决定的,这种技术会把数据复制一份到SSD缓存中,无需从用户和应用软件所确定的原始位置迁移数据。缓存技术非常容易管理,因为所有的决定都是由缓存软件或控制器做出的。缓存技术把热点数据调入缓存进行访问以加速应用程序的访问,性能随着更多的数据进入缓存而逐渐得以提升。我们把这种逐步的性能提升叫做"热身"或者"爬升",其发生会持续几分钟或数小时,这依赖于设备和I/O操作的数量。根据设备的不同,缓存的数据可以使只读的或读写均可的。SSD缓存技术沿用了很多与内存缓存技术,甚至是处理器内部缓存技术相同的缓存算法。某些SSD缓存解决方案不仅仅缓存那些明显的热点数据,而且还会预先获取其临近数据,缓存软件认为按照其I/O模式,这部分数据也会变成热点。大部分缓存解决方案让管理员决定哪些文件或卷能够进入缓存使性能提升,所以你可以排除某些特定的数据以防止其阻塞缓存。如果你认为大部分或者所有的应用程序都能得到性能的提升,你就应该考虑使用SSD缓存技术了。
利用分层和缓存技术,SSD能够使更多容量得到性能的提升。对于这两种方案,你必须计算出需要多少的SSD容量。在多数情况下,认为只需要总磁盘存储空间的3%或至多10%的SSD容量既可获得性能的显着提升。
SSD的数据压缩
压缩技术是另外一个因为固态存储技术获得新面貌的话题。因为SSD技术通常比传统硬盘技术更加昂贵,在只关注每GB的价格的情况下,提升SSD技术所带来的效益的一种方式就是在把数据存放到SSD之前进行数据压缩,因此而消耗更少的SSD宝贵的空间资源。
目前,随着处理器性能的提升,花费一些额外的CPU处理能力进行数据压缩,然后再存储在较快速的
,从而使得整个性能的提升。这就需要考虑压缩是发生在主机上还是发生在存储系统上。某些存储已经能够进行压缩了,数据在进入存储系统的时候立刻进行压缩处理,所有的缓存、SSD或磁盘设备只能看到压缩后的数据,这样就可以占用更少的容量了。
另外一个解决方案,上面已经提及,就是全闪存阵列。这将变得更加普遍,大的存储厂商去年开始跟进由一些初创公司所引导的趋势。我们完全可以期望看到从大的存储厂商在今年发布其闪存阵列。很可能在不久的将来,全闪存阵列会具有现在硬盘驱动器系统相同的先进功能,包括像自动精简配置,重复数据删除和更多的东西。