文章目录

  • 参考
  • 分布式文件系统定义
  • 各类系统对比图
  • 各类文件系统简介
    • shepdog
      • shepdog基本架构
    • Ceph
    • FastDFS
      • fastDFS介绍
      • Tracker server 追踪服务器
      • Storage server 储存服务器
      • 客户端Client
      • 读写操作:
        • 写入数据
        • 下载文件

参考

开源分布式存储系统的对比_直到世界的尽头-CSDN博客_四大开源分布式存储

分布式文件系统定义

分布式文件系统(Distributed File System,DFS)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可简单的理解为一台计算机)相连;或是若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。

各类系统对比图

存储系统 HDFS TFS Ceph Swift Cinder FastDFS MooseFS GlusterFS Lustre Sheepdog IPFS MogileFS
开发语言 Java C++ C++ Python Python C C C C C Go Perl
开源协议 Apache GPL V2 LGPL Apache Apache GPL V3 GPL V3 GPL V3 GPL GPLv2 Apache GPL
数据存储方式 文件 文件 对象/文件/块 对象 文件/块 文件/块 对象 文件
集群节点通信协议 TCP TCP 私有协议(TCP) TCP 未知 TCP TCP 私有协议(TCP)/ RDAM(远程直接访问内存) 私有协议(TCP)/ RDAM(远程直接访问内存) totem协议 P2P HTTP
专用元数据存储点 占用MDS 占用NS 占用MDS 未知 占用MDS 双MDS 占用DB
在线扩容 支持 支持 支持 支持 未知 支持 支持 支持 支持 支持 支持 支持
冗余备份 支持 支持 支持 支持 未知 支持 支持 支持 支持 支持 不支持
单点故障 不存在 存在 不存在 不存在 未知 不存在 存在 不存在 存在 不存在 存在 存在
跨集群同步 不支持 支持 不支持 未知 未知 部分支持 不支持 支持 未知 未知 未知 不支持
适用场景 Mapreduce使用的文件存储 跨集群的小文件 单集群的大中小文件 openstack对象存储 openstack块存储 单集群的中小文件 单集群的中小文件 跨集群云存储 大文件读写 弹性块存储虚拟机 P2P/区块链 未知
FUSE挂载 支持 未知 支持 支持 未知 不支持 支持 支持 支持 支持 支持 不支持
访问接口 不支持POSIX 不支持POSIX POSIX POSIX 未知 不支持POSIX POSIX POSIX POSIX/MPI 未知 POSIX 不支持POSIX
  • 开源协议说明
Apache : 鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。
GPL:不允许修改后和衍生的代码做为闭源的商业软件发布和销售,修改后该软件产品必须也采用GPL协议;
GPL V2:修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制;
GPL V3:要求用户公布修改的源代码,还要求公布相关硬件;
LGPL:更宽松的GPL
  • 块/文件/对象存储方式的区别
    CEPH篇 块存储、文件存储和对象存储意义和差异 - 但行好事-莫问前程 - 博客园
  • 名词解释
    MDS:Metadata Server
    NS:NameServer
    DB:Database

各类文件系统简介

shepdog

  • 参考资料:
    sheepdog调研学习 - yunlion - 博客园

采用完全对称的结构,没有类似元数据服务的中心节点。这种架构带来了线性可扩展性,没有单点故障和容易管理的特性。对于磁盘和物理节点,SheepDog实现了动态管理容量以及 隐藏硬件错误的特性。对于数据管理,SheepDog利用冗余来实现高可用性,并提供自动恢复数据数据,平衡数据存储的特性。除此之外,sheepdog 还有具有零配置、高可靠、智能节点管理、容量线性扩展、虚拟机感知(底层支持冷热迁移和快照、克隆等)、支持计算与存储混合架构的特点等。目前,开源软件 如QEMU、Libvirt以及Openstack都很好的集成了对Sheepdog的支持。在 openstack中,可以作为cinder和glance的后端存储。

sheepdog总体包括集群管理和存储管理两大部分。集群管理使用已有的集群管理工具来管理,存储管理基于本地文件系统来实现。目前支持的本地文件系统包括ext4和xfs。

编译后的sheepdog由两个程序组成,一个是守护程序sheep,一个是集群管理工具dog,守护程序sheep同时兼备了节点路由和和对象存储的功能。

Sheep进程之间通过节点路由(gateway)的逻辑转发请求,而具体的对象通过对象存储的逻辑保存在各个节点上,这就把所有节点上的存储空间聚合起来,形成一个共享的存储空间。

