SSD在数据中心领域已经树立起了自己的地位。几乎所有主流厂商都会在它们的最佳实践架构中指定Tier 0存储。服务器端的SSD用于提升服务器性能,而存储端的SSD则解决了启动风暴的瓶颈。就像大多数技术一样,了解什么时候使用它和什么时候不使用是很重要的。现在让我们来看看什么时候不使用SSD。
对于不是读密集型(read-intensive)的应用不要使用SSD。SSD可以显著提升读访问时间。相比传统HDD硬盘,读取效率可以提升 10倍以上。但是天下没有免费的午餐,SSD在写性能上并无优势。写操作不但有延时,而且还会耗尽SSD的存储单元。存储单元有平均写寿命,超过这个寿命时,存储单元会逐渐损坏(具体要查看厂商对指定系统的提供的详细信息)。当存储单元损坏时,SSD总体性能会下降。最终,SSD必须被更换以保证其性能,我们都知道,SSD并不便宜。一些厂商更是提供昂贵的保修服务。
那么理想的读写比率是多少呢?这并没有一个固定的数字,但90/10是比较理想的。在这点上应用必须做出让步,这需要IT管理者做出合理的决定。如果读写比率低于50/50,那么很明显传统的HDD硬盘是更好的选择。在这种情况下,从应用的角度来看SSD对读性能的提升会被其糟糕的写性能抵消。
所以如果你需要使用SSD来提升读性能,但写性能成为了问题,那么你可以考虑采用损耗平衡(wear-leveling)机制和能减少写入放大 (write-amplification)的厂商,从而降低性能影响。SSD的大小也是一个因素,便宜的SSD会因为减少了递归读的几率而产生更重的负载。
当数据随机访问过大时不要使用SSD。SSD通常被认为是“缓存层”,这个名字很形象。从根本上说,SSD就是一种用来减少从传统硬盘取数据的缓存。随机访问需求很高的应用不会从SSD上获益—读操作会被阵列控制器定向到HDD,此时昂贵的SSD作用很小。
在高度虚拟化环境中不要使用普通SSD。好吧,这一点会带来一些争论,因为在虚拟机环境中已经有了一些SSD的成功案例,如启动风暴。然而,许多虚拟机访问同一块SSD 时会导致很多随机数据指令,至少从存储的角度来看是这样。当上百个虚拟机对相同的存储进行读写时,一台机器会一直不断的重写其它机器的数据。因此,有专门为虚拟化环境设计的SSD解决方案,这就是之前为什么提到“普通”SSD。
不要在服务器端使用SSD用以解决存储IO瓶颈。服务器端SSD从根本上说就是服务器缓存,用于解决处理性能问题和网络带宽问题。将SSD分布到几百台物理服务器上,每台服务器都配置自身的SSD可能的确会对解决IO瓶颈有帮助,但是并没有将其放置在存储阵列端效率高。
不要使用Tier 0来解决网络瓶颈。如果数据传输被网络控制,在网络后端优化存储系统显然不会有好的效果。服务器端SSD可以减少访问存储系统的需求,因此可以减少网络流量。
不要为企业级应用部署消费品级SSD。SSD有三种等级:单层单元(SLC),多层单元(MLC)和企业级多层单元(eMLC)。MLC被认为是消费品级SSD,通常在打包的应用中使用。每个单元的生命周期是3000-10000次写操作。SLC是企业级SSD,具有每个单元100000次以上写操作的生命周期。eMLC尝试在价格和性能之间找到平衡点,提供每单元30000次写操作,但价格比SLC低。客户可以根据自身的购买力来决定购买哪种等级的SSD。