分布式文件存储

1 常见专业术语

1.1 备份技术

出于数据恢复的目的而创建的一份额外的数据副本

分类:直接连接备份,网络连接备份, 脱局域网备份,脱服务器备份
在线备份,离线备份,近线备份

①冷备份

冷备份在执行操作时,服务器不再接受来自用户或应用对数据的更新,解决了在备份复制进行时,并发更新的问题。冷备份时间过长,服务器不再接受任何更新操作

②热备份

用户和应用正在更新数据时,系统也可以进行备份,存在完整性问题;每一个文件或数据库实体都需要作为一个完整的,一致的版本进行备份

③文件级备份

文件级备份: 使用服务器操作系统和文件系统来备份文件 优点是很容易恢复某个或某些特定的文件,在进行备份时,操作系统和应用程序可以继续访问文件,但是所需时间较长,比如备份大量的小文推荐,操作系统和文件及目录元数据的访问开销很高,"打开文件"的备份无法解决

④块级备份

映像级备份,完全绕过文件和文件系统,将数据作为裸磁盘块,从磁盘上直接读取数据,不关心有多少文件,也不深入道文件内部,按块在磁盘上的次序读取,而不是在文件中的次序,所以不会因为读取有大量分片的文件数据时因寻道而导致的性能下降。块级备份通常有内建的即时快照支持,可以从根本上解决 "打开文件"问题, 通过执行特殊的操作将运行着的应用程序和它们在服务器内存中的数据进入一致状态,冲刷到磁盘,然后做一个快照,备份过程从快照而不是实际卷上读取改变的数据块,备份完成后删除快照

⑤双活

主备数据中心之间一般有热备、冷备、双活三种备份方式。

热备的情况下,只有主数据中心承担用户的业务,在不停机情况下对主数据中心进行备份。

冷备的情况下,也是只有主数据中心承担业务,在停机情况下对主数据中心进行备份。

双活是觉得备用数据中心只做备份太浪费了,所以让主备两个数据中心都同时承担用户的业务,此时,主备两个数据中心互为备份,并且进行实时备份。一般来说,主数据中心的负载可能会多一些,比如分担60~70%的业务,备数据中心只分担40%~30%的业务 。

⑥两地三中心

两地 = 本地 + 异地

三中心 = 本地中心 + 本地容灾中心 +异地备份中心

1.2 快照技术

快照技术是一种在存储系统中创建数据备份的方法。它可以记录存储设备上特定时间点的数据状态,并且能够在需要时恢复到该时间点的状态。快照技术通过记录数据的变化,而不是复制整个数据集,来实现高效的备份和恢复操作。快照技术可以帮助用户在发生数据丢失、数据损坏或其他故障时,快速恢复到之前的数据状态。

1.3 连续数据保护技术

连续数据保护技术是一种数据备份和恢复的方法,它通过实时记录数据的变化来提供更加精确和及时的数据保护。与传统的周期性备份不同,连续数据保护技术可以在每次数据变化时立即备份数据,从而减少数据丢失的风险。连续数据保护技术通常使用增量备份的方式来记录数据的变化,并且可以提供灵活的恢复点选择,使用户可以选择任意时间点进行数据恢复。

1.4 RAID技术

RAID(Redundant Array of Independent Disks 磁盘阵列)技术是一种通过将多个独立的硬盘组合起来,以提供更高的数据可靠性和性能的存储技术。RAID技术通过将数据分布在多个硬盘上,并使用冗余校验信息来保护数据的完整性。不同的RAID级别提供不同的数据保护和性能特性,例如RAID 0提供了高性能但没有冗余保护,RAID 1提供了数据冗余但没有性

1.5 多路径技术

多路径技术是一种在存储系统中使用多个独立的路径来提供更高的可靠性和性能的方法。多路径技术可以通过使用多个网络连接、多个存储控制器或多个存储设备来实现。当一个路径发生故障时,多路径技术可以自动切换到另一个可用的路径,从而保证存储系统的连续性和可用性。多路径技术还可以通过同时使用多个路径来提高存储系统的性能,例如通过并行传输数据或负载均衡来提供更高的吞吐量和响应性能。

