加载中 ...
非结构化数据存储系统
单一节点的ADSMasterNode大大简化了系统的架构。ADSMasterNode负责保管和管理所软件开发有的ADS元数据,因而用户数据就不需要通过ADSMasterNode(也就是说文件数据的读写是直接在ADSSlaveNode上)。
三、文件系统的命名空间
ADS支持传统的层次型文件组织,与大多数其他文件系统类似,用户可以创建目录,并在其间创建、删除、移动和重命名文件。ADS不支持user quotas和访问权限,也不支持链接(link),不过当前的架构并不排除实现这些特性。ADSMasterNode维护文件系统的命名空间,任何对文件系统命名空间和文件属性的修改都将被ADSMasterNode记录下来。应用可以设置ADS保存的文件的副本数目,文件副本的数目称为文件的重点节点数,这个信息也是由ADSMasterNode保存。
四、数据复制
ADS被设计成在一个大集群中可以跨机器地可靠地存储海量的文件。它将每个文件存储成block序列,除了最后一个block,所有的block都是同样的大小。文件的所有block为了容错都会被复制。每个文件的block大小和重点节点数都是可配置的。重点节点数可以在文件创建的时候配置,以后也可以改变。ADS中的文件是write-one,并且严格要求在任何时候只有一个writer。ADSMasterNode全权管理block的复制,它周期性地从集群中的每个ADSSlaveNode接收心跳包和一个Blockreport。心跳包的接收表示该ADSSlaveNode节点正常工作,而Blockreport包括了该ADSSlaveNode上所有的block组成的列表。
1、副本的存放,副本的存放是ADS可靠性和性能的关键。ADS采用一种称为rack-aware的策略来改进数据的可靠性、有效性和网络带宽的利用。这个策略实现的短期目标是验证在生产环境下的表现,观察它的行为,构建测试和研究的基础,以便实现更先进的策略。庞大的ADS实例一般运行在多个机架的计算机形成的集群上,不同机架间的两台机器的通讯需要通过交换机,显然通常情况下,同一个机架内的两个节点间的带宽会比不同机架间的两台机器的带宽大。
通过一个称为Rack Awareness的过程,ADSMasterNode决定了每个ADSSlaveNode所属的rack id。一个简单但没有优化的策略就是将副本存放在单独的机架上。这样可以防止整个机架(非副本存放)失效的情况,并且允许读数据的时候可以从多个机架读取。这个简单策略设置可以将副本分布在集群中,有利于组件失败情况下的负载均衡。但是,这个简单策略加大了写的代价,因为一个写操作需要传输block到多个机架。
在大多数情况下,重点节点数是3,ADS的存放策略是将一个副本存放在本地机架上的节点,一个副本放在同一机架上的另一个节点,最后一个副本放在不同机架上的一个节点。机架的错误远远比节点的错误少,这个策略不会影响到数据的可靠性和有效性。三分之一的副本在一个节点上,三分之二在一个机架上,其他保存在剩下的机架中,这一策略改进了写的性能。
2、副本的选择,为了降低整体的带宽消耗和读延时,ADS会尽量让reader读最近的副本。如果在reader的同一个机架上有一个副本,那么就读该副本。如果一个ADS集群跨越多个数据中心,那么reader也将首先尝试读本地数据中心的副本。
3、SecondSlaveMode
ADSMasterNode汇海后会进入一个称为SecondSlaveMode的特殊状态,处在这个状态的ADSMasterNode是不会进行数据块的复制的。ADSMasterNode从所有的 ADSSlaveNode接收心跳包和Blockreport。Blockreport包括了某个ADSSlaveNode所有的数据块列表。每个block都有指定的最小数目的副本。当ADSMasterNode检测确认某个ADSSlaveNode的数据块副本的最小数目,那么该ADSSlaveNode就会被认为是安全的;如果一定百分比(这个参数可配置)的数据块检测确认是安全的,那么ADSMasterNode将退出SecondSlaveMode状态,接下来它会确定还有哪些数据块的副本没有达到指定数目,并将这些block复制到其他ADSSlaveNode。
五、文件系统元数据的持久化
ADSMasterNode存储ADS的元数据。对于任何对文件元数据产生修改的操作,ADSMasterNode都使用一个称为Editlog的事务日志记录下来。例如,在ADS中创建一个文件,ADSMasterNode就会在Editlog中插入一条记录来表示;同样,修改文件的重点节点数也将往 Editlog插入一条记录。ADSMasterNode在本地OS的文件系统中存储这个Editlog。整个文件系统的命名空间,包括block到文件的映射、文件的属性,都存储在称为FsImage的文件中,这个文件也是放在ADSMasterNode所在系统的文件系统上。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
分享到微信朋友圈
×
打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。
使用“扫一扫”即可将网页分享至朋友圈。