分布式存储系统sheepdog

Sheepdog,由NTT的3日本研究人员开发的开源项目,主件装备用来提供一个虚拟机。

它的建筑,如以下:

 

 

 

以下,我们将从架构、模块等几个方面来介绍下:

 

一、架构图

如上图:

採用无中心节点的全对称架构。无单点故障。存储容量和性能可线性扩展;

新增节点通过简单配置可自己主动增加(IP:PORT),数据自己主动实现负载均衡;

节点故障时,数据可自己主动恢复。

直接支持QEMU/KVM应用;

 

二、模块

 

如上图:

由corosync。完毕集群成员管理和消息传递;

由Qemu作为Sheepdog的client,提供NBD/iSCSI协议支持。

由gateway实现数据的DHT路由。由storage server数据数据本地存储;

 

三、数据详细存储方式

 

如上图:

以VDI Object存储VM数据。向用户暴露的是一个块设备;

包括4种数据对象:VDI、Data Object、属性对象和用于快照的VM实时状态数据对象;

以4M的小文件方式实现OBS,但非常easy基于此扩展。如使用使用库替代4M的小文件;

 

四、集群管理

1. 採用corosync。tot是em协议的一个开源实现。

totem协议主要用来实现集群成员管理和可靠顺序传输。

2. corosync通过提供一个CPG API来提供服务。

首先,绑定一个fd到cpg_handle,并注冊回调函数cpg_dispatch;

然后将fd注冊到epoll;

corosync上消息会触发fd改变,通用epoll触发回调函数cpg_dispatch;

 

这里主要有两个函数。cpg_deliver_fn和cpg_confchg_fn,分别相应sd_deliver和sd_confchg.

 当中,sd_deliver负责集群从corosync给本地发消息,主要是针对VDI进行操作;而sd_confchg主要是对node进行操作,用来监控集群成员变化。

 

五、存储对象管理

集群对象版本号epoch。

obj文件夹下,每一个新的epoch要相应创建一个新的文件夹。

可从epoch恢复数据。

 

六、一致性模型

通过epoll机制保证。

通过数据操作实现强一致性(多副本的写同一时候成功时,才向client返回); 

 

七、DHT路由

代理路由方式;

由ip:port生节点号。使一致性哈希。

 

八、副本放置

一致性哈希;

虚拟节点。

 

欲了解更多具体信息。请参考其官方网站:http://www.osrg.net/sheepdog/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值