Sheepdog由两个程序组成,一个是后台进程sheep,一个是前台管理工具dog。Dog主要负责管理整个sheep集群,包括集群管理,VDI管理等。集群管理主要包括集群的状态获取,集群快照,集群恢复,节点信息,节点日志,节点恢复等。VDI管理包括VDI的创建,删除,快照,检 查,属性等等。

Dog是一个命令行工具,启动时,会向后台sheep进程发起TCP连接,通过连接传输控制指令。当sheep收到控制指令时,如果有需要,会将相应指令扩散到集群中,加上对称式的设计,从而使得dog能够管理整个集群

shepdog基本架构

  • 由corosync完成集群成员管理和有关集群消息传递,比如对于节点加入删除等情况检测;
  • 由Qemu VM作为Sheepdog的客户端,进行快照克隆、创建虚拟卷等操作命令的执行,提供NBD/iSCSI协议支持;
  • 由gateway实现数据的DHT路由,接收QEMU块驱动的I/O请求,通过散列算法获得目标节点,然后转发I/O请求至该节点;
  • 由Sheep store数据本地存储.
  • Corosync发送有关集群处理的消息给Sheep,Sheep再进行集群节点的加入删除等操作
  • Qemu和Dog(提供了一系列系统命令)发送命令解析后的请求给Sheep,Sheep再根据具体的请求类型进行相关处理

Ceph

  • 参考
    干货|非常详细的 Ceph 介绍、原理、架构_民工哥的博客-CSDN博客_ceph
    Ceph Homepage - Ceph

Ceph是一个可以按对象/块/文件方式存储的开源分布式文件系统,其设计之初,就将单点故障作为首先要解决的问题,因此该系统具备高可用性、高性能及可 扩展等特点。该文件系统支持目前还处于试验阶段的高性能文件系统BTRFS(B-Tree文件系统),同时支持按OSD方式存储,因此其性能是很卓越的, 因为该系统处于试商用阶段,需谨慎引入到生产环境

  • 特性
    1)Ceph底层存储是基于RADOS(可靠的、自动的分布式对象存储),它提供了LIBRADOS/RADOSGW/RBD/CEPH FS方式访问底层的存储系统,如下图所示
    2)通过FUSE,Ceph支持类似的POSIX访问方式;Ceph分布式系统中最关键的MDS节点是可以部署多台,无单点故障的问题,且处理性能大大提升
    3)Ceph通过使用CRUSH算法动态完成文件inode number到object number的转换,从而避免再存储文件metadata信息,增强系统的灵活性

  • 优点
    1)支持对象存储(OSD)集群,通过CRUSH算法,完成文件动态定位, 处理效率更高
    2)支持通过FUSE方式挂载,降低客户端的开发成本,通用性高
    3)支持分布式的MDS/MON,无单点故障
    4)强大的容错处理和自愈能力5)支持在线扩容和冗余备份,增强系统的可靠性

  • 缺点
    1)目前处于试验阶段,系统稳定性有待考究

  • 应用场景
    1)全网分布式部署的应用
    2)对实时性、可靠性要求比较高官方宣传,存储容量可轻松达到PB级别

FastDFS

fastDFS - 简书

fastDFS介绍

  • fastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等
  • 分布式文件系统:
    基于客户端/服务器的文件存储系统
    对等特性允许一些系统扮演客户端和服务器的双重角色,可供多个用户访问的服务器,比如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样
  • FastDFS由跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)构成。

Tracker server 追踪服务器

追踪服务器负责接收客户端的请求,选择合适的组合storage server ,tracker server 与 storage server之间也会用心跳机制来检测对方是否活着。
Tracker需要管理的信息也都放在内存中,并且里面所有的Tracker都是对等的(每个节点地位相等),很容易扩展
客户端访问集群的时候会随机分配一个Tracker来和客户端交互。

Storage server 储存服务器

实际存储数据,分成若干个组(group),实际traker就是管理的storage中的组,而组内机器中则存储数据,group可以隔离不同应用的数据,不同的应用的数据放在不同group里面

优点:
海量的存储:主从型分布式存储,存储空间方便拓展,
fastDFS对文件内容做hash处理,避免出现重复文件
然后fastDFS结合Nginx集成, 提供网站效率

客户端Client

主要是上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。每个客户端服务器都需要安装Nginx

读写操作:

写入数据

写操作的时候,storage会将他所挂载的所有数据存储目录的底下都创建2级子目录,每一级256个总共65536个,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据作为本地文件存储到该目录中。

下载文件

