对于分布式存储的若干看法

Q: 现在领域内对于分布式存储的应用场景是否有比较明确的分类?比如冷热,快慢,大文件小文件之类的?

分布式存储的应用场景相对于其存储接口,现在流行分为三种:

1. 对象存储: 也就是通常意义的键值存储,其接口就是简单的GET,PUT,DEL和其他扩展,如七牛、又拍,Swift,S3、

2. 块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RBD(RBD是Ceph面向块存储的接口)

3. 文件存储: 通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的 CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。

按照这三种接口和其应用场景,很容易了解这三种类型的IO特点,括号里代表了它在非分布式情况下的对应:

1. 对象存储(键值数据库): 接口简单,一个对象我们可以看成一个文件,只能全写全读,通常以大文件为主,要求足够的IO带宽。

2. 块存储(硬盘): 它的IO特点与传统的硬盘是一致的,一个硬盘应该是能面向通用需求的,即能应付大文件读写,也能处理好小文件读写。但是硬盘的特点是容量大,热点明显。因此块存储主要可以应付热点问题。另外,块存储要求的延迟是最低的。

3. 文件存储(文件系统): 支持文件存储的接口的系统设计跟传统本地文件系统如Ext4这种的特点和难点是一致的,它比块存储具有更丰富的接口,需要考虑目录、文件属性等支持,实现一个支持并行化的文件存储应该是最困难的。但像HDFS、GFS这种自己定义标准的系统,可以通过根据实现来定义接口,会容易一点。

因此,这三种接口分别以非分布式情况下的键值数据库、硬盘和文件系统的IO特点来对应即可。至于冷热、快慢、大小文件而言更接近于业务。但是因为存储系统是通用化实现,通常来说,需要尽量满足各种需求,而接口定义已经一定意义上就砍去了一些需求,如对象存储会以冷存储更多,大文件为主。

Q: 实现思路方面是否又有一些通用的分类法?

实现上主要有两层区别:

1. 系统的分布式设计: 主从、还是全分布式或者是兼而有之,目前现在存储系统因为一致性的要求,以主从为主。

2. 底层的单机存储: 一种是依赖本地文件系统的接口,如GlusterFS,Swift,Sheepdog,Ceph。一种是依赖块接口的,目前只知道Nutanix是使用这个的(http://stevenpoitras.com/the-nutanix-bible)。最后一种是依赖键值接口的,目前应该只有Ceph是支持(Ceph支持多种单机存储接口)。第一种依赖文件系统是因为分布式存储系统本身已经够复杂,实现者很难从上层一直到底层存储都去实现,而本地文件系统已经是一个通用化并且非常成熟的实现,因此分布式存储系统绝大部分(上述提到的都应该是)都会直接依赖本地文件系统。第二种接口目前只知道Nutanix 是支持的(传统的存储厂商的存储产品一般会使用这种方式),这种接口也就是比第一种去掉了文件系统层,实现一个简单的物理块管理即可。第三种它的主要原因是“存储定义”和对象存储的普及,希望硬盘来提供简单的键值接口即可,如希捷的Kinetic API(https://github.com/Seagate/Kinetic-Preview),FusionIO的 NVMKV(https://github.com/opennvm/nvmkv),这种接口另一方面是闪存厂商非常喜爱的,因为闪存的物理特性使得它支持键值接口比快接口容易得多,目前Ceph是支持这种接口,而希捷和华为最近推出了IP硬盘(http://net.zdnet.com.cn /network_security_zone/2013/1024/2993465.shtml),听说已经实现了Swift上的原型。

(从这里可以发现,分布式存储系统是在传统的单机接口上重新包装了一层,然后实现三种类似的接口)

Q: 另外,对于不同的实现方案,分布式存储系统的性能是可以直接测试的,但理论可用性、数据可靠性的计算方式是不同的。UOS Cloud现在是Ceph方案,你们是怎么做这个计算的?

实际上这个计算是需要依赖于存储系统本身的,Ceph的优势是提供了一个叫CRush算法的实现,可以轻松根据需要来规划数据的副本数和高可用性。参考Ceph提供的模型定义(https://github.com/ceph/ceph-tools/blob/master/models /reliability/README.html)来规划自己的。这是我的同事朱荣泽做的故障计算。这个计算只针对副本策略,并不适合使用EC(擦除码)的情况。

硬盘发生故障的概率是符合泊松分布的。

 fit = failures in time = 1/MTTF ~= 1/MTBF = AFR/(24*365)
事件概率 Pn(λ,t) = (λt)n e-λt / n!

我们对丢失数据是不能容忍的,所以只计算丢失数据的概率,不计算丢失每个object的概率。

 N代表OSD的个数
R代表副本数
S代表scatter width,关系着recovery时间
我们忽略Non-Recoverable Errors的概率

计算1年内任意R个OSD发生相关故障概率的方法是

 1年内OSD故障的概率。
在recovery时(R-1)个OSD发生故障的概率。
以上概率相乘。假设结果是Pr

因为任意R个OSD不一定属于Ceph的Copy Sets,则Ceph的丢失Copy Sets的概率是:

 M = Copy Sets Number
在N个OSD中,任意R个OSD的组合数是 C(R,N)
丢失Copy Sets的概率是 Pr * M / C(R, N)。

最终公式是:

P = func(N, R, S, AFR)

本文作者:佚名

来源:51CTO

时间: 2024-08-03 19:06:35

对于分布式存储的若干看法的相关文章

HDFS的工作机制,HDFS写数据流程,HDFS读数据流程(来自学习资料)

4.hdfs的工作机制 (工作机制的学习主要是为加深对分布式系统的理解,以及增强遇到各种问题时的分析解决能力,形成一定的集群运维能力)   注:很多不是真正理解hadoop技术体系的人会常常觉得HDFS可用于网盘类应用,但实际并非如此.要想将技术准确用在恰当的地方,必须对技术有深刻的理解 4.1概述 1.        HDFS集群分为两大角色:NameNode.DataNode  (Secondary Namenode) 2.        NameNode负责管理整个文件系统的元数据 3. 

Hadoop的namenode的管理机制,工作机制和datanode的工作原理

HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapreduce,spark,tez,--)提供数据存储服务 3)重点概念:文件切块,副本存放,元数据 1:分布式文件系统(Distributed File System): (1):数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需