1.6 虚拟化技术

虚拟化技术是一种将物理资源抽象为虚拟资源的方法,以提供更高的资源利用率和灵活性。在存储领域,虚拟化技术可以将多个物理存储设备组合成一个逻辑存储池,并为用户提供统一的存储接口。虚拟化技术可以隐藏底层存储设备的细节,使用户可以更方便地管理和使用存储资源。虚拟化技术还可以提供诸如快照、克隆、压缩、去重等高级功能,以提高存储效率和数据管理的灵活性。

1.7 数据复制与容灾

1.7.1 恢复时间目标(RTO,最大容忍服务停滞时间)

恢复时间目标(RTO: Recovery Time Objective),其以应用为出发点,即应用的恢复时间目标,主要指的是所能容忍的应用停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。RTO是反映业务恢复及时性的指标,表示业务从中断到恢复正常所需的时间。RTO的值越小,代表容灾系统的数据恢复能力越强;

1.7.2 恢复点目标(RPO,最大容忍数据丢失量)

恢复点目标(RPO: Recovery Point Objective),RPO是反映恢复数据完整性的指标,其以数据为出发点,主要指的是业务系统所能容忍的数据丢失量

1.7.3 主动/被动与双活

①主动/被动:

  • 数据备份的一种方式,数据主要存储在主数据中心中,备用数据中心只是在主数据中心出现故障或停机的时候起到备份的作用。而在主数据中心出现故障的期间,备用数据中心并不会被用于实时的数据访问或应用使用。

②双活:两个数据中心承担业务。

  • 双活是觉得备用数据中心只做备份太浪费了,所以让主备两个数据中心都同时承担用户的业务,此时,主备两个数据中心互为备份,并且进行实时备份。一般来说,主数据中心的负载可能会多一些,比如分担6070%的业务,备数据中心只分担40%30%的业务 。

【转】一张秒懂的单机、集群、热备、硬盘阵列

1.8 其他

①workflow

在文件存储中,workflow(工作流程)指的是一系列的操作和步骤,用于管理文件的创建、存储、访问、共享和处理过程。它描述了在文件从创建到最终处理和归档的整个过程中所涉及的任务和活动。

  1. 创建文件
  2. 选择存储位置
  3. 存储文件
  4. 组织和分类
  5. 访问和共享
  6. 协作和版本控制
  7. 处理和修改
  8. 审查和批准
  9. 存档和归档
  10. 销毁或删除

② EOS(Enterprise Object Storage)

EOS 是 Enterprise Object Storage 的缩写,意思是企业级对象存储。它是一种用于存储和管理大规模数据的存储解决方案。对象存储是一种不同于传统文件系统或块存储的存储模型,它将数据存储为独立的对象,每个对象都有一个唯一的标识符(通常是一个URL)。

③ETag、Key、MetaData、Bucket等

  1. ETag(Entity Tag):ETag是HTTP协议中用于标识资源的一种机制。它是一个由服务器生成的唯一标识符,用于判断资源是否发生变化。当客户端请求某个资源时,服务器会将该资源的ETag值返回给客户端。客户端可以在后续的请求中使用该ETag值来验证资源是否发生了变化,从而避免不必要的数据传输。
  2. Key(键):在存储系统中,Key是用于唯一标识一个存储对象的字符串。它类似于数据库中的主键,用于在存储系统中定位和访问特定的对象。Key通常是由用户指定的,可以根据业务需求来设计。
  3. Bucket(存储桶):Bucket是一种用于组织和管理存储对象的容器。它类似于文件系统中的文件夹,可以包含多个存储对象(如文件)。Bucket通常是由存储系统提供商创建的,用户可以在其中创建、删除和管理存储对象。
  4. Metadata(元数据):元数据是描述存储对象的数据。它包含了关于对象的属性信息,如大小、创建时间、修改时间等。元数据通常与存储对象一起存储,并且可以通过存储系统的API来获取和修改。
  5. ACL(Access Control List):ACL是一种访问控制机制,用于定义存储对象的访问权限。通过ACL,用户可以设置存储对象的读写权限,以控制谁可以访问和修改对象。
  6. CDN(Content Delivery Network):CDN是一种分布式网络架构,用于加速静态内容的传输和分发。CDN通过将内容缓存到离用户更近的节点上,减少了数据传输的延迟,提高了用户的访问速度和体验。
  7. Replication(复制):复制是一种数据保护和容灾技术,通过将数据复制到多个存储节点上,提高数据的可靠性和可用性。当一个节点发生故障时,可以从其他节点获取数据,确保数据的持久性和可恢复性。

