取消
搜索历史
热搜词
原创
活动
创新2.0
I T
产业
当前位置:首页 >互联网•IT > 存储 > 存储系统 > 正文
为什么很难用SSD满足SLA?
来源: chinastor  :ROBIN 2015-08-17 10:33:18
在SSD刚投入使用的时候,人们就说SSD的性能不如预期。随着时间推移,SSD开始变慢。那到底有多慢?又是为什么呢?

在SSD刚投入使用的时候,人们就说SSD的性能不如预期。随着时间推移,SSD开始变慢。那到底有多慢?又是为什么呢?

SSD通常被用于托管虚拟机的服务器。聚合虚拟机创建了I/O混合效果,这可以让SSD的处理性能优于磁盘。

正如韩国首尔大学Jaeho Kim,Donghee Lee和弘益大学Sam H.Noh在《Towards SLO Complying SSDs Through OPS Isolation》一文中指出的那样,SSD远没有达到完美的地步:

在这篇文章中,我们通过经验评估展示了性能SLO对目前商用SSD并不满意。这个结论并不乐观。以下是具体的原因。

实验

研究者们使用一个购买现成的128G的商用级MLC SSD, 并进行了测试。随机写入在4kb-32kb之间,总写入超过SSD容量,就会导致垃圾回收(GC),从而产生损耗。然后,他们用马萨诸塞大学追踪库里的trace测试了每种模式的性能。这些trace被重复播放,向SSD生成了三条真实I/O:金融的、MSN和Exchange。

变量

除了新旧SSD性能外,他们还用一个新SSD上的自有分区测试了每个VM,并且同时在一个新SSD的独立分区上运行了此工作负载。他们用一个旧的SSD又重复了这些测试,以便看到明显效果:

\

单独的IO带宽和VM的同步执行

GC的一个主要作用存在于冗余空间中,即OPS 的title.你可以向一个独立分区定义一个独立VM,而所有分区都可以共享SSD中的冗余空间——至少据作者所知是如此。

垃圾回收(GC)

作者将大规模性能增量归咎于垃圾回收(GC)。对新手而言,闪存的基本单位是page——通常是几KB——都包含在数据块中——通常大小是128kb到512kb。

但是问题在于,整个数据块——而非pages ——都需要被写入,所以随着page的无效化,就出现了无效page不得不被刷新的情况。一旦数据块中无效pages的数量达到阈值,剩下的好的数据就会被重新写入一个新数据块中——和其他有效数据一起——而无效数据会被洗掉。清除一个数据块需要若干毫秒,所以关键在于把GC对抗最小化写入需求的情况转变过来,如此才能将闪存有限的寿命最大化。这是设计让闪存更似磁盘的FTL时所做的考虑。

黑盒子

但是,如研究者所言,由于FTL是专有黑盒,所以不可能知道SSD中到底发生了什么。我们所做的实验表明从SSD外部控制SSD是很难的,因为无法控制GC的内部作业。当多个VM共享一个分区时,GC是性能降低的最合理解释。GC进程会影响多个VM共享分区,从而导致所有的VM速度减慢。

这是另一份图表:

#FormatImgID_1#

(a)传统SSSD中并行工作负载的数据布局;(b)GC期间因工作负载而移动的页面数量。

另一个变量是SSD中冗余的程度。因为闪存比较费钱,而冗余则会增加SSD的成本。冗余或许在个人用户的SSD中占到7%,在企业SSD中则高达35%。还有一个变量是OPS在分区之间共享的方式。如果是page层级的共享,则会有大量额外的数据移动——性能会降低。但,这在FTL的控制之下。

StorageMojo观点

闪存已经革新了企业级数据存储。使用磁盘时,I/O比较费钱。而使用闪存,读取实际是免费的。

但是,如实验报告所示,SSD存在影响其发展的问题。除非厂商们给予用户合适的控制——停止GC的能力应该会有用——SSD将不能发挥全部潜能。

读过实验报告后,本人给出如下建议:

给每台VM一个分区。

在测试SSD的性能前先写入数据。

为GC带来的延时做好备用计划。

祈祷快速,强大的下一代NVRAM早日上市。

ErnstLopesCardozo评论:

或许我们还过于执着SSD有限的写入持久性。现在其价格已然下降,而SSD的I/O单价具有竞争优势,我们应该认为SSD可消费性更高,而且明年技术更新后它将更快更便宜。一旦我们接受这一点,我们就能让GC运算法则变得更具投机性,利用低活跃期为下一轮的高峰期做准备。

Vivek 观点:

在白天暂停GC是个好主意,晚上IO变小时,可以运行GC,然后清理磁盘便于第二天的使用。

William评论:

