分布式文件系统的结构

本文介绍了分布式文件系统的结构,包括块、名称节点、数据节点、第二名称节点等。采用块可减少磁盘寻址时间,名称节点管理命名空间,数据节点负责存储和读取数据。第二名称节点可合并FSImage和Editlog。此外,还提到HDSF HA可解决单点故障问题,借助zookeeper实现名称节点同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件系统采用块的概念,原因是为了减少磁盘寻址时间,把寻道时间分摊到大量数据中

Windows Linux等操作系统,文件系统一般会把磁盘空间划分为每512字节一组,称为“磁盘块”
它是文件系统读写的最小单位,块(Block)的大小通常是磁盘块的整数倍,即每次读写的数据量必须是磁盘块大小的整数倍。

磁盘块--512字节     块的大小一般几千字节     磁盘块与块不是同一概念

分布式文件系统也采用了块的概念,文件被分成若干个块进行存储,块是数据读写的基本单位,分布式文件系统的块要比操作系统的块大很多,原因是:最小化寻址开销,但是不宜过大,原因:MapReduce中的Map任务一次只能处理一个块中的数据,如果启动任务过少,会降低作业的并行处理速度。比如。HDFS默认的块的大小是64MB,还有一点不同于操作系统,在分布式系统中,如果一个文件小于一个块的大小,它并不占用整个数据块的存储空间。

名称节点

负责管理命名空间。命名空间包含目录,文件和块,命名空间的管理指的是对目录,文件和块的创建,修改和删除等基本操作。HDFS中只有一个命名空间。

保存了两个数据结构,即FsImage和EditLog。
FSImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据。元数据包括块的位置信息(动态),快的偏移量,权限大小(静态)。EditLog(操作日志)中记录了所有针对文件的创建,删除,重命名等操作。
名称节点记录了每个文件中各个块所在的位置信息,但是不持久化这些信息,而是在系统每次启动的时候扫描所有数据节点重构得到这些信息。
启动时,名称节点会将FSImage的内容加载到内存当中,然后执行EditLog中的各项操作,使得元数据保持到最新。这个操作完成后,会创建一个新的FSImage和一个空的EditLog。启动的过程中处于“安全模式”,只能对外提供读操作,无法提供写操作。启动结束后,退出安全模式,对外提供读写操作。

数据节点

数据节点是分布式文件系统的工作节点,负责数据的存储和读取,会根据客户端或者名称节点的调度来进行数据的存储和检索,并且向名称节点定时发送自己所存储的块的列表,每个数据节点都会将数据保存在各自节点的本地Linux系统中。

第二名称节点

出现原因:防止名称节点在启动的过程中长期处于“安全模式”,影响用户使用(客户体验)。
功能:完成FSImage和Editlog的合并操作,减少Editlog文件大小,缩短名称节点的重启时间。
作为名称节点的“检查点”(备份数据信息)。
不能作为备份节点,原因:不能起到“热备份”。当数据节点出现故障,还是有可能丢失部分信息。
在这里插入图片描述

通信协议

在这里插入图片描述

HDSF HA

出现原因:解决“单点故障问题”;提供“热备份”。
“单点故障”:一个集群中只有一个名称节点,如果出现故障,导致整个集群变得不可用。
解决方法:在集群中一般设置两个名称节点,其中一个名称节点处于“活跃(Active)”状态,另一个处于“待命(Standby)”状态。处于活跃状态的负责对外处理所有客户端的请求,而处于待命状态的名称节点则为备用节点,保存了足够多的系统元数据,当名称节点出现故障时提供快速恢复的能力。也就是说,在HDFS HA中,处于待命状态的名称节点提供了“热备份”,一旦活跃名称节点出现故障,就可以立即切换到待命名称节点。两种名称节点的同步,可以借助于一个共享存储系统来实现,比如zookeeper。zookeeper可以确保任意时刻只有一个名称节点提供对外服务。在这里插入图片描述

分布式文件系统(Distributed File System,简称DFS)是一能够将文件存储在多个计算机节点上的文件系统。其结构一般包含以下几个主要组件: 1. 元数据服务器(Metadata Server):负责存储文件系统的元数据,包括文件名、大小、权限等信息。元数据服务器维护整个文件系统的目录结构,并记录文件在存储节点上的位置。 2. 存储节点(Storage Node):是实际存储文件数据的计算机节点。存储节点负责接收和存储文件,以及根据元数据服务器的指示,提供文件读取和写入的功能。 3. 客户端(Client):是用户或应用程序与分布式文件系统进行交互的接口。客户端通过与元数据服务器通信来获取文件的位置信息,并与存储节点直接进行数据读写操作。 4. 服务(Block Service):用于处理文件的分和分发。文件通常被分成固定大小,并在多个存储节点上进行冗余存储,以提高可靠性和性能。 5. 一致性协议(Consistency Protocol):用于确保分布式文件系统的一致性。一致性协议定义了多个节点之间的数据同步和一致性维护机制,以防止数据丢失或不一致的情况发生。 以上是一种常见的分布式文件系统结构,不同的分布式文件系统可能会有一些差异和额外的组件。整体而言,分布式文件系统通过将文件数据和元数据分散存储在多个节点上,提供了高可用性、可扩展性和容错性的存储解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值