ETag(实体标签)与Version(版本控制)的区别:

  1. ETag:实体标签

    • ETag是一个由服务器生成的唯一标识符,用于标识资源的特定版本。
    • ETag的生成方式可以是根据资源内容的hash算法,也可以是基于其他规则生成。
    • 当客户端请求某个资源时,服务器会将该资源的ETag值返回给客户端。
    • 客户端可以在后续的请求中使用该ETag值来验证资源是否发生了变化,从而避免不必要的数据传输。
    • ETag通常适用于对资源进行细粒度的控制或验证,例如缓存机制的实现。
  2. Version:版本控制
    • 版本控制通过维护资源的不同版本,用于标识资源的不同状态或修改历史。
    • 版本控制可以基于时间戳、递增的版本号或其他机制来描述资源的不同版本。
    • 每当资源发生变化时,都会创建一个新的版本,并记录相应的变更信息。
    • 客户端可以根据资源的版本号或历史记录来获取或回滚到特定的版本。
      版本控制通常适用于对资源进行完整的历史记录和管理,例如团队协作或代码版本管理系统。

ETag和版本控制的主要区别在于生成方式和应用场景:

  • ETag是基于资源内容生成,适用于对资源进行细粒度的控制和验证,可以用于缓存、条件请求等;而版本控制是基于资源的变更历史生成,适用于管理和跟踪资源的不同版本和变化。
  • ETag主要用于控制缓存和优化网络传输等方面,而版本控制主要用于团队协作、代码管理等需要完整历史记录和版本回滚的场景。

2 常见的分布式文件系统

2.1 GFS(Google File System)

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

2.2 HDFS(Hadoop Distributed File System)

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

2.3 Ceph

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

2.4 Lustre

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

2.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集合中。

2.6 MogileFS

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

2.7 FastDFS(Fast Distributed File System)

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

2.8 TFS(Taobao File System)

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

3 常见存储服务软件介绍

3.1 对象存储

①S3(Simple Storage Service)

S3(Simple Storage Service)是亚马逊网络服务(Amazon Web Services,AWS)提供的一种高度可扩展的对象存储服务。它被广泛用于存储和检索各种类型的数据,包括文本文件、图像、视频、数据库备份、应用程序日志等。

S3特性:

  1. 对象存储
  2. 高可扩展性
  3. 数据持久性和可靠性
  4. 数据安全性
  5. 存储桶和键
  6. 数据访问和传输
  7. 数据生命周期管理
  8. 版本控制
  9. 事件

参考文章:https://blog.csdn.net/qq_37862148/article/details/113999206

