微信号:huangliang_storage

介绍:企业存储、服务器、灾备等领域技术分享,交流 @唐僧_huangliang (新浪微博 )

vForum随笔:全闪存VSAN和Nimble CASL的创新

2015-10-29 02:19 黄亮
记得我在2012 年参加vFourm 大会之后撰写了《VMware 的存储野心( ) :软件定义、分布式DAS 支持》和《VMware 的存储野心( ) :虚拟卷和闪存缓存》,当时水平有限,并且只是参考规划中的简单ppt 介绍。3 年前已经有了VVOL 这个名词,而VSAN 还没提出。

之后的两年,包括今年vFourm我都参加了,VMware在业界影响力不断扩大,参会人数感觉也突破了新高,存储相关特性不断增强。而对于关注技术的我,再也没有感觉到当初那种惊喜——因为主要产品都已推出乃至落地,更新的只是在部分方面。

在本文中,我想谈谈今天参会的主要感想——“微创新”和“技术借鉴”,由于有些内容是现学现卖,算不上是专业的技术分析,权且当作一个随笔吧。

同时也要说明,本文系个人观点,与任何公司无关。由于时间仓促,如有错误和不足之处欢迎批评指正,谈到某个产品的优缺点,也只是从技术角度出发的思考而已。

从全闪存VSAN联想到Compellent自动分层

今天一早,我看到一篇Memblaze资深方案架构师朱磊撰写的,解析全闪存Virtual SAN架构的文章,使我再次回想起下面这个图。



vSphere5.5也就是第一次版本VSAN的时候,官方要求SSD+HDD混合部署,SSD/写缓存默认的分配比例为7/3。从vSphere 6.0开始,新的VSAN正式支持全闪存配置。所有写入数据一律进入写性能/寿命相对较高的缓存层SSD,然后逐渐“下沉”至相对廉价的容量层SSD;由于两种SSD的读性能并没有明显的差距,因此不再需要专门设计读缓存了,容量层的数据直接读就好了。

讲到这里,如果是对戴尔SCCompellent)系列存储比较熟悉的朋友,估计也会有和我一样的同感,是不是比较相似呢?

上面这张图,冬瓜哥在《浅析固态介质在存储系统中的应用方式》一文中也曾引用,我在这里不做过多讲述,有兴趣的读者可以点击本文底部“阅读原文”,然后打开对应的文章链接即可。

Compellent数据分级的精髓在于依靠Replay(快照)触发数据下沉,也可以根据访问频率再提升。当然戴尔SC不只支持2个分层,在SLC(写密集型)+MLC(读密集型)SSD的基础上还可以加入磁盘来存储更“冷”的数据。

根据上图中的5种配置文件,在同一台Compellent阵列当中也可以混合使用不同的自动分层存储策略。比如第三种是比较常用的全闪存SLC+MLC;而像Oracle redo log这样的写密集型数据采用第二种配置(或者全硬盘RAID 10)不做数据调度显然更合适一些。

至于VSAN呢,我觉得更多考虑的是简单易用,支持虚拟化环境中的大多数应用即可,因此全闪存也只能分层。

尽管VSAN6.0推荐的应用,在虚拟桌面、灾难恢复和测试/开发基础上加入了关键业务(原来是第2/3层生产应用),但我觉得这个是在一定程度上支持。毕竟Oracle官方是不认证VMware虚拟机的,物理硬件性能在虚拟化之后多少会打点折扣。

我再打个比方,有人说在Ceph上也能跑Oracle RAC+ASM,但真的不是最佳配置。相对于传统集中式存储阵列来说,尽管这些分布式存储计算出来的多副本数据可靠性相当高,但见到明确承诺可用性的还不多,目前能够稳定达到99.99%的感觉已经不错了。

关于软件定义存储这个话题,有机会再跟大家聊更多,再来看看下面这张图。

我看到有人对VSANScaleIO给出的定位关系,首先VSAN应用受限于自家虚拟化平台,特长是简单,更多适用于ROBOHCIASMB,对企业级数据中心和服务提供商来说ScaleIO应该是更合适的选择。

新星NimbleCASL:有些像NetApp WAFLZFS

最近Nimble小火了一把,尽管他们IPO已经有一段时间,但却是第一次进入Gartner通用磁盘阵列魔力象限中的领导者象限。日前还看到同行朋友为此撰写了一篇文章,只是遗憾没有谈Nimble的技术好在哪里。

