在存储系统中使用传统硬盘迫切需要解决的问题通常有两个:硬盘的高延迟和低IOPS。而使用固态硬盘不同,如何解决容量的限制是现在面临的最大问题。
如果将原来所有的硬盘全部替换为固态硬盘,那存储系统肯定会出现问题。StorageIO集团的高级分析员Greg Schulz表示:“存储控制器刚刚适应固态硬盘,系统可以使用多少个固态硬盘?客户应该听取厂商的建议”。
下面是四种常用的在存储系统中增加固态硬盘的办法:
1、增加固态硬盘来代替传统硬盘
2、在存储控制器中使用NAND flash作为Cache
3、在服务器端使用NAND flash
4、使用所有硬盘都是固态硬盘的阵列
增加固态硬盘来代替传统硬盘
可以通过光纤,SATA或者SAS接口来增加固态硬盘,这是迄今为止最方便的方法。部署之前通常需要进行大量严格的测试,不过不用担心,供应商通常会协助你来完成这个过程,所以对用户来说,这种方法很简单。
这种方法有两个最大的缺点:无法自动的将数据从传统的硬盘上转移到固态硬盘上和存储控制器的性能会受到限制。尽管如此,这种方法仍被多家厂商所采用。EMC Corp., Compellent, Fujitsu, Hewlett-Packard (HP) Co., Hitachi Data Systems, IBM, LSI Corp., Pillar Data Systems, Sun Microsystems Inc.和一些小的阵列供应商都提供固态硬盘。大部分厂商都是使用STEC Inc生产的固态硬盘作为他们的第一代固态硬盘,因为STEC的固态硬盘是第一个能够满足企业存储需求的固态硬盘。Seagate
Technology LLC也在向这个领域进军,STEC的统治地位有可能会动摇。在存储控制器中使用NAND flash作为Cache
NetApp和Sun公司使用NAND flash作为cache来解决从固态硬盘到传统硬盘迁移数据的问题,它改变了存储的架构,消除了固态硬盘数目的限制。采用了NAND flash后,不只是固态硬盘,前端传统硬盘的性能也有很大幅度的提升。
NetApp发布了性能加速模块(PAM),它适用于任何NetApp设备,直接插在PCI Express插槽上就可以使用。每个设备由于控制器的不同,最多可以使用5个模块。现在最大的cache是80GB,今年年底会有高密度的512GB 的PAM卡面市。
跟NetApp不同,Sun公司在Sun Storage 7000 Unified系列的存储上使用的是flash memory。这个系列的机器在X86平台上运行Solaris系统,使用ZFS文件系统来支持DRAM cache、固态硬盘和传统硬盘的混合存储池。
固态硬盘适合放在基于DRAM的ARC和SATA硬盘之间。当系统出现故障时,ZFS Intent log负责向固态硬盘写入日志。被优化过的固态硬盘可以作为L2ARC cache来扩展基于DRAM的ARC cache;L2ARC cache 大小可达几百个G,它可以减少读取硬盘的次数。据Sun公司介绍,使用混合存储池的Sun Storage 7000 Unified存储系统可以支持高达800,000的IOPS。
在服务器端使用NAND flash
Sun Storage 7000 Unified存储系统是一个独立的存储系统,不过它提出了一个观点:在服务器上使用flash memory而不是在存储控制器上。Fusion-io. 公司的首席技术官David Flynn称:“跟L2 cache可以扩展CPU的内存,DRAM扩展L2 cache原理相同,flash memory可以用来扩展DRAM。”这家公司向服务器端提供flash memory卡。Sun公司也同意在服务器端使用flash memory这种办法。Sun公司的Cornwell称:“flash
memory对服务器的架构产生了很大的变化,下一代服务器将会采用flash memory来扩展DRAM cache。”
所有硬盘都是固态硬盘的阵列
如果使用的存储阵列中只有固态硬盘,就会省去很多麻烦。Texas Memory Systems是这个领域的佼佼者,它不但提供DRAM和NAND flash的固态硬盘阵列,也直接销售或者向其他厂商OEM RamSan系列的产品。这种阵列的价格较高,而且这种阵列跟其他存储架构的兼容性也有问题以及如何在固态硬盘阵列和其他的存储层之间迁移数据也是一个难题。