分布式文件系统(Distributed File System,DFS)

一、什么是分布式文件系统

1、文件系统的定义:

​ 硬盘是计算机最主要的存储设备,数据按扇区存放在硬盘上。硬盘属于硬件,用户无法直接对其进行操作,由操作系统帮我们管理。文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。通俗地说,文件系统就是一个软件,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等

2、一般文件系统:

​ 在我们日常生活工作中,自己使用的电脑上都会安装操作系统,比如Windows。我们经常进行的操作如新建文件夹、新建文件、删除文件等等,都是文件系统在帮助我们工作,Windows文件系统有FATFS、VFATFS、NTFS等。除了Windows外,Linux也有ext、vfs等等文件系统,像这种一台计算机,单个存储节点、一个操作系统,一个具体的文件系统的场景称之为一般文件系统。

3、分布式文件系统:

​ 分布式文件系统中的数据存储在多台机器上,这些专门用来存储数据的机器称之为存储节点,由多个节点构成分布式集群,节点上的小的分布式文件系统组合成总的分布式文件系统,由主服务器对总的文件系统进行管理。用户任意访问某一台主机,都能获取到自己想要的目标文件。

4、一般文件系统与分布式文件系统的比较:

一般文件系统 分布式文件系统
存储方式 集中存储在一台机器 分散地存储在多台机器
访问方式 系统总线IO 网络IO
特点 系统级别的文件系统,数据集中存放在一台机器,对数据的访问,修改和删除比较方便快速,存储服务器成为系统性能的瓶颈,伸缩性较差,扩展有限 应用级别的文件系统,分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展
适用场景 小数据量的存储 海量数据的存储
设计目标 高性能、可用性 高性能、可伸缩性、可靠性以及可用性

二、常见的分布式文件系统

​ 常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

1、GFS(Google File System)

​ Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。GFS是一个为Google内部设计的大数据分布式存储框架,由2003年Google发表的论文提出,遗憾的是Google并没有将其开源,但是基于GFS的设计理念,诞生了很多优秀的开源类GFS文件系统。

2、HDFS(Hadoop Distributed File System)

​ HDFS是Hadoop(Apache开源项目)的专用文件系统, Hadoop是一个大数据计算框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集,是Google发表的MapReduce算法的实现,HDFS是GFS的开源实现。

3、Ceph

​ Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统,并使用Ceph完成了他的论文。Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。与其它分布式文件系统相比,ceph 性能最高,因为其使用C++编写而成。 由于 ceph 使用 btrfs 文件系统, 而btrfs 文件系统需要 Linux 2.6.34 以上的内核才支持。自2007年毕业之后,Sage开始全职投入到Ceph开 发之中,使其能适用于生产环境,经过十几年的发展,Ceph已经趋向于成熟。

4、Lustre

​ Lustre是一个开源、分布式并行文件系统软件平台,具有高可扩展、高性能、高可用等特点。Lustre的构造目标是为大规模计算系统提供一个全局一致的POSIX兼容的命名空间,这些计算系统包括了世界上包含最强大的高性能计算系统。它支持数百PB数据存储空间,支持数百GB/s乃至数TB/s并发聚合带宽。

5、GridFS

GridFS 是MongDB的分布式存储系统,用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。GridFS 可以更好的存储大于16M的文件。GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被存储在chunks集合中。GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。

6、MogileFS

​ MogileFS是一个开源的分布式文件存储系统,是由LiveJournal旗下的Danga Interactive公司开发。目前使用MogileFS的公司非常多,如日本排名先前的几个互联公司以及国内的Yupoo(又拍)、digg、豆瓣、大众点评、搜狗等,分别为所在的组织或公司管理着海量的图片。以大众点评为例,用户全部图片均有MogileFS存储,数据量已经达到500TB以上

7、FastDFS(Fast Distributed File System)

​ FastDFS是一个开源的分布式文件系统,由纯C编写,性能很高。她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

8、TFS(Taobao File System)

​ TFS是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。

三、下一代分布式文件系统

1、预想

​ 随着5G、AI、云技术的快速普及和发展,数据的产生呈几何级数增长,必然会带来更大的挑战,势必会催生出下一代分布式文件系统。会在解决最基本的数据存储问题后,我认为分布式文件系统需要解决的问题是如何针对当前系统架构缺点的改进,主要围绕在数据的多元化存储、更灵活的适用场景、系统的性价比提升、更强的适用性和更方便的运维等方面。其实,对大数据的操作有90%是对元数据进行操作,HDFS的元数据存储在内存,虽然性能高,但是内存的容量有限,系统支持的文件数量较少。Ceph将元数据保存在RADOS,IO操作多,路径长,性能不理想。

数据存储在内存,虽然性能高,但是内存的容量有限,系统支持的文件数量较少。Ceph将元数据保存在RADOS,IO操作多,路径长,性能不理想。

