More Related Content
Similar to Sheepdog介绍 (20)
Sheepdog介绍
- 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 创建
●
专为虚拟机提供块存储
– 并不完全拘泥于虚拟机,可提供一个虚拟的块设备。
●
无单点
●
低运维开销
– “ 零”配置
– 对内核文件系统无特性假设
– 节点变化无须人工参与即可恢复
– 数据动态均衡负载
– 支持虚拟机的热迁移、镜像快照、模板 & 克隆(快速安装部署)、集群快照
– 计算节点和数据节点混合模式
●
线性扩展,支持上千级别节点
- 8. 整体架构
Sheep Sheep Sheep
Gateway 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 183
180
160
140 15
140 146
120 Taobao
98 NTT
100
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
1083
1000
800
641
600
440
400 368 352
221 235
200 154
87
57
0
Seq Oct Nov Dec Jan Feb Mar Apr May Jun