对于这个测试,我的部分问题在于,他们使用的是你能获取的最小容量的驱动之一。SSD具有伸缩性能,该性能控制得越好,它能处理的闪存芯片就越多。128个字节不足以让SSD有炫耀的资本。

Rob Bergin观点:

好文!如果后端存储仅仅是配备更快速驱动的数列,而并没有供IO混合的粒度控件,那就会出问题。你错过的一个最佳实例——在你的服务器上运行SSD,通过粒度加速策略减少IO混合。

RB评论:

正如William所言,用128G的SSD来做这些并非最佳选择。冗余是有SSD的时候,而容量如此低是不行的。而且,还没写数据,性能已经受到影响,因为被利用的控制器通道数量太小。现在一般的磁盘大小是500G,售价低于$200,再小就没啥意义了。如果你比较执着,那可以使用超快的RAID 10阵列,配有500G可用容量(每个磁盘250G带有50%的冗余)售价约$600-$800。超过这个量就太大了,我倒不在于有GB和GiB的区别,因为这不是关键。

Baruch Even观点:

要从一开始就损耗SSD,那所用的SSD小了些。但是他们或许可以用设计标准低一点,冗余少一点的磁盘。冗余是SSD的关键标准,因为它既影响写入扩大,也影响性能,尤其是性能连贯性。使用较低OP磁盘,磁盘满负荷时,你会看到性能降低,且连贯性受到影响,而且也不会有时间允许数据块上的背景擦除。擦除操作会非常耗能,且在擦除操作之后,读写IO会形成数据块,所以要降低并行,把SSD能耗控制在9W以内。

如果你没有足够的冗余,那么禁用GC没有任何用,因为没有闲置的数据块可供写入。

所以,在任何存储系统中,如果你希望所有用户都有一致的性能体验,那就要确保不要有两种情况出现:一是某个客户占用所有设备资源;二是所有客户一起占用全部资源。否则某些用户的使用就会出现问题。

Mark Gritter观点:

我不认为这篇文章有什么深度,但或许是因为我们已经在实际操作中跟这个问题斗争好几年的原因!Tintri适应了我们为此写入磁盘以便最小化内部GC的方式。一旦磁盘在随机或交错写入上执行GC,性能tank(和内部写放大功能减少了磁盘寿命)。现在正有人提出一个为单独VM制订的方案。从存储厂商的角度来看,最佳方案是固件少一点透明度,这样高级别的文件系统能更容易地适应媒介需求。但是我赞成这份报告的结论,即裸SSD不太可能达到广告所标榜的性能巅峰。

Alessandro评论:

在文章最后你说:“读过实验报告后,本人给出如下建议:让每个VM都有自己的分区。”……手动创建几百个微卷简直就是噩梦……但是我想起了下一个即将到来的VVol API“标准”。我的问题是:

“让每个VM都有自己的分区”能关联到VVol上作为一个有效方案,从而让SSD SLA都派上用场吗?

改进SSD性能对VVol也有益吗?如果有的话,AFA存储所支持的VVol将会成为平衡性能和简化使用的重要条件吗?

阿明点评:

这是一篇美国著名科技博客ROBIN HARRIS在今年6月初发的文章《Why it’s hard to meet SLAs with SSDs?》,SSD虽然因其固有的特性会随着时间的推移而性能会变慢,但是目前许多SSD厂商都在为SSD性能优化与寿命优化给出各自不同的技术支持与创新。

当然,对于用户SLA的满足,不一定必须在SSD上吊死,最近几天美国闪存峰会FMS2015上报道了不少新东西,包括1000万IOPS的闪存阵列、高性能的新闪存卡、NVDIMM的创新、NVMe的闪存技术热点等等。这些这么多创新闪存技术与方案,包括参考架构,足以让用户在SLA满足方面眼花缭乱,因为是创新的技术与方案,还需要经过用户更长时间验证,有过具体实践与部署之后,相信这些技术会逐渐推进到用户身边。

因此,我们在关注SSD与SLA之间的关系的时候,可以将眼光放宽一些,这样有助于我们对闪存未来发展充满信心。否则,容易让我们的思维定势走入死胡同。不过,Disk is Dead不是谣言,而是一种趋势,闪存将取代很大一部分磁盘的空间,迟早会这样的。我们走着瞧吧。

另外有个小知识科普一下:

服务水平目标( SLO,service level objectives)和服务等级协议(SLA:Service-Level Agreement)的含义, SLO 是更高的客户满意度或者适度的客户满意度下更低的Opex,SLO是制定具体业务SLA的驱动。SLA是在一定开销下为保障服务的性能和可靠性,服务提供商与用户间定义的一种双方认可的协定。

编辑:闫春春
关键字:     SSD  SLA 
活动 直播间  | CIO智行社

分享到微信 ×

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。