​ 人类的智慧是无限的,相信随着时间的发展,在不断地实践和改进后,“数据革命”必然会取得胜利,分布式文件系统也必然会绽放更加绚丽的花!!

分布式文件系统(Distributed File System,DFS)相关推荐

  1. HDFS(hadoop distributed File System)详解

    HDFS(hadoop distributed File System)分布式文件系统 特点:高容错性(多个文本副本存储),价格低,高吞吐量. 常见的系统  gfs,HDFS.Lustre .Ceph ...

  2. 星际文件系统(InterPlanetary File System,缩写IPFS)

    星际文件系统(InterPlanetary File System,缩写IPFS)是个旨在创建持久且分布式存储和共享文件的络传输协议.它是一种内容可寻址的对等超媒体分发协议.在IPFS网络中的节点将构 ...

  3. Hadoop Distributed File System 简介

    HDFS 是一个 Apache Software Foundation 项目,是 Apache Hadoop 项目的一个子项目(参见 参考资料).Hadoop 非常适于存储大型数据(比如 teraby ...

  4. adb 文件传输,解决只读文件系统Read-only file system问题

    操作代码: adb push C:\xxdir\project /sdcard/xxx 执行此行代码,有可能会报错:错误如下 failed to copy './xxx' to '/xxx/xxx': ...

  5. Windows Server 2016系统高级管理系列-DFS分布式文件系统

    https://blog.csdn.net/wmcoo/article/details/105309345 DFS分布式文件系统在线视频观看地址:https://edu.51cto.com/cours ...

  6. [架构之路-164]-《软考-系统分析师》-3-操作系统基本原理-文件系统(文件的逻辑组织、文件的物理组织、硬盘空间管理、分布式文件系统)

    目录 3 . 4 文件系统 3.4.1文件的组织结构 1 . 逻辑结构 2 . 物理结构 3 . 树形文件结构 3.4.2 硬盘存储空间管理 1 . 空闲文件目录 2 . 空闲块链 3 . 位示图法 ...

  7. 新人学习笔记-分布式基础学习-分布式文件系统

    所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS.Map/Reduce.BigTable为框架核心的分布式存储和计算系统.通常如我一样初学的人,会以Google这几份经典的论文作为开端 ...

  8. 分布式文件系统----FastDFS

    FastDFS 1.分布式文件系统 1.1 FastDFS简介 1.2 FastDFS整体架构 1.3 FastDFS的存储策略 1.4 FastDFS的上传过程 1.5 FastDFS的文件同步 1 ...

  9. 超详细MFS网络分布式文件系统

    -----------------------MFS---------------------- (1)分布式原理 分布式文件系统( Distributed File System)是指文件系统管理的 ...

  10. CLUSTER 05: 块存储应用案例 分布式文件系统 对象存储

    一.块存储应用案例 目的: KVM虚拟机调用Ceph镜像作为虚拟机的磁盘. 1.1 准备实验环境 1.1.1 创建磁盘镜像 •  为虚拟机创建磁盘镜像 [root@node1    ~]#    rb ...

最新文章

  1. 干货丨人工智能、机器学习和认知计算入门指南
  2. CCS初学调试以及RTDX
  3. LCD编程_LCD控制器
  4. Qt Creator添加动态dynamics
  5. kafka学习(一)初识kafka
  6. matlab中nlfilter函数,matlab的一些关于块分类的函数~~~
  7. Linux编程考前测试题
  8. JDK源码解析之 java.lang.Integer
  9. Idea中Spring整合MyBatis框架中配置文件中对象注入问题解决方案
  10. 黄聪:Wordpress3.2去除url中的category(不用插件实现)
  11. 6.2.2 构造函数模式
  12. setinterval 和 ajax,JavaScriptsetInterval和“this”解决方案
  13. 工具 | 网络调试助手的简单使用
  14. 【愚公系列】2022年01月 Django商城项目18-用户中心-密码修改功能页面设计
  15. java httpclient重定向_HTTPClient重定向
  16. MAD、AMV、MMD 的区别
  17. 自制一寸照片的尺寸规范
  18. 桌面虚拟化 VMware Horizon_view 7 安装及管理手册
  19. centos7安装bcc和简单测试
  20. 腾讯云香港轻量新IP段简单测评

热门文章

  1. 2010爆牙笑话第一季!【转】
  2. html右侧文字左对齐,HTML文字怎么左对齐
  3. IDEA 设置前进,后退快捷键
  4. 如何申请阿里云的免费域名HTTPS证书
  5. java informix_Informix 数据库的数据类型
  6. 从前端到全栈-基础能力-js-异步编程
  7. python decorate 的秘密
  8. WPF学习之绘图和动画--DarrenF
  9. R语言t检验,秩和检验,fdr的案例分析
  10. <C++>我用煮粽子的时间拿捏了类和对象中友元的全部形式