用户研究:老年用户网站可用性若干思考

文章描述:关于老年用户网站可用性的若干思考. 在西方大部分国家,大多都是老龄化社会,如英国2001年政府调查报告称,英国60岁以上的人口已经超过了16岁以下的人口.由于西方的互联网起步比较早,老年的用户更多,关于老年用户的可用性研究也很普遍了. 而目前中国已经开始进入老龄化社会,中国的 互联网也不再是年轻人的世界.艾瑞咨询调查显示 中国的网民年龄结构趋于均衡,中高年龄层用户增长迅速.截至2010年6月,20~30岁的网民由2000年的61.0%逐渐缩减为28.1%,占比最小的31~40及40岁以

对学习编程的一些粗浅看法

大概是因为这个网站叫编程入门网的缘故,网站信箱经常收到编程学习方面的问题.感觉总这样回信也不是办法,所以才有了这篇文章.文章置顶到首页后每个人都能看到,这大概是一个一劳永逸的方法. 说明一下:本人不是专家,手也不高,以下所说的只是我对网友常见问题的个人看法,仅供参考.如果能为别人提供一点点帮助,那么我会感到荣幸之至. 一.编程好学吗?多长时间才能学会编程? 这个因人而宜.通常情况下,从实现第一个"Hello World",到比较熟练的编写代码,这个过程可能比学习其它的计算机技术要长一些

Ceph分布式存储实战.

云计算与虚拟化技术丛书 Ceph分布式存储实战 Ceph中国社区 著 图书在版编目(CIP)数据 Ceph分布式存储实战/Ceph中国社区著. -北京:机械工业出版社,2016.11 (云计算与虚拟化技术丛书) ISBN 978-7-111-55358-8 I. C- II. C- III. 分布式文件系统 IV. TP316 中国版本图书馆CIP数据核字(2016)第274895号 Ceph分布式存储实战 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编

OceanBase分布式存储引擎公共模块——内存管理

OceanBase分布式存储引擎公共模块--内存管理 内存管理是C++高性能服务器的核心问题.一些通用的内存管理库,比如Google TCMalloc,在内存申请/释放速度.小内存管理.所开销等方面都已经做得相当卓越了,然而,我们并没有采用.这是因为,通用内存管理库在性能上毕竟不如专用的内存池,更为严重的问题是,它鼓励了开发人员忽视内存管理的陋习,比如在服务器程序中滥用C++标准模板库(STL). 在分布式存储系统开发初期,内存相关的Bug相当常见,比如内存越界.服务器出现Core Comp,这

乔治·索罗斯若干思想及其思考

一.索罗斯的哲学思想架构及其演变 1. 索罗斯思想的哲学来源 通过一段时间的学习和研究,作者深深感到,索罗斯在金融市场成功运作和影响巨大的一个重要原因或独特特征,是其具有深刻的哲学基础及其自我领悟的思想理念.因此,要真正认识索罗斯思想,必须首先了解其哲学基础及其自我形成的世界观.索罗斯明确表示,他的思想形成主要是受到英国著名科学哲学家卡尔.波普(Karl.Popper)科学哲学思想及其开放社会观念的深刻影响.他说"我受到波普很大的影响,不只是受他<开放社会及其 敌人>这本著作的影响,

Ceph分布式存储实战 1.1 Ceph概述

初识Ceph 1.1 Ceph概述 1. Ceph简介 从2004年提交第一行代码开始到现在,Ceph已经是一个有着十年之久的分布式存储系统软件,目前Ceph已经发展为开源存储界的当红明星,当然这与它的设计思想以及OpenStack的推动有关. "Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability."这句话说出了Ceph

电子邮件(E-mail)证据若干问题研究

电子邮件(E-mail)是通过Internet或者Intranet等网络,从 终端机输入文件.图片或者声音等,通过邮件服务器传送到另一端的终端机上的信息.电子邮件是目前人们在虚拟的网络空间中使用频率最高的通讯方法.随着Internet的飞速发展,这种以电子邮件通信方式一旦发生纠纷,其是否能够成为证据.成为证据的条件是什么.是诉讼中如何取证,是亟待解决的问题.一.电子邮件能否作为证据电子邮件能否作为证据,我国目前尚无规定,但电子邮件已被现代经济社会所接受却是现实.电子商务.电子教育.电子政府等是现