京东跨域存储实践
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. 京东跨域存储实践
打破数据孤岛实现数据共享
京东零售-数据与智能部
黄涛
3. 目录
01 大数据存储痛点
02 统一协议服务
03 跨机房数据融合
04 异构系统之高密存储
4. 01 大数据存储痛点
随着业务的调整与集群资源的整合需求,集群中的数据也需要进行适配。比
如大数据系统与业务系统资源进行错峰使用,离线在线系统混合部署,或是
业务方整合与迁移,还有集群机房的搬迁,都需要对数据进行重新编排与迁
移,适应新的应用场景。
5. 1.1. 大数据存储痛点 – 混合部署
大数据特点
• 海量数据强依赖机房内部网络
• 调度计算容易,调度存储困难
• 集群利用率存在明显波峰波谷
混合部署
• 优势:有效错峰利用资源
• 劣势:跨机房的网络访问限制了计算
资源的弹性能力
6. 1.2. 大数据存储痛点 - 跨机房同步
大数据网络
新增机房数据迁移需要业务介
入,成本高时间长
多机房冗余数据成本高,数据
共享和同步的成本高
跨机房容灾和高可用方案不完
善,未充分利用多机房优势
安全网络
Client Client Client
元数据 元数据 元数据
HDFS 集群
HDFS 集群
数据同步
数据同步需要借助外部调度系
统和存储
大数据机房-1
中
转
集
群
数据同步
大数据机房-2
HDFS 集群
数据同步
大数据机房-3
7. 02 统一协议服务
数据生产流程是从在线业务输出到实时机房,然后再搬运到离线机房进行汇
总提供给用户使用,数据搬运成本比较高
为了降低数据搬运成本和突破跨机房带宽的约束,达到用户对任务迁移无感
知的目标,我们设计了基于 RBF 的统一协议服务
8. 2.1 统一协议架构
基于 RBF 实现底层存储的统一访问
•
•
屏蔽底层存储系统的差异
数据的迁移对用户是透明的
9. 2.2 基于 RBF 统一协议 - 挂载与转发
多租户管理 - 命名空间
数据生命周期管理
对接底层存储系统
• 用户接口 hdfs-client
• 扩充接口支持异构系统
• 底层协议识别机制
用户访问管理
• 鉴权:Router/NN
• 目录递归授权
• 多租户管理
oss 挂载 hdfs://rbf-ns/s3/abc s3a://abc
ceph 挂载 hdfs://rbf-ns/cfs/dir file://dir
一对多挂载 hdfs://rbf-ns/user hdfs://ns1/mart;hdfs://ns2/user
hdfs://rbf-ns/abc/ hdfs://ns1/abc
hdfs://rbf-ns/abc/dir hdfs://ns2/abc/dir
嵌套挂载
用户 A 挂载 hdfs://rbf-ns/user/mydir hdfs://ns1/user/mydir
用户 B 挂载 hdfs://ns2/user/mydir
hdfs://rbf-ns/user/mydir
10. 2.3 统一协议转发 - 转发瓶颈
nnbench 压测 Router/NN
NameNode NameNode
Router Router
Router 转发队列拥塞
NN 毫无处理压力
FederationConnectionId
map
map
map
map
map
map
map
map
11. 2.3 统一协议转发 - 隔离慢 NS
通过 RpcProxyTime 统计目的
NS 的响应速度
把访问慢 NS 的请求重新入队
当响应速度恢复时,直接转发
到目的 NS
12. 03 跨机房数据融合
通过上层协议层解决不同服务的数据共享。底层物理层的数据共享需要解决
的是同服务间不同机房的数据共享和同步。
需要解决数据流向,数据管控,机房隔离等挑战
13. 3.1 跨机房存储架构
架构特点
基于跨机房存储整合主站大数据
数据节点,实现“全量存储+全网
拓扑=跨机房故障域”,实现大数
据关键数据异地容灾及跨机房存
储能力。
MetaServer 机房-2
MetaServer 机房-1
跨机房补块
工作挑战:
NN-1
• 集群规模3W+
MetaServer 机房-3
跨机房补块
NN-2 NN-3 NN-1
Observer Observer Observer
跨机房
故障域
NN-2
跨机房补块
NN-3 NN-1 NN-2
Observer Observer Observer
跨机房
故障域
NN-3
跨机房
故障域
• 跨域心跳与块汇报
• 多standby架构
方案优势:
• 强一致性:全局文件一致性
异步
• 复用原理:自主跨机房补块
• 易迁移 :数据异动成本低
• 高可用:支持跨机房切换
DN-1 DN-2 DN-3 DN-4
Block-1 Block-1 Block-1 Block-1
Block-2 Block-2
同步
Block-X
DataServer 机房-1
Block-Y
DN-5
Block-2
Block-Y
Block-X
DataServer 机房-2
DN-6 DN-7 DN-8
Block-1 Block-1 Block-1
Block-2 Block-2
Block-X
DN-9
3:2:2
Block-2
Block-Z
Block-Z
DataServer 机房-3
2:2:2
14. 3.2 跨机房数据流
A 机房
B 机房
• 异步 ↑
• 同步 ↓
ping 时延
同机房 :0.1ms
同地区 :1.0ms
跨地区 :>10ms
15. 3.3 跨机房存储实现 - 核心点
元数据持久化
跨机房选块 - 拓扑管理
• 规则 A:3,B:2,C:2,TimeStamp
• 从 XAttr 到 INode Proto
• NN 重启 - 块属性标记
跨机房读写-数据同步
生产者
依赖
DistCp
依赖
•
•
•
•
•
DN 注册
选块
补块
距离计算
指标统计
机房-1
rack-1
DN
DN
机房-2
rack-2
DN
DN
DN
rack-3
DN
DN
DN
DN
DN
DN
/
消费者
rack-1
跨机房自动同步
DN
一个机房一棵拓扑树
机房-1
HDFS
rack-4
HDFS
DN
DN
机房-2
rack-2
DN
DN
DN
rack-3
DN
DN
一棵大拓扑树
DN
rack-4
DN
DN
DN
DN
16. 3.3 跨机房存储实现 - 核心点
块管理
•
•
•
•
•
跨机房类型块汇报
跨机房块冗余性检查
跨机房带宽管控
返回客户端指定机房的 DN 节点
balancer 机房内部均衡
DN
DN
DN
流控
机房-A
DN
流控
DN
DN
机房-B
DN
DN
机房-C
DN
机房-B
DN
DN
DN
流控
机房-A
DN
DN
跨机房补块策略
机房-C
跨机房属性变迁
/
• 新增与删除属性
dir-1
A:3,B:2
• 目录迁移
dir
dir-2
A:3,B:2,C:2
file
dir
file
待转换队列
跨机房目录迁移
17. 04 异构系统之高密存储
通过计算存储分离隔离相互影响,存储系统机型弱化计算能力,提高磁盘密
度,降低存储成本。
对 HDFS 系统带来的挑战:异构集群管理,存储效率优化
18. 4.1 高密存储性能优化
挑战
• CPU 性能偏低
• 磁盘容量翻倍,转速不变
• 从温冷数据应用场景转到线上
• 固态盘寿命管理
优化
效果
• 采用了NVMe SSD + OpenCAS 缓存加速
方案,以提升 IOPS 并降低时延 • 更高存储,更高性能,更低成本
• 解决开源版本重启数据异常问题 • 读写 IO 时延,高密度存储节点比普通节
点分别降低约 88% 和 66%
• 调优缓存刷新方式,提升 SSD 磁盘寿命
• SSD 盘使用寿命推测可达5 年以上
19. 4.2 高密存储异构集群管理
机房
故障域
• 在机架划分的基础上增加高密节点判断,副本尽可能
均匀分布在高密节点与普通节点上
机架
• 集群存储 balancer
机架
DN 优化
• 启动初期扫盘线程管理
• 存储目录布局:datalayout.subdir.scale
普通盘 普通盘
DN DN
高密盘 高密盘
DN DN
异构集群数据节点网络拓扑
20.