闪存虚拟层与缓存引擎:似而不同
2014-04-04 TechTarget中国 编辑:Michael Zhang
如今市场上已经有与闪存虚拟层相关的产品,用户在选择产品的时候容易和缓存引擎混淆。即便使用的是类似的技术,但二者有着极大的差别,如果在不合适的场景选择了不合适的产品,将会产生负面的影响。
首先让我们一起了解一下它们相类似的地方。
缓存引擎和闪存虚拟层都提供了对VMware vSphere虚拟层的透明化支持,另外也支持vSphere的高级功能,例如vMotion、DRS、SRM和HA。应用层面的加速上可以最多达之前的10倍,虚拟机密度上最多可以增加到原先的三倍。
对于后端存储来说,他们无需感知前端应用,缓存引擎和闪存虚拟层可以将存储网络流量中的读请求进行优化操作,这将大大改善对后端存储的写操作,从而提升了写操作的性能。这样做也能将后端存储上的读缓存留给非加速服务器使用。
对于vSphere环境来说,vCenter对缓存引擎及闪存虚拟层产品均有管理接口。所有产品都能提供写操作优化功能,使得服务器端的缓存为只读缓存。
缓存引擎
缓存引擎能提供对每台服务器独立的加速过程,不仅支持物理机平台,也支持虚拟机平台。相反,为了能够用到缓存回写功能,一些产品例如SanDisk的FlashSoft以及Fusion-io,提供了针对两个集群的镜像功能,这样每个节点上的数据都可以通过镜像的方式保存下来。
一些产品能够提供持续缓存,这就意味着一旦发生服务器宕机或者重启,数据仍会保存下来。另外的一些产品则不提供持续缓存功能,也就是说一旦重启,数据就会像存放在内存缓存里一样会消失。
并不是所有的缓存引擎都用一样的方式部署。一些产品需要代理软件部署在虚拟机里,另一些需要部署成虚拟设备的方式。另一些缓存引擎则作为内核模块部署在虚拟层里。
闪存虚拟层
闪存虚拟层相对是个较新的话题,并常作为软件定义存储来考虑。这些产品现今仅工作在集群的虚拟化环境中。
这项技术实现了单一资源池整合所有的固态资源,以虚拟层集群的方式创建了一个抽象层将所有的固态资源整合进来,类似像CPU、内存等。这样的架构与“对物理服务器的加速”截然不同,即便在集群系统里。
该软件作为内核模块放在系统虚拟层里,并在集群范围内与池化的固态资源互动。
除了写缓存,闪存虚拟层同样也支持缓存回写功能来处理来自集群的读写请求。实时复制也被用于数据保护。
在了解完缓存引擎和闪存虚拟层之间的区别后,您知道哪种更合适您的环境吗?
· 本地环境。如果需要应用加速,例如在数据库层面,缓存引擎为唯一的选择。闪存虚拟化目前仅与VMware的vSphere虚拟化环境集成。后续也许会和更多的厂商有合作,例如微软的Windows Server服务器。
· 单节点或者双节点集群。缓存引擎和闪存虚拟层都能支持这样的环境配置。这样的配置中需要考虑的不仅有许可成本、高效性,还有集群的可扩展性。如果目标两节点集群未来会扩展至多节点,闪存虚拟层会是长远考虑下更为合适的选择。对于单节点或者双节点集群的环境,缓存引擎性价比更高。
· 三节点或者多节点集群。由于闪存虚拟层对于集群场景有更为优化的功能,对于单个存储资源池管理起来更为方便。缓存引擎可以在一个集群内被管理,取决于产品本身,每个节点上的固态存储也许可以单独存放。为了方便管理,闪存虚拟层可能是更为有效的解决方案。
· 采用缓存回写技术。缓存回写技术两者均可实现,对于缓存引擎来说,它的适用场景仅在双节点阶段。因此,如果回写缓存对于有三个或者更多节点的集群是一个重要的标准,那么闪存虚拟层则会是最好的选择。不是所有的闪存虚拟层或者缓存引擎都支持安全缓存回写,此外,也不是所有的缓存回写技术都是最有效率的。