精华内容
下载资源
问答
  • 存储系统
    千次阅读
    2022-04-16 08:05:48

    摘要
    2019年6月,我所在的公司中标某集团全国保险大数据平台搭建项目,该项目周期为2年,总投资为5000万人民币,通过该项目,搭建该集团大数据建设项目,实现该集团所有业务以及用户行为数据入库并解析,为集团提供精准营销、挖掘潜在客户等提供业务支撑,帮助集团实现快速的业务增长。我有幸作为此次项目的负责人以及架构师参与了项目的搭建以及开发过程。该项目时间紧任务重、涉及人员组织多,直接相关集团保险公司内部40个部门 600 余人,外部配合协作 20 多个厂商团队 300 余人。该项目于 2021年 5 月完成系统上线, 2021年 6 月通过最终验收,得到了用户的一致肯定,顺利达成了项目既定目标。本文重点结合实际经验,以该项目为例,论述一下项目建设过程中分布式部署存储系统架构设计。

    正文
    2019年6月,我作为项目负责人以及架构师,主持某集团全国保险大数据平台建设项目,该项目周期为2年,总投资为5000万人民币。该项目时间紧任务重,具有相当大的挑战性。一是需要配合的改造部门多,将近有40个部门60个应用配合大数据平台的改造,在数据入湖的时候需要定义统一的数据格式并且要和60个应用进行配合改造。这里面,有一些应用技术老旧、平台维护升级困难、数据来源格式不统一。这就给大数据平台的数据接入带来了相当大的挑战。二是技术含量高,要实现全国保险业务的数据入湖并存储以及解析,并且需要将近5年的数据做特殊处理进行分布式存储。同时,要求大数据平台具有很好的扩展性和高可用性,每日处理的数据量能达到PB级别。三是数据难整合,需要将前5年的数据按其有效性进行分类、转化、整合,并最终展现在界面上,供业务分析和参考。四是涉及人员组织多,直接研发团队成员28人,集团总部再保险部、财务部、风险部、八大业务部、32 个省公司等 200 余人,同时涉及外部配合协作承保系统、核保系统、理赔系统、收付费系统、财务系统等 30 多个厂商团队 300 余人。我担任项目第一负责人,负责项目整体技术方案评估、立项论证以及项目管理工作。在项目启动前,负责分析项目的预期经济效益、可选技术方案,分析关联项目影响,并向公司提交立项报告。项目启动后,作为主要负责人,牵头与公司内部技术专家、外部架构师一同建立项目技术架构组,设计项目整体技术架构,同时挑选项目内部成员,建立需求分析组、系统开发组、系统测试组、运维支持组,开展业务需求分析、系统设计、数据迁移方案、上线切换方案工作。一方面,我个人接受各组工作汇报,指导团队研发工作,监控整体工作进度。同时,我及时向公司领导、项目客户方、相关项目团队汇报沟通工作进展、阐明关键技术要点。
    我们都知道,要建设大数据平台项目,里面很重要的一点,就是实现数据的存储。这里很显然,我们要用分布式存储。目前,分布式存储技术主要包含下面四种技术:
    1.集群存储技术。集群存储系统是指架构在一个可扩充服务器集群中的文件系统,用户不需要考虑文件是存储在集群中的什么位置,仅仅需要使用统一的界面就可以访问文件资源。当负载增加时,只需要在服务器集群中增加新的服务器就可以提高文件系统的性能。集群存储系统能够保留传统的文件存储系统的语义,增加了集群存储系统必须的机制,可以向用户提供高可靠性、高性能、可扩充的文件存储服务。
    2.分布式文件系统。分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包含多个供多用户访问的服务器。另外,对等待性允许一些系统扮演客户机和服务器的双重角色,分布式文件系统以透明方式链接文件服务器和共享文件夹,然后将其映射到单个层次结构,以便可以从一个位置对其进行访问,而实际上数据却分布在不同的位置。用户不必再转至网络上的多个位置以查找所需的信息。
    3.网络存储技术。网络存储系统就是将“存储”和“网络”结合起来,通过网络连接各存储设备,实现存储设备之间、存储设备和服务器之间的数据在网络上的高性能传输。为了充分利用资源,减少投资,存储作为构成计算机系统的主要架构之一,就不再仅仅担负附加设备的角色,逐步成为独立的系统。利用网络将此独立的系统和传统的用户设备连接,使其以高速、稳定的数据存储单元存在。用户可以方便得使用浏览器等客户端进行访问和管理。
    4.P2P网络存储技术。P2P网络存储技术的应用使得内容不是存在几个主要的服务器上,而是存在所有用户的个人电脑上。这就为网络存储提供了可能性,可以将网络中的剩余存储空间利用起来,实现网络存储。
    通过对四种分布式存储技术的比较分析,最终,该项目采用了分布式文件系统技术。因为要实现多个平台的数据入湖,业务允许数据延时,所以我们搭建了Hadoop大数据平台,利用HDFS的高容错性、可构建在廉价的机器上等特点,实现了分布式文件系统的存储。该项目上线运行后,每天都能处理TB级别的数据,当业务量剧增的时候,PB级别的数据处理起来也游刃有余。成功的实现了该项目的预定目标。在项目实施过程中,还需要考虑当部分服务器失效时,数据服务仍可正常访问。这时,就需要用到冗余技术。查询资料得知,常用的冗余技术包括:数据备份、数据分割、门限方案、纠错编码、纠删编码等。在本次项目实施过程中,我们使用到了HDFS的纠删码技术。纠删码技术是一种数据保护技术,最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围的数据出错情况下,通过纠删码技术可以进行恢复。默认的纠删码策略可以节省50%的存储空间,同时还可以承受更多的存储故障。同时,对于一些重要的数据,我们也使用了数据备份技术,将数据备份到云服务端,保障系统在发生不可抗力的时候数据丢失的情况。运用这两种技术,成功提高了分布式存储系统的可靠性,使得系统更加稳定、高效的运行。
    经过我和团队的不懈努力,历时2年,项目终于于 2021年6月顺利通过了验收,并得到了一致好评,运行至今,用户反馈良好,集团公司的再保险业务运营水平得以提升。但是,在实施过程中,也暴露了一些具体问题,例如HDFS上面存储过多的小文件,一方面会大量占用NameNode的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢,影响机器性能等等,这些问题通过应急处理和协调,都得到了妥善解决,没有影响到项目的总体进度。我们已经把这些经验和教训,总结到了工作总结里面,向其他技术人员分享,为今后系统架构设计提供帮助。相信通过不断持续学习改进,加强自己的系统分析与设计能力,努力工作,提升工作水平,为社会和公司多贡献一点自己的价值。

    更多相关内容
  • 在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储、Nas挂载、ftp等等,今天就来盘点一下,分布式文件存储系统。 一、分布式存储简介 1、什么是...

    盘点分布式文件存储系统

    在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储、Nas挂载、ftp等等,今天就来盘点一下,分布式文件存储系统。

    一、分布式存储简介

    1、什么是分布式存储

    在开始介绍分布式存储之前,先了解一下,非分布式的存储方案。

    在单机时代,将文件直接存储在服务部署的服务器上——

    • 直连存储(DAS):存储和数据直连,拓展性、灵活性差。

    为了扩展,将文件和服务分离,通过网络连接——

    • 中心化存储(NAS、SAN):设备类型丰富,通过网络互连,具有一定的拓展性,但是受到控制器能力限制,拓展能力有限。同时,设备到了生命周期要进行更换,数据迁移需要耗费大量的时间和精力。

    DAS、SAN,还是NAS? 中小企业数据存储探究

    **分布式存储:**通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。

    图5 分布式存储示意图

    2、分布式存储的优势

    可扩展:分布式存储系统可以扩展到数百甚至数千个这样的集群大小,并且系统的整体性能可以线性增长。

    高可用性:在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据的完整和一致性

    低成本:分布式存储系统的自动容错和自动负载平衡允许在成本较低服务器上构建分布式存储系统。此外,线性可扩展性还能够增加和降低服务器的成本。

    弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行

    二、主流分布式文件存储系统

    目前主流的分布式文件系统有:GFS、HDFS、Ceph、Lustre、MogileFS、MooseFS、FastDFS、TFS、GridFS等。

    1、GFS(Google File System)

    ? Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。

    2、HDFS(Hadoop Distributed File System)

    ? HDFS(Hadoop Distributed File System)是 Hadoop 项目的一个子项目。是 Hadoop 的核心组件之一, Hadoop 非常适于存储大型数据 (比如 TB 和 PB),其就是使用 HDFS 作为存储系统. HDFS 使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。

    HDFS架构

    3、TFS(Taobao FileSystem)

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

    4、Lustre

    Lustre是一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护的。该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10000个节点,数以PB的数据量存储系统。目前Lustre已经运用在一些领域,例如HP SFS产品等。

    5、 MooseFS

    MooseFS是一款相对小众的分布式文件系统,不需要修改上层应用接口即可直接使用,支持FUSE的操作方式,部署简单并提供Web界面的方式进行管理与监控,同其他分布式操作系统一样,支持在线扩容,并进行横向扩展。MooseFS还具有可找回误操作删除的文件,相当于一个回收站,方便业务进行定制;同时MooseFS对于海量小文件的读写要比大文件读写的效率高的多。

    但MooseFS的缺点同样明显,MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展。短期的对策就是按照业务来做切分,随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大。并且对于其单点问题官方自带的是把数据信息从Master Server同步到Metalogger Server上,Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间。目前,也可以通过第三方的高可用方案(heartbeat+drbd+moosefs)来解决 Master Server 的单点问题。

    6、MogileFS

    由memcahed的开发公司danga一款perl开发的产品,目前国内使用mogielFS的有图片托管网站yupoo等。MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上。

    7. FastDFS

    是一款类似Google FS的开源分布式文件系统,是纯C语言开发的。FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

    8、GlusterFS

    开源分布式横向扩展文件系统,可以根据存储需求快速调配存储,内含丰富的自动故障转移功能,且摈弃集中元数据服务器的思想。适用于数据密集型任务的可扩展网络文件系统,具有可扩展性、高性能、高可用性等特点。gluster于2011年10月7日被Red Hat收购。

    9、 GridFS

    MongoDB是知名的NoSQL数据库,GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。文件在GridFS中会按4MB为单位进行分块存储。

    在这里插入图片描述

    三、分布式文件系统的对比

    1、整体对比

    文件系统开发者开发语言开源协议易用性适用场景特性缺点
    GFSGoogle不开源
    HDFSApacheJavaApache安装简单,官方文档专业化存储非常大的文件大数据批量读写,吞吐量高;一次写入,多次读取,顺序读写难以满足毫秒级别的低延时数据访问;不支持多用户并发写相同文件;不适用于大量小文件
    Ceph加州大学圣克鲁兹分校Sage WeilC++LGPL安装简单,官方文档专业化单集群的大中小文件分布式,没有单点依赖,用C编写,性能较好基于不成熟的btrfs,自身也不够成熟稳定,不推荐在生产环境使用
    TFSAlibabaC++GPL V2安装复杂,官方文档少跨集群的小文件针对小文件量身定做,随机IO性能比较高;实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;支持主备热倒换,提升系统的可用性;支持主从集群部署,从集群主要提供读/备功能不适合大文件的存储;不支持POSIX,通用性较低;不支持自定义目录结构与文件权限控制;通过API下载,存在单点的性能瓶颈;官方文档少,学习成本高
    LustreSUNCGPL复杂,而且严重依赖内核,需要重新编译内核大文件读写企业级产品,非常庞大,对内核和ext3深度依赖
    MooseFSCore Sp. z o.o.CGPL V3安装简单,官方文档多,且提供Web界面的方式进行管理与监控大量小文件读写比较轻量级,用perl编写,国内用的人比较多对master服务器有单点依赖,性能相对较差
    MogileFSDanga InteractivePerlGPL主要用在web领域处理海量小图片key-value型元文件系统;效率相比mooseFS高很多不支持FUSE
    FastDFS国内开发者余庆CGPL V3安装简单,社区相对活跃单集群的中小文件系统无需支持POSIX,降低了系统的复杂度,处理效率更高;实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;支持主从文件,支持自定义扩展名;主备Tracker服务,增强系统的可用性不支持断点续传,不适合大文件存储;不支持POSIX,通用性较低;对跨公网的文件同步,存在较大延迟,需要应用做相应的容错策略;同步机制不支持文件正确性校验;通过API下载,存在单点的性能瓶颈
    GlusterFSZ RESEARCHCGPL V3安装简单,官方文档专业化适合大文件,小文件性能还存在很大优化空间无元数据服务器,堆栈式架构(基本功能模块可以进行堆栈式组合,实现强大功能),具有线性横向扩展能力;比mooseFS庞大由于没有元数据服务器,因此增加了客户端的负载,占用相当的CPU和内存;但遍历文件目录时,则实现较为复杂和低效,需要搜索所有的存储节点,不建议使用较深的路径
    GridFSMongoDBC++安装简单通常用来处理大文件(超过16M)可以访问部分文件,而不用向内存中加载全部文件,从而保持高性能;文件和元数据自动同步

    2、 特性对比

    文件系统数据存储方式集群节点通讯协议专用元数据存储点在线扩容冗余备份单点故障跨集群同步FUSE挂载访问接口
    HDFS文件私有协议(TCP)占用MDS支持存在不支持支持不支持POSIX
    Ceph对象/文件/块私有协议(TCP)占用MDS支持支持存在不支持支持POSIX
    Lustre对象私有协议(TCP)/ RDAM(远程直接访问内存)双MDS支持不支持存在未知支持POSIX/MPI
    MooseFS私有协议(TCP)占用MFS支持支持存在不支持支持POSIX
    MogileFS文件HTTP占用DB支持不支持存在不支持不支持不支持POSIX
    FastDFS文件/块私有协议(TCP)支持支持不存在部分支持不支持不支持POSIX
    GlusterFS文件/块私有协议(TCP)/RDAM(远程直接访问内存)支持支持不存在支持支持POSIX
    TFS文件私有协议(TCP)占用NS支持支持存在支持未知不支持POSIX

    什么是POSIX?

    POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),也就是Unix下应用程序共同遵循的一种规范。支持POSIX的应用程序意味着在各个Unix系统间提供了跨平台运行的支持。

    四、选型参考

    • 适合做通用文件系统的有:Ceph,Lustre,MooseFS,GlusterFS;
    • 适合做小文件存储的文件系统有:Ceph,MooseFS,MogileFS,FastDFS,TFS;
    • 适合做大文件存储的文件系统有:HDFS,Ceph,Lustre,GlusterFS,GridFS;
    • 轻量级文件系统有:MooseFS,FastDFS;
    • 简单易用,用户数量活跃的文件系统有:MooseFS,MogileFS,FastDFS,GlusterFS;
    • 支持FUSE挂载的文件系统有:HDFS,Ceph,Lustre,MooseFS,GlusterFS。

    分布式文件存储系统简介

    在分布式存储技术体系当中,分布式文件存储是其中的分类之一,也是大数据架构当中常常用到的。得益于Hadoop的高人气,Hadoop原生的HDFS分布式文件系统,也广泛为人所知。但是分布式文件存储系统,并非只有HDFS。今天的大数据开发分享,我们就主要来讲讲常见的分布式文件存储系统。

    分布式文件系统,可以说是分布式系统下的一个子集,这里我们选取市场应用比较广泛的几款产品,HDFS、Ceph、FastDFS以及MooseFS来做简单的分析——

    img

    HDFS

    如上所说,HDFS是分布式文件系统当中人气非常高的一个。基于Hadoop基础架构,HDFS天然就有很好的优势,尤其是面对大规模离线批处理任务,地位难以撼动。

    HDFS,可以为各类分布式计算框架如Spark、MapReduce等提供海量数据存储服务,同时HBase、Hive底层存储也依赖于HDFS。与Hadoop生态的紧密联系,也使其稳稳占据市场主流地位。

    优点:

    高容错性:数据自动保存多个副本,副本丢失后,自动恢复

    适合批处理:移动计算而非数据。数据位置暴露给计算框架

    适合大数据处理:GB,TB,甚至PB级数据。百万规模以上文件数量。10K+节点规模。

    流式文件访问:一次性写入,多次读取。保证数据一致性。

    可构建在廉价机器上:通过多副本提高可靠性。提供容错和恢复机制。

    缺点:

    不适合低延迟数据访问场景:比如毫秒级,低延迟与高吞吐率

    不适合小文件存取场景:占用NameNode大量内存。寻道时间超过读取时间。

    不适合并发写入,文件随机修改场景:一个文件只能有一个写者。仅支持append

    不符合posix语义,需要通过SDK来读写操作。对java支持良好,其他语言一般

    Ceph

    企业级的存储需求,通常分为块存储、文件存储和对象存储,而Ceph能够同时满足这三种需求。Ceph提供三大存储接口,能够将企业中的三种存储需求统一汇总到一个存储系统中,并提供分布式、横向扩展,高度可靠性的存储,具备高可用性、高性能及可扩展等特点。

    优点:

    支持对象存储(OSD)集群,通过CRUSH算法,完成文件动态定位,处理效率更高

    符合posix语义,支持通过FUSE方式挂载,降低客户端的开发成本,通用性高

    支持分布式的MDS/MON,无单点故障

    强大的容错处理和自愈能力

    支持在线扩容和冗余备份,增强系统的可靠性

    缺点:

    目前处于试验阶段,系统稳定性有待考究

    部署和运维较复杂,集群管理工具较少

    FastDFS

    FastDFS是以C语言开发的一项开源轻量级分布式文件系统,提供文件存储、文件同步、文件访问(文件上传/下载)等通用文件管理操作,尤其适合以文件为载体的在线服务,如图片网站,视频网站等。追求高性能和高扩展性FastDFS,可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适。

    优点:

    支持在线扩容机制,增强系统的可扩展性

    实现了软RAID,增强系统的并发处理能力及数据容错恢复能力

    支持主从文件,支持自定义扩展名

    主备Tracker服务,增强系统的可用性

    缺点:

    不支持POSIX通用接口访问,通用性较低

    对跨公网的文件同步,存在较大延迟,需要应用做相应的容错策略

    同步机制不支持文件正确性校验,降低了系统的可用性

    通过API下载,存在单点的性能瓶颈

    MooseFS

    MooseFS是在HDFS之后出现的,它也是类似的MDS+OSS架构,区别于HDFS的是,MooseFS没有对运行其上的业务做假设,它没有假设业务是大文件或海量小文件,也就是说,MooseFS的定位是像ext4、xfs、NTFS等单机文件系统一样的通用型文件存储。

    优点:

    扩容成本低、支持在线扩容,不影响业务,体系架构可伸缩性极强

    支持POSIX通用接口访问,支持通过FUSE方式挂载,降低客户端的开发成本,通用性高

    文件对象高可用,可设置任意的文件冗余程度(提供比Raid 10更高的冗余级别)

    提供系统负载,将数据读写分配到所有的服务器上,加速读写性能

    实现了软RAID,增强系统的并发处理能力及数据容错恢复能力

    数据恢复比较容易,增强系统的可用性。有回收站功能,方便业务定制

    缺点:

    Master Server的单点解决方案的健壮性。Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间

    Master Server本身的性能瓶颈。MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展

    随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大

    MinIO

    什么是MinIO ?

    根据官方定义:

    1. MinIO 是在 Apache License v2.0 下发布的对象存储服务器。 它与 Amazon S3 云存储服务兼容。 它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM 映像。 对象的大小可以从几 KB 到最大 5TB。
    2. MinIO 服务器足够轻,可以与应用程序堆栈捆绑在一起,类似于 NodeJS,Redis 和 MySQL。
    3. 一种高性能的分布式对象存储服务器,用于大型数据基础设施。它是机器学习和其他大数
      据工作负载下 Hadoop HDFS 的理想 s3 兼容替代品。

    为什么需要MinIO?

    1. Minio 有良好的存储机制
    2. Minio 有很好纠删码的算法与擦除编码算法
    3. 拥有RS code 编码数据恢复原理
    4. 公司做强做大时,数据的拥有重要性,对数据治理与大数据分析做准备。
    5. 搭建自己的一套文件系统服务,对文件数据进行安全保护。
    6. 拥有自己的平台,不限于其他方限制。

    MinIO 和其他OSS存储解决方案各有什么优缺点?

    这里主要针对Ceph、Minio、FastDFS 热门的存储解决方案进行比较。

    Ceph

    优点

    • 成熟
    • 红帽继子,ceph创始人已经加入红帽
    • 国内有所谓的ceph中国社区,私人机构,不活跃,文档有滞后,而且没有更新的迹象。
    • 从git上提交者来看,中国有几家公司的程序员在提交代码,星辰天合,easystack, 腾讯、阿里基于ceph在做云存储,但是在开源社区中不活跃,阿里一位叫liupan的有参与
    • 功能强大
    • 支持数千节点
    • 支持动态增加节点,自动平衡数据分布。(TODO,需要多长时间,add node时是否可以不间断运行)
    • 可配置性强,可针对不同场景进行调优

    缺点
    学习成本高,安装运维复杂。

    Minio

    优点

    • 学习成本低,安装运维简单,开箱即用
    • 目前minio论坛推广给力,有问必答
    • 有java客户端、js客户端
    • 数据保护:分布式Minio采用 纠删码来防范多个节点宕机和位衰减bit rot。分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。
    • 一致性:Minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。

    缺点

    • 社区不够成熟,业界参考资料较少
    • 不支持动态增加节点,minio创始人的设计理念就是动态增加节点太复杂,后续会采用其它方案来支持扩容。

    FastDFS

    fastdfs是阿里余庆做的一个个人项目,在一些互联网创业公司中有应用,没有官网,不活跃,6个contributors。

    让我放弃FastDFS拥抱MinIO的8个瞬间

    https://blog.csdn.net/qq_43842093/article/details/121867111

    展开全文
  • 分布式数据存储系统:三要素

    万次阅读 2021-12-26 13:28:33
    分布式数据存储系统:三要素前言什么是分布式数据存储系统?分布式数据存储系统三要素顾客:生产和消费数据导购:确定数据位置货架:存储数据知识扩展:业界主流的分布式数据存储系统有哪些?总结 前言 CAP 理论...


    前言

    CAP 理论指出,在分布式系统中,不能同时满足一致性、可用性和分区容错性,指导了分布式数据存储系统的设计。

    随着数据量和访问量的增加,单机性能已经不能满足用户需求,分布式集群存储成为一种常用方式。把数据分布在多台存储节点上,可以为大规模应用提供大容量、高性能、高可用、 高扩展的存储服务。而分布式存储系统就是其具体实现。

    分布式存储系统的关键三要素:顾客、导购与货架。

    什么是分布式数据存储系统?

    分布式存储系统的核心逻辑:将用户需要存储的数据根据某种规则存储到不同的机器上,当用户想要获取指定数据时,再按照规则到存储数据的机器里获取。

    如下图所示,当用户(即应用程序)想要访问数据 D,分布式操作引擎通过一些映射方式,比如 Hash、一致性 Hash、数据范围分类等,将用户引导至数据 D 所属的存储节点获取数据。

    在这里插入图片描述

    获取数据的整个过程与商店购物的过程类似,顾客到商店购物时,导购会根据顾客想要购买的商品引导顾客到相应的货架,然后顾客从这 个货架上获取要购买的商品,完成购物。这里的顾客就是图中的应用程序,导购就相当于分布式操作引擎,它会按照一定的规则找到相应的货架,货架就是存储数据的不同机器节点。

    这个过程就是分布式存储系统中获取数据的通用流程,顾客、导购和货架组成了分布式存储系统的三要素,分别对应着分布式领域中的数据生产者 / 消费者、数据索引和数据存储。

    分布式数据存储系统三要素

    顾客就是数据的生产者和消费者,顾客代表两类角色,生产者会生产数据(比如, 商店购物例子中的供货商就属于生产类顾客),将数据存储到分布式数据存储系统中,消费者是从分布式数据存储系统中获取数据进行消费(比如,商店购物例子中购买商品的用户就属于消费类顾客);导购就是数据索引,将访问数据的请求转发到数据所在的存储节点;货架就是存储设备,用于存储数据。

    顾客:生产和消费数据

    顾客相当于分布式存储系统中的应用程序,而数据是应用程序的原动力。根据数据的产生和使用,顾客分为生产者和消费者两种类型。生产者负责给存储系统添加数据,而消费者则可以使用系统中存储的数据。

    就像是火车票存储系统,铁路局就相当于生产者类型的顾客,而乘客就相当于消费者类型的顾客。铁路局将各个线路的火车票信息发布到订票网站的后台数据库中,乘客通过订票网站访问数据库,来进行查询余票、订票、退票等操作。

    在这里插入图片描述

    生产者和消费者生产和消费的数据通常是多种多样的,不同应用场景中数据的类型、格式等都不一样。根据数据的特征,这些不同的数据通常被划分为三类:结构化数据、半结构化数据和非结构化数据:

    • 结构化数据:指关系模型数据,其特征是数据关联较大、格式固定。火车票信息比如起点站、终点站、车次、票价等,就是一种结构化数据。结构化数据具有格式固定的特征,因此一般采用分布式关系数据库进行存储和查询。
    • 半结构化数据:指非关系模型的,有基本固定结构模式的数据,其特征是数据之间关系比较简单。比如 HTML 文档,使用标签书写内容。半结构化数据大多可以采用键值对形式来表示,比如 HTML 文档可以将标签设置为 key,标签对应的内容可以设置为 value,因此一般采用分布式键值系统进行存储和使用。
    • 非结构化数据:指没有固定模式的数据,其特征是数据之间关联不大。比如文本数据就是一种非结构化数据。这种数据可以存储到文档中,通过 ElasticSearch(一个分布式全文搜索引擎)等进行检索。

    导购:确定数据位置

    导购是分布式存储系统必不可少的要素,如果没有导购, 顾客就需要逐个货架去寻找自己想要的商品。如果去订票网站订火车票,按照自己的需求点击查询车票后,系统会逐个扫描分布式存储系统中每台机器的数据,寻找你想要购买的火车票。如果系统中存储的数据不多,响应时间也不会太长,毕竟计算机的速度还是很快的;但如果数据分布在几千台甚至上万台机器中,系统逐个机器扫描后再给你响应,严重影响购票体验。

    因此在分布式存储系统中,必须有相应的数据导购,否则系统响应会很慢,效率很低。为解决这个问题,数据分片技术就走入了分布式存储系统中。

    数据分片技术:指分布式存储系统按照一定的规则将数据存储到相对应的存储节点中,或者到相对应的存储节点中获取想要的数据,优点:

    1. 降低单个存储节点的存储和访问压力;
    2. 通过规定好的规则快速找到数据所在的存储节点,从而大大降低搜索延迟,提高用户体验。

    当铁路局发布各个线路的火车票信息时,会按照一定规则存储到相应的机器中, 比如北京到上海的火车票存储到机器 A 中,西安到重庆的火车票存储到机器 B 中。当乘客查询火车票时,系统就可以根据查询条件迅速定位到相对应的存储机器,然后将数据返回给用户,响应时间就大大缩短了。如图所示,当查询北京 - 上海的火车票相关信息时,可以与机器 A 进行数据交互。

    在这里插入图片描述

    例子中按照数据起点、终点的方式划分数据,将数据分为几部分存储到不同的机器节点中,就是数据分片技术的一种。当查询数据时,系统可以根据查询条件迅速找到对应的存储节点,从而实现快速响应。 还有其他很多数据分片的方案。比如,按照数据范围,采用哈希映射、一致性哈希环等对数据划分。

    针对数据范围的数据分片方案:按照某种规则划分数据范围,然后将在这个范围内的数据归属到一个集合中。这就好比数学中通常讲的整数区间,比如 1~1000 的整数,[1,100] 的整数属于一个子集、[101,1000] 的整数属于另一个子集。

    对于前面讲的火车票的案例,按照数据范围分片的话,可以将属于某条线的所有火车票数据划分到一个子集或分区进行存储,比如机器 A 存储京广线的火车票数据,机器 B 存储京沪线的火车票数据。数据范围的方案是按照范围或区间进行存储或查询。

    如图所示,当用户查询北京 - 上海的火车票相关信息时,首先判断查询条件属于哪个范围,由于北京 - 上海的火车线路属于京沪线,因此系统按照规则将查询请求转到存取京沪线火车票数据的机器 B,然后由机器 B 进行处理并给用户返回响应结果。

    在这里插入图片描述

    为了提高分布式系统的可用性与可靠性,除了通过数据分片减少单个节点的压力外,数据复制也是一个非常重要的方法。数据复制是将数据进行备份,以使得多个节点存储该数据

    数据复制和数据分片技术的区别:

    在这里插入图片描述

    数据 A 被拆分为两部分存储在两个节点 Node1 和 Node2 上,属于数据分片;数据 B 同一份完整的数据在两个节点中均有存储,就属于数据复制。

    在实际的分布式存储系统中,数据分片和数据复制通常是共存的:

    数据通过分片方式存储到不同的节点上,以减少单节点的性能瓶颈问题;而数据的存储通常用主备方式保证可靠性,对每个节点上存储的分片数据,采用主备方式存储,以保证数据的可靠性。主备节点上数据的一致,是通过数据复制技术实现的。

    Kafka 集群消息存储架构图,消息数据以 Partition(分区)进行存储,一个 Topic(主题)可以由多个 Partition 进行存储,Partition 可以分布到多个 Broker 中;同时,Kafka 还提供了 Partition 副本机制(对分区存储的信息进行备份,比如 Broker 1 中的 Topic-1 Partion-0 是对 Broker 0 上的 Topic-1 Partition-0 进行的备份),从而保证了消息存储的可靠性。

    在这里插入图片描述

    货架:存储数据

    货架是用来存储数据的,因为数据是由顾客产生和消费的,因此货架存储的数据类型与顾客产生和消费的数据类型是一致的,即包括结构化数据、半结构化数据和非结构化数据。

    针对这三种不同的数据类型,存储“货架”划分为三种:

    • 分布式数据库:通过表格来存储结构化数据,方便查找。常用的分布式数据库有 MySQL Sharding、Microsoft SQL Azure、Google Spanner、Alibaba OceanBase 等。
    • 分布式键值系统:通过键值对来存储半结构化数据。常用的分布式键值系统有 Redis、 Memcache 等,可用作缓存系统。
    • 分布式存储系统:通过文件、块、对象等来存储非结构化数据。常见的分布式存储系统 有 Ceph、GFS、HDFS、Swift 等。

    对存储介质的选择,本质是选择将数据存储在磁盘还是内存(缓存) 上:

    • 磁盘存储量大,但 IO 开销大,访问速度较低,常用于存储不经常使用的数据。比如,电商系统中,排名比较靠后或购买量比较少、甚至无人购买的商品信息,通常就存储在磁盘上。
    • 内存容量小,访问速度快,因此常用于存储需要经常访问的数据。比如,电商系统中, 购买量比较多或排名比较靠前的商品信息,通常就存储在内存中。

    知识扩展:业界主流的分布式数据存储系统有哪些?

    货架针对结构化数据、半结构化数据和非结构化数据,分别对应不同的“货架”,即分布式数据库、分布式键值系统和分布式文件系统进行存储。

    主流的分布式数据库,主要包括 MySQL Sharding、SQL Azure、 Spanner、OceanBase 等。

    在这里插入图片描述

    主流的分布式存储系统,主要包括 Ceph、GFS、HDFS 和 Swift 等。

    在这里插入图片描述

    总结

    分布式数据存储系统的三要素,即顾客、导购和货架,对应到分布式领域的术语就是数据生产者 / 消费者、数据索引和数据存储。

    • 顾客包括产生数据的顾客和消费数据的顾客两类;
    • 导购是数据索引引擎,包括数据存储时确定数据位置,以及获取数据时确定数据所在位置;
    • 货架负责数据存储,包括磁盘、缓存等存储介质等。

    不同应用场景中,顾客产生的数据类型、格式等通常都不一样。根据数据的特征,这些不同的数据可以被划分为三类:结构化数据、半结构化数据和非结构化数据。与之相对应的,货架也就是数据存储系统,也包括三类:分布式数据库、分布式键值系统和分布式文件系统。

    在这里插入图片描述

    展开全文
  • 盘点分布式文件存储系统

    千次阅读 2021-02-08 22:14:23
    在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储、Nas挂载、ftp等等,今天就来盘点一下,分布式文件存储系统

    在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储、Nas挂载、ftp等等,今天就来盘点一下,分布式文件存储系统。

    一、分布式存储简介

    1、什么是分布式存储

    在开始介绍分布式存储之前,先了解一下,非分布式的存储方案。

    在单机时代,将文件直接存储在服务部署的服务器上——

    • 直连存储(DAS):存储和数据直连,拓展性、灵活性差。

    为了扩展,将文件和服务分离,通过网络连接——

    • 中心化存储(NAS、SAN):设备类型丰富,通过网络互连,具有一定的拓展性,但是受到控制器能力限制,拓展能力有限。同时,设备到了生命周期要进行更换,数据迁移需要耗费大量的时间和精力。

    DAS、SAN,还是NAS? 中小企业数据存储探究

    分布式存储:通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。

    图5 分布式存储示意图

    2、分布式存储的优势

    可扩展:分布式存储系统可以扩展到数百甚至数千个这样的集群大小,并且系统的整体性能可以线性增长。

    高可用性:在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据的完整和一致性

    低成本:分布式存储系统的自动容错和自动负载平衡允许在成本较低服务器上构建分布式存储系统。此外,线性可扩展性还能够增加和降低服务器的成本。

    弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行

    二、主流分布式文件存储系统

    目前主流的分布式文件系统有:GFS、HDFS、Ceph、Lustre、MogileFS、MooseFS、FastDFS、TFS、GridFS等。

    1、GFS(Google File System)

    ​ Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。

    2、HDFS(Hadoop Distributed File System)

    ​ HDFS(Hadoop Distributed File System)是 Hadoop 项目的一个子项目。是 Hadoop 的核心组件之一, Hadoop 非常适于存储大型数据 (比如 TB 和 PB),其就是使用 HDFS 作为存储系统. HDFS 使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。

    HDFS架构

    3、TFS(Taobao FileSystem)

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

    4、Lustre

    Lustre是一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护的。该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10000个节点,数以PB的数据量存储系统。目前Lustre已经运用在一些领域,例如HP SFS产品等。

    5、 MooseFS

    MooseFS是一款相对小众的分布式文件系统,不需要修改上层应用接口即可直接使用,支持FUSE的操作方式,部署简单并提供Web界面的方式进行管理与监控,同其他分布式操作系统一样,支持在线扩容,并进行横向扩展。MooseFS还具有可找回误操作删除的文件,相当于一个回收站,方便业务进行定制;同时MooseFS对于海量小文件的读写要比大文件读写的效率高的多。

    但MooseFS的缺点同样明显,MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展。短期的对策就是按照业务来做切分,随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大。并且对于其单点问题官方自带的是把数据信息从Master Server同步到Metalogger Server上,Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间。目前,也可以通过第三方的高可用方案(heartbeat+drbd+moosefs)来解决 Master Server 的单点问题。

    6、MogileFS

    由memcahed的开发公司danga一款perl开发的产品,目前国内使用mogielFS的有图片托管网站yupoo等。MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上。

    7. FastDFS

    是一款类似Google FS的开源分布式文件系统,是纯C语言开发的。FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

    8、GlusterFS

    开源分布式横向扩展文件系统,可以根据存储需求快速调配存储,内含丰富的自动故障转移功能,且摈弃集中元数据服务器的思想。适用于数据密集型任务的可扩展网络文件系统,具有可扩展性、高性能、高可用性等特点。gluster于2011年10月7日被Red Hat收购。

    9、 GridFS

    MongoDB是知名的NoSQL数据库,GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。文件在GridFS中会按4MB为单位进行分块存储。

    在这里插入图片描述

    三、分布式文件系统的对比

    1、整体对比

    文件系统开发者开发语言开源协议易用性适用场景特性缺点
    GFSGoogle不开源
    HDFSApacheJavaApache安装简单,官方文档专业化存储非常大的文件大数据批量读写,吞吐量高;一次写入,多次读取,顺序读写难以满足毫秒级别的低延时数据访问;不支持多用户并发写相同文件;不适用于大量小文件
    Ceph加州大学圣克鲁兹分校Sage WeilC++LGPL安装简单,官方文档专业化单集群的大中小文件分布式,没有单点依赖,用C编写,性能较好基于不成熟的btrfs,自身也不够成熟稳定,不推荐在生产环境使用
    TFSAlibabaC++GPL V2安装复杂,官方文档少跨集群的小文件针对小文件量身定做,随机IO性能比较高;实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;支持主备热倒换,提升系统的可用性;支持主从集群部署,从集群主要提供读/备功能不适合大文件的存储;不支持POSIX,通用性较低;不支持自定义目录结构与文件权限控制;通过API下载,存在单点的性能瓶颈;官方文档少,学习成本高
    LustreSUNCGPL复杂,而且严重依赖内核,需要重新编译内核大文件读写企业级产品,非常庞大,对内核和ext3深度依赖
    MooseFSCore Sp. z o.o.CGPL V3安装简单,官方文档多,且提供Web界面的方式进行管理与监控大量小文件读写比较轻量级,用perl编写,国内用的人比较多对master服务器有单点依赖,性能相对较差
    MogileFSDanga InteractivePerlGPL主要用在web领域处理海量小图片key-value型元文件系统;效率相比mooseFS高很多不支持FUSE
    FastDFS国内开发者余庆CGPL V3安装简单,社区相对活跃单集群的中小文件系统无需支持POSIX,降低了系统的复杂度,处理效率更高;实现了软RAID,增强系统的并发处理能力及数据容错恢复能力;支持主从文件,支持自定义扩展名;主备Tracker服务,增强系统的可用性不支持断点续传,不适合大文件存储;不支持POSIX,通用性较低;对跨公网的文件同步,存在较大延迟,需要应用做相应的容错策略;同步机制不支持文件正确性校验;通过API下载,存在单点的性能瓶颈
    GlusterFSZ RESEARCHCGPL V3安装简单,官方文档专业化适合大文件,小文件性能还存在很大优化空间无元数据服务器,堆栈式架构(基本功能模块可以进行堆栈式组合,实现强大功能),具有线性横向扩展能力;比mooseFS庞大由于没有元数据服务器,因此增加了客户端的负载,占用相当的CPU和内存;但遍历文件目录时,则实现较为复杂和低效,需要搜索所有的存储节点,不建议使用较深的路径
    GridFSMongoDBC++安装简单通常用来处理大文件(超过16M)可以访问部分文件,而不用向内存中加载全部文件,从而保持高性能;文件和元数据自动同步

    2、 特性对比

    文件系统数据存储方式集群节点通讯协议专用元数据存储点在线扩容冗余备份单点故障跨集群同步FUSE挂载访问接口
    HDFS文件私有协议(TCP)占用MDS支持存在不支持支持不支持POSIX
    Ceph对象/文件/块私有协议(TCP)占用MDS支持支持存在不支持支持POSIX
    Lustre对象私有协议(TCP)/ RDAM(远程直接访问内存)双MDS支持不支持存在未知支持POSIX/MPI
    MooseFS私有协议(TCP)占用MFS支持支持存在不支持支持POSIX
    MogileFS文件HTTP占用DB支持不支持存在不支持不支持不支持POSIX
    FastDFS文件/块私有协议(TCP)支持支持不存在部分支持不支持不支持POSIX
    GlusterFS文件/块私有协议(TCP)/RDAM(远程直接访问内存)支持支持不存在支持支持POSIX
    TFS文件私有协议(TCP)占用NS支持支持存在支持未知不支持POSIX

    什么是POSIX?

    POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),也就是Unix下应用程序共同遵循的一种规范。支持POSIX的应用程序意味着在各个Unix系统间提供了跨平台运行的支持。

    四、选型参考

    • 适合做通用文件系统的有:Ceph,Lustre,MooseFS,GlusterFS;

    • 适合做小文件存储的文件系统有:Ceph,MooseFS,MogileFS,FastDFS,TFS;

    • 适合做大文件存储的文件系统有:HDFS,Ceph,Lustre,GlusterFS,GridFS;

    • 轻量级文件系统有:MooseFS,FastDFS;

    • 简单易用,用户数量活跃的文件系统有:MooseFS,MogileFS,FastDFS,GlusterFS;

    • 支持FUSE挂载的文件系统有:HDFS,Ceph,Lustre,MooseFS,GlusterFS。



    参考:

    【1】:分布式文件系统对比与选型参考

    【2】:只知道HDFS和GFS?你其实并不懂分布式文件系统

    【3】:分布式存储主流框架

    【4】:如果要设计个分布式文件系统,该从哪些方面考虑?

    【5】: 常见分布式文件存储介绍、选型比较、架构设计

    【6】:分布式文件系统对比与选型参考

    【7】:中小企业存储:DAS、NAS和SAN的选择

    【8】:从DAS到分布式存储,存储形式总结

    展开全文
  • 现有的存储系统经过长期发展,种类及其繁多,架构也各不相同,按照从底层到上层的思路,大致可以分为:物理层、协议层、架构层、连接层四个层次。接下来我们由下往上详细分析。 物理层:顾名思义,就是用来存储数据...
  • 存储系统的层次结构

    千次阅读 2021-04-29 15:33:54
    目录一.背景二.层次结构(1)结构(2)原理 一.背景 现在我们使用的计算机系统结构是冯诺依曼体系结构,它的一个特点就是中央处理器CPU(控制器+算数运算器)与存储器相...所以就有了我们接下来的存储系统层次结构。
  • 各类分布式存储系统简介

    万次阅读 2017-10-23 15:31:26
    本地文件系统如ext3,reiserfs等(这里不讨论基于内存的文件系统),它们管理本地的磁盘存储资源、提供文件到存储位置的映射,并抽象出一套文件访问接口供用户使用。但随着互联网企业的高速发展,这些企业对数据存储...
  • 开源分布式存储系统的对比

    万次阅读 多人点赞 2018-04-20 16:32:49
    我们在选型开源分布式存储系统框架之前需要对不同的框架进行调研。 所有的开源存储系统介绍链接 存储系统对比 目前比较热门的分布式文件系统有如下几种: Ceph,GlusterFS,Sheepdog,Lustre,Swift,Cinder,TFS,HDFS...
  • 安防CVR存储系统设计解决方案

    千次阅读 2020-05-21 21:02:38
    存储分系统的设计需建立满足承载应用系统要求的数据存储能力,根据用户的网络和实际应用情况,对视频监控存储系统的建设要满足如下需求: 高性能 由于有多路摄像头数据并发持续写入,考虑以后摄像头的增加,并且同时...
  • 目前第一代表格存储系统 Bytable1.0 已作为搜索和推荐的底层数据存储稳定运行,我们团队正在此基础上演进第二代表格存储系统 Bytable2.0。 1. 背景 随着头条全网搜索项目的启动和发展,业务需要一个全局有序、容量...
  • 单机存储系统

    千次阅读 2017-06-05 14:11:59
    单机存储系统是单机存储引擎的一种封装,对外提供文件、键值、表格或者关系模型,单机存储系统的理论来源于关系数据库。 哈希存储引擎是哈希表的持久化实现。 B树存储引擎是B树的持久化实现。 LSM树(Log structure ...
  • 海量分布式存储系统Doris

    千次阅读 2020-10-11 22:09:26
    Doris是一个海量分布式KV存储系统,其设计目标是支持中等规模高可用、可伸缩的KV存储集群。跟主流的NoSQL系统HBase相比,其具有相似的性能和线性伸缩能力,并具有更好的可用性及更友好的图形用户管理界面。对于一个...
  • https://blog.csdn.net/enweitech/article/details/51445087 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象...
  • 存储系统和结构

    万次阅读 多人点赞 2018-06-10 22:35:59
    很久没有在CSDN上面发文章了,最近...将两个或来两个以上速度、容量和价格各不相同的存储器用硬件、软件或硬件软件结合的方式连接起来形成存储系统。这个系统对应用程序员是透明,即从应用程序员角度来看,它是一...
  • 计算机系统中的存储系统

    千次阅读 2018-09-27 20:49:53
    计算机系统中包含各种存储器,如CPU内部的通用寄存器组、CPU内的Cache(高速缓存)、CPU外部的Cache、主板上的主存储器、主板外的联机磁盘存储器以及脱机的磁带存储器和光盘存储器等。不同特点的存储器通过适当的...
  • 实验三 存储系统设计实验 本次实验只有两道题目,但其实具有一定难度,这两题分别为汉字字库存储芯片扩展实验和MIPS寄存器文件设计,这次实验利用logisim进行设计,实验报告分为两个主要部分,在这两个部分中依次对...
  • 存储系统设计(HUST)

    万次阅读 多人点赞 2020-05-11 20:21:28
    汉字字库存储芯片扩展实验 MIPS寄存器文件设计 MIPS RAM设计 全相联cache设计 4路组相连cache设计 直接相联cache设计
  • 前面已经给大家讲了《从0到1搭建大数据平台之数据采集系统》、《从0到1搭建大数据平台之调度系统》,今天给大家讲一下大数据平台计算存储系统。大数据计算平台目前主要都是围绕着hadoop生态...
  • 来源 |清平の乐来源 | CSDN博客,责编 | Carol头图 | CSDN 下载自视觉中国一、数据存储类型一般情况下,我们将存储分成了4种类型,基于本机的DAS和网络的NAS存储、...
  • 以前对存储尤其是分布式存储的整体知识体系不是太清楚,只是片段式的知道一些理论,通过此书的学习,对分布式存储的原理将豁然开朗,不管是理论的还是后面几章讲述的具体产品,都能做到知其然知其所以然。...
  • 华中科技大学计算机组成存储系统设计(HUST)

    千次阅读 多人点赞 2020-06-19 23:06:59
    存储系统设计(HUST) (仅有1,2,3,5关图片及资源) 文件提取链接提取码:6f2h (失效的话评论区踢我一下) 1.汉字字库存储芯片扩展实验 2.MIPS寄存器文件设计 3.MIPS RAM设计 5.直接相联cache设计 ...
  • 第1关:汉字字库存储芯片扩展实验 第2关: MIPS寄存器文件设计 第3关:MIPS RAM设计 第4关:全相联cache设计 第5关:直接相联cache设计 第6关:4路组相连cache设计 第7关:2路组相连cache设计 本实训项目帮助大家...
  • Educoder 存储系统设计(HUST) logisim

    千次阅读 2020-06-05 12:43:06
    汉字字库存储芯片扩展实验 只读存储器t1,t2,t3的内容如下(字库数据),t4为空 资源文件t1.txt;t2.txt;t3.txt中 MIPS寄存器文件设计 直接相联cache设计 资源 链接:...
  • 大规模分布式存储系统

    千次下载 热门讨论 2015-08-31 10:22:04
    理论方面,不仅讲解了大规模分布式存储系统的核心技术和基本原理,而且对谷歌、亚马逊、微软和阿里巴巴等国际型大互联网公司的大规模分布式存储系统进行了分析;实战方面,首先通过对阿里巴巴的分布式数据库Ocean...
  • 分布式文件存储系统 如上图所示,HDFS 也是按照Master 和Slave 的结构。分NameNode、SecondaryNameNode、DataNode 这几个角色。 NameNode:是Master 节点,是大领导。管理数据块映射;处理客户端的读写请求;配置...
  • 目录HDFS、fastDFS、...也就是hadoop分布式文件存储系统, 基本架构主要是由NameNode和DateNode组成,Namenode负责构建命名空间,管理文件的元数据等,而Datanode负责实际存储数据,负责读写工作。HDFS拥有很好的冗余
  • 与传统的存储设备相比,云存储不仅仅是一个硬件...云存储系统的结构模型由4层组成。 1存储层 存储层是云存储最基础的部分。存储设备可以是FC光纤通道存储设备,可以是NAS和iSCSI等IP存储设备,也可以是SCSl或SAS等D...
  • 存储系统设计实验(logisim)计算机组成实验

    万次阅读 多人点赞 2020-05-14 15:52:31
    理解存储系统进行位扩展、字扩展的基本原理,能利用相关原理解决实验中汉字字库的存储扩展问题,并能够使用正确的字库数据填充。 我们可以做出下图: 第2关:MIPS寄存器文件设计 了解 MIPS 寄存器文件基本概念,...
  • Android存储系统及存储的挂载 Android是基于Linux内核开发的,所以它的文件系统也是跟Linux文件系统类似。 首先我们来看Android存储的分类。 内部存储和外部存储、内置SD卡和外置SD卡 一般的Android手机都有2个存储...
  • 有时候初创企业需要快速搭建一个文件存储平台,满足企业内项目的图片、视频、文本等文件的存储;...为了解决这些问题,我们设计了自己的存储系统WFS。 最基本的分布式文件存储系统需要满足以下几个原则:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,369,444
精华内容 1,347,777
关键字:

存储系统

友情链接: hook_test.zip