最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

数据存储系统的 80/20 法则

[复制链接]
跳转到指定楼层
楼主
发表于 2015-2-4 20:43:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
80/20 法则通常被认为是源于意大利经济学家维尔弗雷多·帕累托。帕累托出生于1848年,他是(至少被认为是)占领运动的早期成员之一。他发现意大利国家财富的80%是掌握在几乎少于20%的人口手中的。由此发散开来看,80/20法则在其他方面的应用同样值得注意,也是很有趣的:因为帕累托观察发现他的园子里的80%的豌豆产自于20%的作物上(他似乎更喜欢数豌豆而不是其他豆子,哈哈)。无论如何,帕累托是不相信均匀分布的理论的。
帕累托原则,以及由此而来的统计学观点“帕累托分布”被看作是统计学幂率的一个实例,它在理解存储器访问模式上也有出人意料的相关性。这就是为什么应用负载、访问磁盘的问题更接近于帕累托分布而不是均匀的随机分布:即大部分的I/O请求访问少量的热门数据,而大量的冷门数据的访问频率远低于此。
我们的系统是由冷数据和热数据混合组成的,这是一个众所周知的事实。混合介质存储系统技术引起了热烈的争议,它也被应用于为Facebook这种规模的应用程序设计存储系统。问题就在这里:通过给数据分配不均等的资源可以给类似帕累托分布的结构更好的支持。使用多种存储介质来代替同介质存储系统,这样的分配就可以让我们从那些不经常访问的数据处夺来资源补贴给那些经常被访问的数据。
对帕累托原则的误解导致了构建和度量存储系统时的诸多混乱。例如有些闪存芯片供应商坚持认为在单一、同介质的闪存芯片上构建完全基于闪存的存储系统就能很好的满足工作负荷的要求。从这个角度来看,同介质纯闪存的系统还是高效的“共产主义”存储呢。他们理想化的决定投资这种给所有数据分配均等资源的方案,这导致了资源层面的开支与数据访问层面的开支严重不对等,哎,还是在这里多关注一些吧。
让我们看一下真实的工作数据
为了解释存储的工作负载数据到底有多么的不一致,我们来看一组真实的数据。我们最近对11个开发者桌面存储数据进行了为期一年的跟踪记录。随着时间的推移,对这些数据集的分析变得很有趣,因为它包含了一个很长时间段内的大量数据:存储的轨迹记录,比如 SNIA保存的数据就非常的小(一天内的总小时)或者精确度也很低。总的来说,为期12个月的跟踪记录了大概76亿次的IO操作和在5TB存储数据上进行的超过28TB传输量。
我想通过快速的总结这些数据,指出一些有趣的东西,获取能对你的思考如何规划你的数据存储有些帮助。
上面第一个图表,显示的是所有存储数据在结束trace时的时间。5.1TB的数据被存储在11个桌面,3.1TB的数据在整整一年中没有被访问。因此,可以通过一整年都没有被改变数据来决定那些冷数据被存储在哪个位置。
在另一方面,我们看到仅有627GB,或者大约21%的数据有在一个月内被访问。在更短的时间段里,我们看到类似的级数增长。这个初始容量/时间分析,仅仅是用于验证我们对于访问分布的假设,那么,现在让我们看一个更有趣的现象…
32 GB 4.5 TB (35%) 64 GB 5.9 TB (46%) 128 GB 8.0 TB (62%) 256 GB 10.7 TB (84%) 512 GB 12.6 TB (98%) 1 TB 12.8 TB 缓冲大小… …对应的请求量.
如上图所示,我把一年来实际的访问量同逐渐递增的“热门”数据进度条对应起来。通过上图,我们对一年来的访问数据有了两个方面的新认知。第一个认知是:这张图罗列出了所访问的数据量,通过它我们可以计算出命中率。如果使用“最近最少访问”(LRU)模型作为填充高速内存方法,那么我们就可以推断图中上半部分(即缓冲)所提供的请求率是多少。如果你把鼠标滚动到上图中,你就能看到命中率是怎样随着系统中高速内存的增加而增长的。
第二个认知是:通过这张图,我们可以计算出数据的一般性访问成本。不是推断每GB存储上我们所花费的费用,而是看看纯粹访问所花费的费用。我完全随意地选择了最小缓冲的大小,即以32GB为高速缓存的最小单位,此时我计算出每访问1GB的数据所花费为1美元。为了提高命中率,我们不断地增加高速存储的数量,现在我们看看这种情况下会出现怎样的情形。为了提高命中率,你不得不一而再再而三成倍地增加高速缓冲的时候,你会发现实际的数据访问量却在相对的减少。因此,你就会很容易地得出访问数据的成本将会更贵。在我们的例子里,要实现100%的命中率所花费的金钱是我们最初使用最小高速缓存实现35%命中率所花费的11倍多。
确定进行不同投入
现在,我们要弄清楚我上面所讨论的事情:我讨论的不是你应当满足35%的命中率。相反,我讨论的是:你花费在访问存储条尾部的资金–即花费在提高根本就没有任何访问的3.1TB性能方面的资金-可能没有花费到正确的地方。我认为资金花费在提高较热门数据访问性能方面会更好一些。
这就是近来我在存储讨论日的第六期或多或少提到的,同时在Coho office的一系列生动的博客日志中提出来的论点。我还说明了当今存储技术方面正在发生的某些显著的技术革新,尤其是现在三种大量使用的固态存储的连接方式(SATA/SAS SSDs,PCIe/NVMe和NVDIMM),它们每一种的费用和性能都差别非常大。
因此,为了获得优异的性能,即便不使用磁盘,存储系统仍然需要使用多种介质,实现混合存储。我发现这就是”混合存储“和”全闪存阵列”(AFA)被误解的原因。对仍然使用磁盘做存储者来说,混合存储系统并不是一个廉价存储系统,它只是一个把更多的钱花费在存放热门数据的高性能存储上的一种存储框架。与此类似,全闪存阵列(AFA)也可以由三个(或者更多)种存储介质组合而成,这也是混合存储。
Coho的存储栈持续不断地监视和描绘工作负载,并适当地分配存储以提高性能,同时汇报你所运行的应用的工作性能。不久前,我们在顶级系统研究会议上发布了令人激动的新算法。如果你想了解更多,(上面链接处)我的存储讨论日展示概要地介绍了工作负载监控和自动分级设计,即分层设计。
非均匀分布无处不在。正是由于帕雷托的观察,各种类型的系统设计才得益于集中力量尽可能高效地做最流行的事情这样的理念。类似这样的设计也使得高速公路和乡间公路设计、中心城市交通系统设计、互联网核心路由设计以及 许多Netflix入门级系列课程设计上都有所不同。存储系统也不例外,而且建设存储系统需要仔细地对工作负载响应进行分析,这样才能正确地确定存储规模,适应存储工作区的特性。
结尾语:
这篇文章最顶端的图片是一张旧的讽刺斯科特纸巾商业公司的图片。其社交网页上对其的评论。
非常感谢Jake Wires和Stephen Ingram,他们投入了大量的工作对这篇文章所采用的数据进行跟踪采集、处理和分析。这儿进行的大量分析是对Coho的Counter Stack引擎查询后得到的结果。还要感谢Stephen帮助开发和调试了界面功能,它使用了由Mike Bostock开发的优秀的D3js库。
本文由开源中国几点人, toddlt, 无若, crab2313, 一刀 翻译。


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-6-16 01:38

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表