分布式文件存储相关概念相关推荐

  1. 大数据产品开发流程规范_大数据技术思想入门(三):分布式文件存储的流程

    如果你不喜欢阅读文字的话,可以选择滑到最后看 视频讲解 哟~~~ 进程和 RPC 在上一篇文章中,我们讲解了要解决好大数据集的存储问题,需要引入一个主从结构的集群,其中,主服务器用于存储元数据,从服务 ...

  2. BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介、下载、案例应用之详细攻略

    BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介.下载.案例应用之详细攻略 目录 MongoDB的简介 1.MongoDB的主要功能特性 2.对MongoDB进行增删改查( ...

  3. MongoDB 一个基于分布式文件存储的数据库

    简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 特点 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: ...

  4. 分布式文件存储FASTDFS

    分布式文件存储FASTDFS 目录 概 述 小结 参考资料和推荐阅读 LD is tigger forever,CG are not brothers forever, throw the pot a ...

  5. 分布式文件存储FastDFS介绍安装部署及相关Java代码编写

    分布式文件存储FastDFS 一.FastDFS简介 1.1 FastDFS体系结构 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传 ...

  6. 架构方案(16) 常见分布式文件存储介绍、选型比较、以及架构设计

    数据正成为世界上最有价值的资源,分布式文件存储是应对数据爆炸的最好解决方案,那就会涉及到分布式文件存储方案.选型.架构设计等. 分布式文件存储的来源 在这个数据爆炸的时代,产生的数据量不断地在攀升,从 ...

  7. 盲沟低比?不不不,是芒果的笔,今天学一下分布式文件存储数据库MongoDB。

    老样子先上图,上一篇NOSQL有大佬说要把首图的数据库全部学习了,今天特意只上了一张小图,一个就够了! 文章目录 前言 一.MongoDB 历史 二.MongoDB 支持语言 三.MongoDB 与关 ...

  8. ceph分布式文件存储性能调优

    ceph分布式文件存储性能调优 一.硬件调优 二.BIOS配置 三.网络配置 四.OS配置 五.硬盘调度算法 六.软件层面 七.ceph参数调优 一.硬件调优 1.NVMe SSD 调优 ● 目的 为 ...

  9. 微服务系列:分布式文件存储之 MinIO 入门指南

    经过前面多篇文章我们学习了服务网关.服务调用.服务注册.服务监控等微服务系列的的相关知识,今天开始我们来学习一下分布式文件的相关知识. 首先我们从学习 MinIO 对象存储服务开始,后面还会学习下其他 ...

最新文章

  1. 湖南省第八届大学生程序设计大赛原题 D - 平方根大搜索 UVA 12505 - Searching in sqrt(n)...
  2. win10 php mysql,Windows10本地搭建IIS+PHP+MYSQL+phpMyAdmin运行环境图文教程(也可用于服务器)...
  3. eeglab教程系列(14)-Working with ICA Components
  4. 苏勇老师写的CCIE详解
  5. 华为旗舰陆续升级鸿蒙系统,华为鸿蒙重磅来袭:今年4月起 华为旗舰手机将陆续升级鸿蒙系统!...
  6. 人群计数最全代码、数据、论文合集
  7. jQeury的日期时分秒生成器插件,使用jQuery的匿名函数,静态方法的使用
  8. eclipse中设置Linux编码环境,更改eclipse中console编码
  9. java代码执行linux命令_java执行Linux命令的方法
  10. Maximize The Beautiful Value
  11. 今天的成功的滋味 企业即时通讯
  12. CCNA笔记:Access Lists
  13. NB-IoT模块 移远BC26接入OneNET
  14. Hibernate一对多双向关联
  15. 跟小海一起看下雪——用HTML、CSS和JS实现简单的下雪特效
  16. error LNK2001的一些原因
  17. python通讯录管理系统
  18. 那些年我们错过的大话西游!!!
  19. java excel 超链接_Java 添加超链接至Excel文档
  20. 【git】error: .repo/manifests/: contains uncommitted changes解决思路

热门文章

  1. uni-app设置背景图片占满全屏
  2. fork()函数创建子进程
  3. 三维激光扫描后处理软件_三维激光扫描技术在异形建筑幕墙安装中的应用
  4. Eplan P8 Pro Panel 2.4 Win32_64-ISO 1DVD电气制图软件
  5. Mysql数据库教程(第一章 表的操作)
  6. 手写模板——前端总结
  7. C语言中,%d和%u的故事
  8. .Net 托管代码和非托管代码的区别
  9. qldump 备份所有表_mysqldump 所有数据库
  10. 做好这四点,职业规划很容易!