Your SlideShare is downloading. ×
Sheepdog介绍
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Sheepdog介绍

1,335
views

Published on

Published in: News & Politics

1 Comment
3 Likes
Statistics
Notes
  • 请教一下泰来:
    http://www.osrg.net/sheepdog/_static/lca2010_miniconf.pdf 说,
    Design: not general file system -- Page 5

    你说'并不完全拘泥于虚拟机,可提供一个虚拟的块设备', 请问Sheepdog 能像通用的块设备那样, 在客户端挂载之后存储普通文件么?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,335
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
35
Comments
1
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 开源分布式块存储 Sheepdog 刘源 淘宝核心系统内核组 2012 年 7 月 14 日
  • 2. 关于我● 曾在英特尔上海开源技术中心虚拟化小组实习,主要做 Moblin 、 Xen 的研发● 2011 年 1 月加入淘宝 – 1 月到 8 月做内核方面的开发 – 9 月开始做分布式存储 (Sheepdog)● 热爱开源, Linux 内核, Xen , KVM , QEMU , GIT 有 一些补丁贡献。喜欢阅读源码和论文,从大型系统的设计与实现 找到成熟的技术● 目前是 Sheepdog 项目的核心开发,项目维护者之一
  • 3. 提纲● 虚拟化技术介绍● Sheepdog 介绍● Sheepdog 面临的主要问题● 社区开发介绍● 代码统计● Sheepdog 的应用● 问答
  • 4. 虚拟化介绍● 软件虚拟化(半虚拟化 [Xen PV] ,二进制动态翻 译 [QEMU, Virtual box]) – X86 平台上二进制动态翻译历史最长● 硬件虚拟化(全虚拟化 [KVM, XEN HVM] – 60 年代,硬件虚拟化技术影响着分时操作系统 设计 ● MULTIX[UNIX] 虚拟部分资源, CPU 和内存 ● IBM CP/CMS 虚拟全部资源 – X86 平台大约在 2003 年开始,学习大型机硬件虚拟技 术
  • 5. X86 硬件虚拟化● CPU 虚拟化 (成熟) – 改变指令集 ISA● 内存虚拟化(成熟) – 单个 MMU-> 二层 MMU● IO 虚拟化 ( 目前热点 ) – 增加 IOMMU – 硬件直接分配给客户机
  • 6. Sheepdog 介绍● 开源的分布式块存储 – 2009 年由日本 NTT 实验室的 MORITA KAZUTAKA 创建● 专为虚拟机提供块存储 – 并不完全拘泥于虚拟机,可提供一个虚拟的块设备。● 无单点● 低运维开销 – “ 零”配置 – 对内核文件系统无特性假设 – 节点变化无须人工参与即可恢复 – 数据动态均衡负载 – 支持虚拟机的热迁移、镜像快照、模板 & 克隆(快速安装部署)、集群快照 – 计算节点和数据节点混合模式● 线性扩展,支持上千级别节点
  • 7. 图片来自 http://www.osrg.net/sheepdog/
  • 8. 整体架构 Sheep Sheep SheepGateway Gateway Gateway VM VM VM Sheep Sheep Sheep store Store store Store Store 节点 A 节点 B 节点 C
  • 9. 节点内部 Sheepdog 存储 以太网QEMU 虚拟机地址空间 块设备模拟 VCPU VCPU eventfd VM_ENTRY内核 KVM VM_EXIT 读写请求 PCPU PCPU
  • 10. 数据管理● 虚拟机镜像被切分为 4M 大小的对象 – 对象稀疏存储 – 每个对象由唯一的 64 位数字索引 – 每个对象有多个拷贝复制到节点上 图片来自 http://www.osrg.net/sheepdog/
  • 11. Sheepdog 面临的主要问题● 多个节点变化 – 节点加入时,有其它节点当掉 . – 扩容,缩容等 .● 数据平衡,节点存储权重 – 虚拟节点和一致性哈希减少恢复时间和数据迁移● 节点变化时对虚拟机 IO 的影响 – 本地缓存模式,几乎无影响 (高性能) – 无本地缓存,需要等待对象恢复 (高可靠性),请求重试● 大规模节点的扩展性 – 目标是上几千节点的规模 – 内部算法的扩展性 – 专门的节点控制集群
  • 12. 社区开发介绍● 从一个人到社区 – 2009 年 9 月, Kazutaka 宣布项目的成立 ● JAVA → C – 2011 年 9 月淘宝开发人员加入开发 ● Farm, object cache, retry mechanism, recovery rewrite, zookeeper driver, sheepfs, store rewrite, socket cache rewrite, event handling rewrite... – 2012 年 3 月 Nebula 的 Christoph Hellwig 加入开发● 目前代码树处于高速迭代的状态 – 每个月合并 100+ 的补丁 – 活跃开发者 5 人 ( 补丁 30+)● 需要更多的开发者和用户
  • 13. 代码统计● 2011.9 ~ 2012.7 – 代码总计: 22,978 – 补丁总计: 731 – 淘宝修改的行数: 29,508● 近 10 个月的活跃开发者 ( 补丁 30+) tailai.ly@taobao:~/sheepdog$ git shortlog -ns ed24aea.. 306 Liu Yuan 142 Christoph Hellwig 128 MORITA Kazutaka 59 levin li 38 Yunkai Zhang
  • 14. 补丁统计 ( 2011.9 ~ 2012.7 ) 补丁数 补丁比例图200 183180160 140 15140 146120 Taobao 98 NTT100 Nebula 80 73 other 56 60 38 428 40 27 20 28 142 20 7 0 Oct Dec Feb Apr Jun Sep Nov Jan Mar May
  • 15. 邮件列表统计1200 10831000800 641600 440400 368 352 221 235200 154 87 57 0 Seq Oct Nov Dec Jan Feb Mar Apr May Jun
  • 16. Sheepdog 的应用● 数量很小,信息有限,一些小的 startup 和 个人用户● 淘宝目前主要用于开发测试环境
  • 17. 问答