非结构化数据存储系统
产品背景
当今世界随着越来越多的电子设备(PC机,平板电脑,智能手机等)连接到互联网上,网络上的在线数据急剧增长。在2002年,互联网在线数据量为5EB,到了2009年就激增至281EB。时至今日,线上数据量还在以超过摩尔定律的速度在增长,这无疑就为数据的存储和管理带来了极大的挑战,这些数据要怎样才能有效且高效地存储和管理呢?很自然的一个解决方案就是分布式存储!
分布式存储并不是一个新鲜的概念,可以说上世纪已有之,主要分为两种:DAS (Directed Attached Storage)和 FAS (Fabric Area Storage)。所谓DAS,如图一所示结构非常简单,在一个局域网(LAN)内把所有的机器连接在一起,如果存储有压力就直接添加一台带有磁盘阵列的服务器到局域网上。这种分布式的方式非常简单,对于数据量并不很大的应用确实非常简单实用,但如果应用数据量很大就需要不断添加服务器和磁盘阵列,一来维护代价比较昂贵,其次就像图中所描述的那样,这些服务器可能在运行不同的操作系统或者使用不同的存储介质,这样的话,服务器与服务器之间各自为政根本就无法共享数据。另一种分布式方法则是FAS,这种方法如图二,将所有的存储介质聚集到一块儿通过一个统一的Server来进行调度和管理。通过这种方式,FAS在进行容量上的扩展时只需要添加存储介质即可。此外,因为使用一台服务器统一管理所有的元数据,所以FAS的数据共享方面要DAS强得多。
对于存储虚拟化厂商来说,他们不一定会使用统一的虚拟化方法,实现上也各自差异,那么什么样的存储虚拟化方法才算是好的呢,下面可以简单地列举出几个标准:
1)通过虚拟化集成可以有效地提高存储资源;
2)在实现虚拟化的时候不可以增加系统配置管理的难度;
3)虚拟化不能只针对一方面,譬如说不能只为了提高系统的性能而使得可扩展性降低;
4)提供安全机制以确保共享存储资源的用户之间不会互相影响;
5)不可以是私有的虚拟化,例如只支持自己品牌的存储设备而不支持其他品牌的存储设备;
根据以上五个标准基本上对于一个虚拟化策略可以进行一些好坏的判断。本产品ADS便是基于以上标准设计的一个非结构化数据存储系统。
二、前提和设计目标
1、硬件错误是常态,而非异常情况,ADS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是ADS的核心架构目标。
2、跑在ADS上的应用与一般的应用不同,它们主要是以二进制批量流数据读为主,做批量处理;比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。
3、ADS以支持大数据集合为目标,一个存储在上面的典型文件大小一般都在千兆至T字节,一个单一ADS实例应该能支撑数以千万计的文件。
4、 ADS应用对文件要求的是write-one-read-many访问模型。一个文件经过创建、写,关闭之后就不需要改变。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。典型的如MapReduce框架。
5、移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近,比之将数据移动到应用所在显然更好,ADS提供给应用这样的接口。
6、在异构的软硬件平台间的可移植性
二、ADSMasterNode和ADSSlaveNode
ADS采用master/slave架构。一个ADS集群是有一个ADSMasterNode和一定数目的ADSSlaveNode组成。ADSMasterNode是一个中心服务器,负责管理文件系统的命名空间和客户端对文件的访问。ADSSlaveNode在集群中一般是一个节点一个,负责管理节点上它们附带的存储。在内部,一个文件其实分成一个或多个block,这些block存储在ADSSlaveNode集合里。ADSMasterNode执行文件系统的命名空间操作,例如打开、关闭、重命名文件和目录,同时决定block到具体ADSSlaveNode节点的映射。ADSSlaveNode在ADSMasterNode的指挥下进行block的创建、删除和复制。ADSMasterNode和ADSSlaveNode都是设计成可以跑在普通的廉价的运行linux的机器上。ADS采用java语言开发,因此可以部署在很大范围的机器上。一个典型的部署场景是一台机器跑一个单独的ADSMasterNode节点,集群中的其他机器各跑一个ADSSlaveNode实例。这个架构并不排除一台机器上跑多个ADSSlaveNode,不过这比较少见。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。