1 / 37

分布式块 设备

DVD-Distributed block device . 分布式块 设备. 郭栋 092302. 目录. 背景 DBD 简介 客户端 设计 分布式存储策略 综合流程 相关 项目 demo. 背景. Iaas 提供商需要保证系统有高可用性 物理硬件故障无法预测 需要一种冗余备份机制 传统的 RAID 技术成本高,实现复杂 需要一种更灵活更简单的机制. 概念. DBD Distributed block device D: 在 Linux 下以设备方式使用 B: 设备模拟类似磁盘的块设备 D : 网络节点上的块设备数据分块冗余到各个 节点

hagen
Télécharger la présentation

分布式块 设备

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DVD-Distributed block device 分布式块设备 郭栋 092302

  2. 目录 • 背景 • DBD简介 • 客户端设计 • 分布式存储策略 • 综合流程 • 相关项目 • demo

  3. 背景 • Iaas提供商需要保证系统有高可用性 • 物理硬件故障无法预测 • 需要一种冗余备份机制 • 传统的RAID技术成本高,实现复杂 • 需要一种更灵活更简单的机制

  4. 概念 • DBD • Distributed block device • D:在Linux下以设备方式使用 • B:设备模拟类似磁盘的块设备 • D:网络节点上的块设备数据分块冗余到各个节点 • 不是文件系统,不同于HDFS

  5. 主要模块 • 客户端(计算节点) • 虚拟驱动模块(内核态) • 本地缓存服务模块 • 服务端(存储节点) • 存储服务模块 • 服务端缓存模块 • 自动部署、恢复模块

  6. 整体架构 d Tree-group storage cluster Memcachediskcache Client deamon TCP VBD VBD Hypervisor VM VM 客户端 存储集群

  7. 计算节点 Netlink 共享内存

  8. 计算节点组件 tcp App Memcache Ddb client deamon User sp IO system call netlink Kernel sp Diskcache shm Linux kernel Device driver

  9. 组件关系 Dvdb client 控制信号 共享内存 netlink IO请求 Device driver

  10. 缓存策略 • 异步缓存,本地内存+本地硬盘二级缓存 • 内存缓存用哈希表索引,LRU淘汰到硬盘 • 本地硬盘缓存在内存中通过b+tree索引 yes Mem cache Disk cache Read req no no yes TCP read Set cache async

  11. 分布式存储策略 • 数据均匀分布 • 多个拷贝 • 无单点故障 • 一致性哈希存储(sheepdog) • 树组存储(DBD)

  12. 一致性哈希存储(sheepdog) • 每个块设备被分为4M大小的object • 对象id哈希映射到环上 • 采用虚拟节点均衡数据

  13. 另外一种方式 • 一致性哈希缺点: • 数据倾斜 • 虚拟节点容易造成数据丢失 • 节点失效恢复难度大(异构分布式) • 数据难以管理 • 树组存储 • 同构分布+异构分布 • 同构分布:多个数据拷贝 • 异构分布:数据分散

  14. 基本概念 • 组采用树型结构组织 • 每个组由多个物理存储节点构成 • 不同组数据异构 • 相同组数据同构 • 每个节点具有全局视图 • 每个组有唯一32位id,组内节点id相同 • 典型为二叉树形式

  15. 存储逻辑结构 00 01 10 11 00 01 10 11

  16. DBD分布式存储特点 • 数据: • 块设备分为4M大小的元组(tuple) • 每个tuple由唯一64位id索引,从0开始编号 • 前32位为设备id,后32位为tupleid • 最多支持4294967296个设备 • 最每个设备最大为16PB • 物理节点: • 每个节点用32位唯一id编号 • 该编号为逻辑树节点编号 • 数据存储在叶子节点上

  17. 存储方式 • 根据64位tuple id的后32位计算存放的组 • 例子: • Tuple id:0x0000 0000 0000 0002 00 01 10 11 00 01 10 11

  18. 数学模型 • 对于一个树形结构,每个节点可由以下一维向量表示: id:节点的编号 d:节点的度 type:节点类型(内部节点、叶子节点) :该节点第一个数据的id D:该节点所有父辈节点度的积

  19. - 0 1 2 01 11 12 02 002 102 202 3, 0, 1, 0, 0} 2, 1, 1, 2, 0} 3, 2, 1, 2, 6} 0, 3, 0, 14, 18}

  20. 对于给定id的tuple,求其应该存放的节点id • 从根节点开始进行如下递归计算: N=根节点 do{ [(tuple_id-N)/D]%d N= } While(type != 0(叶子节点)

  21. 参数计算 • D=父节点D * 父节点d

  22. 特殊情况(DBD) • 最典型的情况是二叉树,可递归使用异或计算,此时情况会变得特别简单 00 01 10 11 00 01 10 11

  23. 二叉树存储 • 直接用叶子节点id与tuple id的后位进行异或计算,结果为0表示应该存在该节点。 00 01 10 11 00 01 10 11 …10010 …11110

  24. 增加节点(增加存储能力) 01 10 11 01 10 11 100 000 100 000

  25. 增加节点(增加备份) 00 01 10 11 00 01 10 11 00

  26. 节点移除(人为) 00 01 10 11 01 10 11

  27. 复用方式 00 01 10 11 00 01 10 11

  28. 等价效果 0 1 0 1

  29. 存取过程 • 存: • 客户端连接集群中任意一个节点(Load Banlence),如果连接失败,选择另一节点,把tuple发给它,。 • 节点将tuple.id 和各组id进行异或运算,得出目标组信息。

  30. 存取过程 • 随机选择目标组内一个节点(LB),将数据传递给该节点,复制完毕后,进程立即返回,客户端返回写入成功。 • 如果复制失败,该节点失效,发送广播信息到所有节点,通知移除该id节点,同时选择该组另一个节点复制数据。 • 该节点收到数据后,发送组播消息,异步复制数据到同组节点。

  31. 存取过程 • 取: • 客户端连接任意一个集群节点,发送请求(addr, size) • 该节点返回数据所在组的任一个节点ip给客户端,客户端重新连接目标节点,请求数据。

  32. 自动化部署、自恢复 • 新节点加入: • 参数:组id • 广播信息到所有节点,所属组同步数据到节点后,广播新节点加入信息,节点更新全局视图 • 如果判断是节点分裂(出现新高位1),该组迁移数据后,广播新节点加入信息。 • 节点失效: • 在某次IO操作中发现,发现此节点失效的节点广播该信息,更新全局视图 • 人为移除: • 该节点广播移除信息后结束进程。 • 缩容: • 数据复制到最高位取0的group中 • 广播退出信息,结束进程。

  33. Landmarks • 单机虚拟块设备(√) • 本地内存虚拟块设备(√) • 双机网络虚拟块设备(进行中。。。) • 双机分割数据存储(todo) • Tree-group实现(todo) • 块存储到tree-group中(todo)

  34. 面临的问题 • 驱动程序IO阻塞 • 多设备如何并发? • Netlink or kernel socket? • Io数据边界和通信协议

  35. 类似项目 • Sheepdog • Ndb • Dndb • Udisk • Amazon ebs

  36. DVBD-Distributed virtual block device 分布式虚拟块设备 郭栋 092302

More Related