sheepdog--介绍

sheepdog是NTT日本电报电话公司开源的一个分布式文件系统,初衷就是要做一个aws的ebs开源实现,可以实现镜像和块设备(block device)的分布式存储
sheepdog不是一个常规的文件系统,而是针对qemu/kvm的一个分布式存储管理系统,实现了存储的虚拟化
 
官网: http://www.osrg.net/sheepdog  现在的稳定版是0.3
2012.6底要发布0.4版,预计2012年底发布1.0版
网上有个官方介绍的pdf,地址如下: http://vdisk.weibo.com/s/6c9tS

基本概念定义
节点node:指部署sheepdog的物理机,数据实际存储的地方
vdi:virtural disk image,虚拟磁盘镜像,包括系统镜像和块镜像,kvm-img命令建立的


1.设计理念
sheepdog把所有的镜像(系统镜像和块镜像)都当成小绵羊(vdi--vitural disk image),然后通过corosync这只dog来管理(集群管理,和consistent hash一致性hash算法组成类p2p的dht,distribute hashtable),比如某只小羊生病了或挂了,赶出羊圈,找某只小羊(定位vdi),安置某个小羊(分布存储)等等,贴张图
sheepdog技术扫描1--介绍

去中心化、全对称的架构(non-center or symmetric)
其设计思想是采用一致性哈希consistent hash算法(DHT的一种实现,关于一致性hash具体参考后面的链接)来定位文件在存储节点中的位置,从而取消了metadata server的角色

整个系统只有storage node一个角色,不区分元数据和数据块;
分布式系统架构的基本原则和实践

2.架构
sheepdog采用完全对称架构 fully symmetric,即集群中所有设备的角色和配置是一样的(其实基本没什么配置,编译安装完了,启动corosync和sheepdog守护进程就ok了),不像传统的分布式存储,有专门的metadata server来存储文件在集群中位置啊、文件大小啊等等元数据,然后还得考虑metadata的单点问题SPoF,比如FastDFS、hdfs、luster和moosefs就是如此。
sheepdog用corosync的多播和一致性hash算法来替代metadata server,实现 fully symmetric

sheepdog包括几个部分:
sheepdog技术扫描1--介绍

I,节点node文件系统File system
节点上的文件系统其实并不能算做sheepdog的组成部分,不关心下面的存储系统是什么,ext3、ext4、xfs都可以,但有个要求,需要支持xattr属性才行
对于ext3,ext4,执行下面的命令,以便支持xattr
mount -o remount,user_xattr /rpool/vm0/sheepdog
为了实现多级卷备份和快照架构,建议采用zfs文件系统,后面的系列文章会详细介绍zfs+sheepdog实现高可用虚拟存储系统的方法;zfs默认挂载即支持xattr属性

II,对象存储Obj storage
sheepdog对象存储采用常规的key/value hashmap的方式存储数据对象,大文件被分割成4M,可以存储多个副本,默认是3份,学ebs
云存储的冗余备份为啥是3份?(aws就这么干的),古埃及的罗塞塔rosetta石碑用古埃及象形文字、埃及拼音和古希腊文三种文字记录一段历史,就算象形文字缺了一部分,没人能看懂,也能破译补全,这大概也是raid5的思想起源吧

sheepdog(牧羊犬):一种EBS的开源实现 - peterylh - 单细胞生物
object storage包括两部分,一个gateway,一个object manager
gateway是个数据对象读写的路由,根据一致性哈希算法,定位被分割对象在节点集群的读写位置
obj manager是本地存储的管理器,目录结构如下:
  ll /rpool/vm1/sheepdog/
总用量 10
drwxr-x--- 5 root root    7   6月   5 16:12 ./
drwxr-xr-x 6 root root    8   6月   5 16:39 ../
-rw-r----- 1 root root    0   6月   5 16:12 config
drwxr-x--- 2 root root    2   6月   5 16:12 epoch/
drwxr-x--- 2 root root    2   6月   5 16:12 journal/
drwxr-x--- 2 root root    2   6月   5 16:12 obj/
-rw-r--r-- 1 root root 759   6月   5 16:13 sheep.log

III,VDI或者叫vm
就是虚拟机了,sheepdog通过qemu的接口使VDI挂载block卷

IV,corosync集群管理器
节点上安装,通过p2p多播muti-cast方式维护集群的节点信息。如果某个节点A状态有变,如宕机,token多次传递中断,主控就在群里吆喝一声,哥们A挂了,群里的节点们就更新自己的节点信息,登记A已阵亡。节点重新组环,数据重新排布,具体参考 http://www.slideshare.net/chinainvent/totemsrprrp
还在学习corosync和totem single ring
为了维护存储节点的信息,一般采用P2P技术的totem single ring算法(corosync是一种实现)来维护和更新node路由信息
对称架构有一个问题,采用totem single ring算法的存储节点数量有限,因为node数量超过1000,集群内的通信风暴就会产生,效率下降,sheepdog提出了一个解决方案,就是在一致性hash环上做嵌套处理,如图
分布式系统架构的基本原则和实践

参考资料
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值