zoukankan      html  css  js  c++  java
  • 分布式文件系统对比

    1文件系统

    文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

    2文件系统的分类

    2.1本地文件系统

    linux的ext3,ext4 windows的FAT32 NTFS ..如下是window下格式化硬盘时可以选择的文件系统。注意下其中有个参数分配单元大小,稍后讨论。

    2.2分布式文件系统

    利用分布式技术将标准X86服务器的本地HDD、SSD等存储介质组织成一个大规模存储资源池,同时,对上层的应用和虚拟机提供工业界标准的SCSI、iSCSI和对象访问接口,进而打造一个虚拟的文件存储系统。

    3 文件的存储

    1.块级概念:

    块级是指以扇区为基础,一个或我连续的扇区组成一个块,也叫物理块。它是在文件系统与块设备(例如:磁盘驱动器)之间。

    2.文件级概念:

    文件级是指文件系统,单个文件可能由于一个或多个逻辑块组成,且逻辑块之间是不连续分布。逻辑块大于或等于物理块整数倍,

    3.物理块与文件系统之间的关系图:

    映射关系:扇区→物理块→逻辑块→文件系统

    文件级备份:文件级备份是指在指定某些文件进行备份时,首先会查找每个文件逻辑块,其次物理块,由于逻辑块是分散在物理块上,而物理块也是分散在不同扇区上。需要一层一 层往下查找,最后才完成整个文件复制。文件级备份时比较费时间,效率不高,实时性不强,备份时间长,且增量备份时,单文件某一小部份修改,不会只备份修改 部份,而整个文件都备份。

    块级备份:块级备份是指物理块复制,效率高,实时性强,备份时间短,且增量备份时,只备份修改过的物理块。

    对象存储: 也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL和其他扩展,如七牛、又拍、Swift、S3

    块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RBD(RBD是Ceph面向块存储的接口)

    文件存储: 通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。

    6常见分布式文件系统整体对比

    开源协议说明

    GPL:不允许修改后和衍生的代码做为闭源的商业软件发布和销售,修改后该软件产品必须也采用GPL协议;

    GPL V2:修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社 会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制;

    GPL V3:要求用户公布修改的源代码,还要求公布相关硬件;

    LGPL:更宽松的GPL

    对比说明

    TFS

    FastDFS

    MogileFS

    MooseFS

    GlusterFS

    HDFS

    Ceph

    开发语言

    C++

    C

    Perl

    C

    C

    Java

    C++

    开源协议

    GPL V2

    GPL V3

    GPL

    GPL V3

    GPL V3

    LGPL

    数据存储方式

    文件

    文件

    文件

    文件/块

    集群节点通信协议

    私有协议(TCP)

    私有协议(TCP)

    HTTP

    私有协议(TCP)

    私有协议(TCP)/ RDAM(远程直接访问内存)

    私有协议(TCP)

    Metadata server

    NS是TFS集群的中心管理节点,TFS通过主备HA的方式来解决单点问题

    多个Tracker server和Storage server均不存在单点问题

    可以配置HA结构

    单个MDS。存在单点故障和

    瓶颈。解决办法:Metalogger Server和

    heartbeat+drbd+moosefs

    无,不存在单点故障。靠运行在各个节点上的动态算法来代替MDS,不需同步元数据,无硬盘I/O瓶颈。

    单个MDS。存在单点故障和

    瓶颈。

    ZooKeeper配合解决

    多个MDS,不存在单点故障和瓶颈。MDS可以扩展,不存在瓶颈。

    FUSE

    支持

    支持

    支持

    专用元数据存储点

    占用NS

    占用DB

    占用MFS

    占用

    占用MDS

    在线扩容

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    冗余备份

    支持

    支持

    -

    支持

    支持

    支持

    支持

    单点故障

    存在

    不存在

    存在

    存在

    不存在

    不存在

    不存在

    易用性

    安装复杂,官方文档少

    安装简单,社区相对活跃

    -安装复杂依赖很多第三方perl包,还要安装MySQL数据库

    安装简单,官方文档多

    安装简单,官方文档专业化

    安装简单,官方文档专业化

    安装简单,官方文档专业化

    适用场景

    跨集群的小文件,存储图片文件等

    单集群的中小文件

    国人在mogileFS的基础上进行改进的key-value型文件系统

    -

    单集群的大中小文件

    用于存储图片

    跨集群云存储

    大文件

    单集群的大中小文件

    彻底的分布式,没有单点依赖

    性能

    稍低

    性能慢

    取舍

    存在单点故障,安装复杂不宜用,不支持fuse

    主要是不支持fuse

    安装维护复杂,性能不高,不支持fuse

    存在单点故障,占用内存,性能高,支持fuse

    支持fuse,无单点故障,性能稍低,客户端占用相当的CPU和内存

    存在单点故障,性能慢,不支持fuse适合大文件操作

    安装简单,无单点依赖,支持fuse,性能好

  • 相关阅读:
    Linux企业级项目实践之网络爬虫(6)——将程序设计成为守护进程
    Linux企业级项目实践之网络爬虫(5)——处理配置文件
    Linux企业级项目实践之网络爬虫(3)——设计自己的网络爬虫
    Linux企业级项目实践之网络爬虫(4)——主程序流程
    Linux企业级项目实践之网络爬虫(1)——项目概述及准备工作
    Linux企业级项目实践之网络爬虫(2)——网络爬虫的结构与工作流程
    泛化、依赖、关联、聚合、组合
    日常(停课后的月考)
    日常(停课后的月考)
    打击罪犯
  • 原文地址:https://www.cnblogs.com/AnXinliang/p/6963458.html
Copyright © 2011-2022 走看看