当客户端向Tracker发起下载请求时,并不会直接下载,而是先查询storage server(检测同步状态),返回storage server的ip和端口,
然后客户端会带着文件信息(组名,路径,文件名),去访问相关的storage,然后下载文件。

各类分布式文件系统的区别和概述 | HDFS、GFS、Ceph、TFS、Moosefs、IPFS等相关推荐

  1. hadoop与mysql的区别_数据库与hadoop与分布式文件系统的区别和联系

    转载一篇关系数据库与Hadoop的关系的文章 1. 用向外扩展代替向上扩展 扩展商用关系型数据库的代价是非常昂贵的.它们的设计更容易向上扩展.要运行一个更大 的数据库,就需要买一个更大的机器.事实上, ...

  2. 分布式文件系统(GFS和HDFS)概述

    目录 背景意义 分布式存储相关概念 分布式存储系统的分类 复制副本 CAP理论 一致性 GFS架构 租约(lease)和变更顺序 容错机制 前言 因为我研一下学期有一门分布式的课,老师要求我们选择一个 ...

  3. 只知道HDFS和GFS?你其实并不懂分布式文件系统

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! ...

  4. gfs和hdfs文件系统的区别

    转载:http://blog.csdn.net/mindfloating/article/details/49103611 我们知道 HDFS 最早是根据 GFS(Google File System ...

  5. 深入理解HDFS:Hadoop分布式文件系统

    深入理解HDFS:Hadoop分布式文件系统 文本详细介绍了HDFS中的许多概念,对于理解Hadoop分布式文件系统很有帮助. 1. 介绍 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器 ...

  6. Hadoop分布式文件系统 (HDFS)

    Hadoop分布式文件系统 简介 ​ HDFS(Hadoop distribute file system) 是Hadoop核心组成,是分布式存储服务 ​ 分布式文件系统能够横跨多态计算机.在大数据时 ...

  7. Hadoop、分布式文件系统HDFS、YARN、MAPREDUCE

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 1.1 什么是Hadoop Hadoop名字的由来 作者:Do ...

  8. 如果要设计个分布式文件系统,该从哪些方面考虑?

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:张轲1983 链接:www.jianshu.com/p/fc0aa34606ce 一.概述 分布式文件系统是分布式领域的一个基础应用, ...

  9. 主流分布式文件系统选型,写得太好了!

    上一篇:深夜看了张一鸣的微博,让我越想越后怕 作者:张轲1983 来源:https://www.jianshu.com/p/fc0aa34606ce 一.概述 分布式文件系统是分布式领域的一个基础应用 ...

最新文章

  1. 一文读懂支持向量机SVM(附实现代码、公式)
  2. 为VMware虚拟主机添加新磁盘
  3. leetcode547. 朋友圈(并查集)
  4. python matplotlib画图改变图标题和坐标轴标题的字体大小
  5. [Unity] 无脚本导出 Texture 为 PNG
  6. win10怎么去掉计算机里百度云,主编教你win10系统清除百度云盘盘符的修复方法...
  7. GODOT游戏编程001
  8. 局域网计算机加密共享文件,局域网共享文件,小编教你局域网共享文件怎么加密...
  9. 搭建个人gitlab服务器
  10. python中msg是什么意思_MSG是什么意思?
  11. word公式大括号内容对齐
  12. 小学六年级下册计算机计划,小学信息技术六年级下册教学计划
  13. 以为精通Java 线程池,看到这些误区,还是年轻了
  14. 20220302显著性算法:Itti
  15. android禁止手机访问某个ip,如何禁止手机访问某个网站
  16. 目标检测------损失函数=类别损失+位置损失
  17. 销售折扣业务处理过程
  18. 基于RHEL8的Linux基础入门学习总结笔记(附示例代码)
  19. HDR详解 - 什么是HDR?
  20. 搭建企业内部知识库,从知识管理做起

热门文章

  1. 应用ESP8266(Tasmota固件)、PZEM-004T、DHT11构建家庭智能电表实践(一)
  2. 使用Typora时LaTeX内联公式简单汇总
  3. 视联网赋能数字经济,提升产业升级
  4. PDF文件的加密与破解
  5. ctfshow 文件包含Web78-79
  6. 硬核!Rust异步编程方式重大升级:新版Tokio如何提升10倍性能详解
  7. 【合新通信】线宽、谱宽、带宽、速率的关系
  8. linux-rockchip-音频相关
  9. 2020年自考计算机应用基础都考什么题型,2019年10月自考计算机应用基础试题和答案...
  10. 综合布线工程实战经验九则