分布式存储系统sheepdog

分布式存储系统sheepdog

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Sheepdog,是由NTT的3名日本研究员开发的开源项目,主要用来为虚拟机提供块设备。

其架构例如以下:

 分布式存储系统sheepdog

 

 

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

 

一、架构图

分布式存储系统sheepdog

如上图:

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

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

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

直接支持QEMU/KVM应用;

 

二、模块

分布式存储系统sheepdog

 

如上图:

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

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

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

 

三、数据详细存储方式

分布式存储系统sheepdog

 

如上图:

以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/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118112.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux开启ssh服务命令(定位服务怎么开启)

    环境:Ubuntu16.04LTS默认没有安装ssh,故先确定是否已经安装。使用如下命令查看ssh服务是否已经启动:sudops-e|grepssh如果终端没有任何反应,则表示未启动,启动命令如下:sudo/etc/init.d/sshstart…

    2022年4月14日
  • deeplink

    deeplinkhttp://www.cnblogs.com/shadajin/p/5724117.htmlDeeplink,简单讲,就是你在手机上点击一个链接之后,可以直接链接到app内部的某个页面,而不是app正常打开时显示的首页。不似web,一个链接就可以直接打开web的内页,app的内页打开,必须用到deeplink技术。什么是deeplink技术?如何实现的?郭宇洋的这篇文章有非常轻松易懂的说…

    2022年6月14日
  • 简单无序列表_无序列表怎么横排

    简单无序列表_无序列表怎么横排实现如下图所示的简单无序列表,并为每个列表项添加超链接。每个列表项的宽度为50px,高度为30px,列表中的文字在水平和垂直方向上均居中显示,超链接初始状态和访问后的状态均为黑色无下划线,鼠标经过和点

    2022年8月2日
  • sublime激活【2021最新】

    (sublime激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2JTX0APX6F-eyJsaWNlb…

    2022年3月30日
  • 群 环 域_群环域属于什么学科

    群 环 域_群环域属于什么学科群(Group)两个元素二元运算得到一个新元素环(Ring)上tian’jia在阿贝尔群(交换群)

    2022年11月1日
  • 系统管理命令crontab

    系统管理命令crontab

    2021年6月6日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号