今天在vForum上有幸听到Nimble的讲解,ppt资料感觉很不错,由于时间关系我先引用下面2张产品资料中图片来做说明。

Nimble核心的CASL架构全称Cache-Accelerated SequentialLayout(缓存加速的顺序布局),上图为写优化的数据布局。首先(随机)写入的数据块在NVRAM中做线内压缩,然后合并为固定尺寸完整的条带,并发写入到机械硬盘RAID组;同时将热数据副本写入SSD,以优化后续的读性能。

由于将小块的随机写合并成了大块顺序写,Nimble认为CASL的写入性能不比全闪存阵列差,而且延时就是NVRAM的延时。这时我很自然地联想到NetApp WAFL(写任意位置布局),同样是优秀的随机写性能,并使用PCIe闪存卡来做只读缓存。

尽管NetApp一开始没有数据压缩(最近应该是在AFF全闪存型号上有加入?这方面我了解有限),小块数据在NVRAM中合并的机制可能也没有Nimble先进?但可以比较明显看出技术上的一脉相承,听说Nimble的研发人员有一部分就来自NetApp

那么,对于NetAppWAFLZFS相对较弱的一个方面——随机写之后的顺序读性能,我想Nimble也是同样存在的。我觉得这个要看应用场景了,比如听Nimble演讲的VDI分会场就不怎么受到这个影响,因为在高度虚拟化环境下来自虚拟机的顺序IO也被“搅拌”成随机了。

再来看看读,这时NimbleCASL就主要依赖SSD缓存了,对于未命中的数据需要从磁盘中读取。缓存预取和淘汰算法我感觉也无外乎MRU(最近使用)和MFU(最常用)两种,这方面与NetAppZFS没有本质区别。

这种固态混合存储,在VDI等热数据相对集中的应用中表现会比较好,但如果没有明显的数据热点,还是像VSANCompellent等全闪存方案性能会更好。听说Nimble后来也推出全闪存配置了?竞争力如何我不太清楚。

NimbleSSD不进行RAID保护,其中如有故障也只是影响读性能(因为没有唯一数据,这是缓存和分层的一个重要区别),HDDRAID保护级别支持3块校验盘,这又让我想起了ZFSRAID Z3ZFS是事物型文件系统,它的随机读操作也要一次读取一个完整条带(即RAID组所有成员盘),因此其读性能主要靠ARC内存和L2ARC闪存缓存来弥补。当然,也有存储厂商宣称用纠删码实现了三重校验。Nimble具体实现的方式我还不清楚,因此这一点不做判断。

总之,个人认为NimbleCASL一部分是在已有技术基础上的改良,而非XtremIO那样较为接近推倒式的创新。其成功原因,也不排除有商业方面的因素。比如今天Nimble说他们的阵列软件功能全免费(这点戴尔EqualLogic也一直如此)——如果不比NetApp卖得贵?软件还白送的话,成长快也不奇怪吧。当然有个前提是,产品要先做好,不能光飚数字还要成熟稳定。

类似的例子还有TegileZFS文件系统有很多地方像NetApp,通常人们认为它不是太以性能见长,而Tegile这家初创公司却基于ZFS研发了闪存阵列。看来事在人为,还是在于优化。


:本文只代表作者个人观点,如有错误和不足之处欢迎批评指正。点击“阅读原文”可访问文中引用的超链接,以及发表评论。

重要提示:请在本公众号发布2天后,才能转载本文,有疑问请联系作者。尊重知识,请必须全文转载,并包括本行及如下二维码。

感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage


长按二维码可直接识别关注

历史文章汇总:http://blog.sina.com.cn/firegl

 
企业存储技术 更多文章 更正:硬盘Medium Error≠介质错误,性能差异另有原因 低温杀手?Exadata硬盘20℃降速问题分析 Redfish:下一代数据中心管理标准 3U机箱中多了些啥?Dell SC7020硬件解析 再聊OpenStack块存储-Cinder Revisited
猜您喜欢 JavaScript的计时器的工作原理 【转】20 个超棒的 JavaScript 图表库! 七大理由告诉你选择买Android手机,没那么困难 在Android应用中使用Clean架构 从学生到游戏开发者: 我学到的五件事。