1 / 21

基于分布式键值对系统 的 虚拟 块设备

基于分布式键值对系统 的 虚拟 块设备. 课题来源:阿里巴巴雲计算. 演讲:董浩亮 指导:戚正伟(副教授) 专业:软件工程 日期: 2010 年 6 月 22 日. 内容概览. 分布式存储现状 (1min) 分布式键值对系统特性 (1min) 块 设备的实现 可行性与系统架构 (2min) 用户态与内核态的通信 (2min) 快照机制的实现 (2min) 实验结果与分析 (3min) 结论 (1min) Q&A (8min). 分布式存储现状. Google File System 无法实现 POSIX 接口,通用性差

charla
Download Presentation

基于分布式键值对系统 的 虚拟 块设备

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. 基于分布式键值对系统的虚拟块设备 课题来源:阿里巴巴雲计算 演讲:董浩亮 指导:戚正伟(副教授) 专业:软件工程 日期:2010年6月22日

  2. 内容概览 • 分布式存储现状 (1min) • 分布式键值对系统特性 (1min) • 块设备的实现 • 可行性与系统架构 (2min) • 用户态与内核态的通信 (2min) • 快照机制的实现 (2min) • 实验结果与分析 (3min) • 结论 (1min) • Q&A (8min)

  3. 分布式存储现状 • Google File System • 无法实现POSIX接口,通用性差 • SAN + ISCSI • 需要专用硬件,成本高 • PVFS、PNFS • 靠硬件的RAID实现高可靠

  4. 分布式存储现状(续)

  5. 分布式键值对系统特性 • 分布式键值对系统是个高可靠的哈希表 • 每份数据存放3份,自动容错 • 两个基本操作 • put(key, value) • value = get(key) • 分布式键值对系统受到CAP理论制约 • 数据一致性、可用性、分区容错性只能选二 1min

  6. 可行性与系统架构 • 块设备的两个基本操作的实现 • 写操作——put(设备ID+扇区号,扇区内容) • 读操作——扇区内容=get(设备ID+扇区号) dd if=/dev/zero of=/dev/vbd1 bs=1024 count=10 put(“vbd1:0”, “00000……”) • put(“vbd1:1”, “00000……”) • put(“vbd1:2”, “00000……”) • …… 2min

  7. 应用程序 用户态 系统调用 网络 用户态程序 KV Client KV Server 块设备驱动 内核态 可行性与系统架构(续) • 系统架构图

  8. 用户态与内核态通信 用户态 • copy_to_user与copy_from_user • mmap • socket通信 用户态程序 内核态 块设备驱动 4min

  9. 快照机制的实现 • 快照机制是另一种高可靠性的保证 • 快照机制使用方法是写时复制(COW) 扇区1 扇区2 扇区3 扇区4 数据被修改 数据被回滚 数据3 数据4 数据1 数据2 扇区1 扇区2 扇区3 扇区4 数据3 数据4 数据1 数据2 数据5 6min

  10. 快照机制的实现(续1) • 使用GBF记录映射关系 当前状态:蓝 当前状态:橙 扇区1 扇区2 扇区3 扇区4 数据3 数据4 数据1 数据2 保存副本

  11. 快照机制的实现(续2) • 使用GBF记录映射关系 当前状态:橙 扇区1 扇区2 扇区3 扇区4 数据3 数据4 数据1 数据2 数据5 保存副本

  12. 快照机制的实现(续3) • 使用GBF记录映射关系 当前状态:蓝 扇区1 扇区2 扇区3 扇区4 数据5 数据3 数据4 数据1 数据2 取出副本

  13. 快照机制的实现(续4) • 有GBF占用的额外空间 • 100G的磁盘,块大小为4096,记录16个状态 • 100G/4096×4/8=12.5M • 有GBF之后的Key生成规则 • 写操作——put(设备ID+扇区号+快照号,扇区内容) • 读操作——扇区内容=get(设备ID+扇区号+快照号)

  14. 实验结果与分析 • 实验使用的网络环境为千兆网 • 实验中需要关闭Linux缓存 • 实验中的IO调度算法为NOOP • 实验中将会修改块大小、后台集群规模 8min

  15. 实验结果与分析(续1) • 块设备与本地磁盘的性能对比

  16. 实验结果与分析(续2) • 连续读写块大小对性能的影响

  17. 实验结果与分析(续3) • 不同应用场景对写性能的影响

  18. 实验结果与分析(续4) • 不同应用场景对读性能的影响

  19. 实验结果与分析(续5) • 后台集群规模性能的影响

  20. 结论 • 虚拟块设备弥补了现有分布式存储的不足 • 虚拟块设备并不是存储的万能解决方案 • 适用于要求数据高可靠,而对性能要求低的程序 • 如文档存储、Web应用程序等 11min

  21. Q&A 我现在愿意回答你的任何问题!

More Related