1、DataFunSummitDataFunSummit#20242024京东统一存储实践京东统一存储实践王腾蛟-京东零售-数据开发工程师岗0101 概况简介概况简介0202 跨域存储跨域存储目录目录 CONTENTCONTENT0303 分层存储分层存储1 概况-京东数据平台整体架构可视化分析(BIEngine)数据服务(Easy Data)统一元数据服务实时开发平台(Easy Real Time)埋点管理数据集成(离线、实时)MySQL/PG/ES/Hbase/MongoDB/Redis日志系统计算存储层工具层服务层采集层数据源标签开发工具(Easy Label)可视化大屏(JDV)任务调度(
2、Buffalo)百万级任务离线调度离线计算引擎(Hive/MR/Presto/Spark)实时计算引擎(Flink/SparkStreaming)多维分析引擎(OLAP)数据存储(HDFS、数据湖)EB级存储 数十PB级日增 万级存储节点数据建模工具(Easy Model)应用层运维系统服务器管理部署系统运营系统服务编排监控系统标签应用用户运营(CDP)2 跨域存储-问题京东存储进化1:多机房隔离部署,不具备跨机房容灾能力2:机房间数据同步通过distcp进行,元数据多份存储,数据一致性无法保证3:多份数据存储,单位存储成本高4:跨机房专线不受控问题机房独立部署三地多中心,跨域存储架构2 跨域
3、存储-架构基于跨机房存储整合主站大数据数据节点,实现“全量存储+全网拓扑=跨机房故障域”,实现大数据关键数据异地容灾及跨机房存储能力。工作挑战:单集群规模 数W+机房拓扑 跨域补块与流控 跨域心跳和块汇报方案优势:强一致性:全局文件一致性 复用原理:自主跨机房补块 易迁移 :数据异动成本低 高可用 :支持跨机房切换架构特点成果基于RBF+OBS+NN 多机房部署架构支持跨域灾备切换,并提升集群70%读性能,通过聚合写提升集群50%写性能基于跨域存储特性,完成PB级别数据迁移,相对于传统方案 从人天工时计算 提升350%2 跨域存储 拓扑与数据存储这个节点属于哪个机房?基于现有网络拓扑,新增机房
4、概念,实现全网拓扑1:RPC请求携带机房信息2:兼容旧版本,元数据节点基于ip自助计算数据分布1:XATTR属性扩展2:数据分布A:3:1,B:2:0,C:2:0 3:状态等其他跨域属性2 跨域存储 跨域数据流异步 同步 A 机房 B 机房2 跨域存储 跨域补块补块变更新写入的数据,上面讲到跨域目录下新增文件,会先写入一个机房,写入完成后,再跨机房拷贝增量需要变更跨域属性的目录1:新增跨域标签2:删除跨域标签3:修改跨域标签(目录rename)存量处理存量跨域数据的异步线程异步更新器存储需要跨机房补数的块跨域补块队列复用RedundancyMonitor线程 处理跨域补块跨域补块处理线程2 跨
5、域存储 异步更新器1:按照优先级处理优先级可以通过api动态下发,可以根据不同业务的优先级设计不同的等级。相同优先级 内部轮训处理,避免相同优先级大目录打标影响到其他目录处理异步更新器2:内部存在处理限速a):避免大量数据块加入补块队列中,影响NN性能b):可以保证处理过程中新加入高优先级目录优先处理完成补块2 跨域存储 跨域流控数据跨域拷贝机房ADNDN机房BDNDN跨机房拷贝补块任务下发限速器跨域补块队列优化过程限速优化过程1:从单一跨域补块队列到按机房拆分的多个补块队列1:从单一限速器拆分为多个限速器2:从单一指定大小,到可依据专线使用量动态调整大小2 跨域存储 跨域流控-读写数据数据读
6、写根据客户端RPC携带的机房信息,返回指定的存储节点,可避免90%以上的跨机房读写流量根据ip获取机房信息读数据:a):机房存在可读的数据块,返回机房数据块 b):机房不存在可读数据块,做降级处理,多次降级之后仍然无法读取数据,则返回所有的数据块,并按照机房距离和读权重排序写数据:a):跨域标签中有这个机房,则返回这个机房的存储节点写入数据 b):跨域标签没中有这个机房,则返回主机房存储节点写入数据 机房信息为空读数据:a):做降级处理,多次降级之后仍然无法读取数据,则返回所有的数据块,并按照机房距离和读权重排序写数据:a):返回主机房存储节点写入数据机