博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式存储系统sheepdog
阅读量:5813 次
发布时间:2019-06-18

本文共 1006 字,大约阅读时间需要 3 分钟。

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://hivbx.baihongyu.com/

你可能感兴趣的文章
论模式在领域驱动设计中的重要性
查看>>
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
linux软件包管理之三(源代码安装)
查看>>
数据库三范式是什么?
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
九叔Xen App测试报告
查看>>
Apache配置
查看>>