作者:范军 (Frank Fan)新浪微博:@frankfan7  Twitter:@franfan7

面临挑战

在与客户和存储厂商讨论虚拟化平台上的存储性能设计时,我们经常经常面临诸多挑战。

存储在虚拟化平台中承担着多重的角色。比如满足存储容量的需求(Capacity),满足应用应能的需求(Latency IOPSThroughput),还要满足存储服务的需求(Snapshotreplicationbackup )。既要满足容量,还要保证性能。那么必然要采用高性能的RAID,高速硬盘,或者足够数量的硬盘来保证性能。常常会发现购买的硬盘远远大于实际容量所需要的。

是按照应用的总体峰值还是均值来设计?按照均值的话,可能在高峰期存储不堪重负,直接导致不能满足应用需求。可按照峰值设计,难免造成大多数时间内存储资源过剩,同时前期投入也很大。

目前传统上存储的架构是集中共享式的。随着服务器和虚拟机的数目或负荷增大,迟早会出现后台存储设备以及存储网路的瓶颈,那么升级方案是不是灵活、简单和易拓展?对已经在线的业务有什么影响?


解决方案

混合或全闪阵列

随着闪存价格近年来的大幅下降,众多厂商开始推出自己的闪存方案。关于闪存的部署方式,有的厂商在阵列中加入闪存,与传统硬盘一起构成混合阵列。有的干脆推出全闪存阵列。这当然对阵列本身的响应速度有很大提升,但同时也有下面的局限性:

一由于IO请求从VM到闪存,仍然要经过很多层的处理,可能由于队列拥塞或者存储网络带宽造成延迟。

从存储架构本身来讲,仍然是集中共享式。在出现性能瓶颈需要升级时,因为有兼容性的问题,不一定能采用当前市场上性价比最优的闪存。

 

服务器闪存

传统上服务器端闪存包括基于SAS接口的、基于SATA接口以及基于PCI-E的三种形式。相对于在阵列中配置闪存,服务器端闪存有以下特点:

VM距离最近,所以响应IO请求的时延最短。如下图显示,IO请求需要经过6个节点才能抵达阵列硬盘。而仅需2个节点就可以被服务器端闪存处理。即使存储网络或者阵列本身有性能瓶颈,也不会对应用有性能上的影响。

【闪存虚拟化】软件定义服务器闪存_第1张图片


闪存技术的发展非常快,最新的闪存往往更容易较早的在服务器端使用。


PernixDataFVP +服务器闪存

仅仅在服务器端加入闪存是第一步,怎么样才能让虚拟化平台能用到闪存呢? PernixData FVP 把所有服务器端的闪存组成一个闪存群集,并可以灵活的把闪存资源配置给DataStore或者VM。该方案的理念是将存储的性能和容量分离,由常规阵列继续满足容量要求,而利用服务器端闪存来负责性能需求。

【闪存虚拟化】软件定义服务器闪存_第2张图片

主要的显著特点是:

应用的性能大幅提升。

VM发出的大部分读写IO请求,都会直接由闪存来处理,从而大大减少了应用的响应时间。

 IOPS 大幅增加

闪存的IOPS处理能力比阵列中的常规磁盘要快很多。最新Intel推出的PCIe闪存可以达到250KIOPS

后台阵列的成本降低。

既然PernixData利用服务器端的闪存解决了对存储性能的要求,后端阵列就只需满足容量就可以了。无需再使用高端的阵列,昂贵的高速硬盘或者昂贵的RAID,从而大大减少了阵列的成本。

服务器端闪存技术,以及PernixData的软件定义闪存群集,在虚拟化存储设计中提供了低成本、高性能和易扩展的新一代存储解决方案。