高维BWRAID跨节点多控制器间的状态一致性保障机制

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:mashangdenglu998
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
数据容量的爆炸式增长,使得多控制器、多节点的存储系统成为发展趋势,而这类存储系统往往面临着状态(即元数据)一致性问题。高维BWRAID是多控制器、多节点的集群存储系统,它是一种副本结合纠删码的网络RS-RAID,具有高性能、高磁盘空间利用率、高可靠的优良特性。高维BWRAID使用状态位图,采用两阶段提交方法解决副本转换纠删码过程中的Write Hole问题。它同样面临着跨节点多控制器间的状态一致性问题亟待解决。本文的主要贡献和创新点如下:  针对控制器失效接替问题,设计实现一致性状态同步机制。采用主从控制器的方式,结合状态同步时机与状态回滚策略,从同步次数和同步内容两个角度出发,设计了一种网络交互次数和传输量均为最低值的状态同步方案。同时实现了从控制器收到网络同步信息后操作的全异步化,减少了主控制器的网络同步等待时间。本机制中,条带的1次转换仅需2次网络交互,并且网络开销降低到了同类存储系统Hybrid-RAID网络开销的50%以下。测试结果表明,本机制对小粒度(不满条带粒度)写性能无影响;对于大粒度写,千兆网和万兆网环境下顺序写性能平均损失分别为8.39%和4.56%,随机写性能平均损失分别为11.74%和4.63%。这是一种网络交互次数少,同步内容少的低开销一致性状态同步机制,保障了控制器失效接替场景下的系统正确性。  针对全掉电重启时的状态丢失问题,设计实现一致性状态重建机制。提出属性位图方法,避免使用昂贵的NVRAM设备,也不直接持久化状态位图到普通磁盘。而是使用普通磁盘持久化属性位图,全掉电重启后通过属性位图根据判断规则恢复出状态位图。得益于精简配置设备的属性位的写时捎带下刷,和remap时捎带转移的功能设计,写流程未增加IO交互次数和网络交互次数。属性位图机制巧妙地结合了NVRAM和普通磁盘各自的优点,使得存储成本低,带宽开销少,时延影响小,并避免引入新的故障点。在全掉电重启的一致性状态重构流程中,恢复内存中的状态位图和属性位图的判断规则简单,操作步骤精简。相对NVRAM的状态持久化方案,存储成本降低了16.5%-22%。经测试,本机制对小粒度写性能无影响;对大粒度写,顺序写的平均性能损失为7.11%,随机写的损失为5.12%。模拟测试存储容量为1PB的16+4的网络RS-RAID系统,全掉电重启恢复一致性状态的时间为12s左右。这是一种存储成本低、性能影响小的低开销的状态重建机制,保障了在全掉电场景下的一致性状态恢复。  将上述两部分构成的状态一致性保障机制应用到高维BWRAID系统中,压力测试下系统整体写性能损失平均仅为5%-6%。高维BWRAID跨节点多控制器间的状态一致性保障机制,有效且低开销地解决了控制器失效接替和全掉电重启时的系统正确性问题。
其他文献
随着计算机应用的深入开展和业务需求的增长,企业对IT系统的发布提出了更高的要求。传统的人工手动部署反应慢、过程复杂和不可控制,造成上线周期过长,导致了新功能的堆积、系统
双隐层主题模型是主题模型的一个变种。传统的主题模型方法比如LDA,PLSA都是单一隐层,对应着文本的主题变量,因而能够对文档的主题进行建模。而双隐层主题模型具有双隐变量,分别
碰撞检测技术是指检测虚拟场景中两个或多个物体对象之间是否碰撞,何时碰撞,何处碰撞等问题。碰撞检测技术在计算机游戏,物理仿真,虚拟技术,计算动画等领域得到广泛的应用。因其算
面向对象的组件开发方法采用全新的方法论,对很多经验不足的程序员来说,难以理解。加上结构化思想的干扰,使很多采用面向对象方法的应用开发并不能体现出优势。在这种情况下,采用
分布式总账自2009年由中本聪首次提出后,经过短短几年时间就取得了巨大发展,并自2013年起引起了学术界和工业界的广泛关注。与传统银行总账不同,分布式总账采用去中心化方式管理
随着互联网上的信息不断膨胀以及信息形式的日渐多元化,通用搜索引擎所需要采集、索引和查询的内容越来越多,然而面对庞大的搜索返回结果,用户寻找自己所需要的信息是一件很
随着互联网的飞速发展,不仅改变了人们的生活方式,也产生了巨大的信息资源。如何从海里的信息资源中高效准确地获取到知识成为了大数据时代亟需解决的问题。在众多的知识获取方
车辆监控系统的研究是集全球卫星定位系统(GPS)、地理信息系统(GIS)和无线通讯技术为一体产生的一个崭新的领域。它从系统的角度,考虑了人、路、车以及环境四个方面的因素。
为了提高测试效率,缩短软件开发周期,自动化软件测试受到越来越多的关注。单元测试作为测试工作的第一步,对软件中的最小单元模块进行测试。任何模块都不是独立的,可能需要调
大数据计算是在一定的时间约束下完成大规模数据处理的计算。在应用形态上,大数据计算以数据为中心,数据的多样性、对于数据处理的时间约束的多样性、应用领域的多样性决定了大