典型分布式文件系统概述

合集下载

openharmony分布式文件系统原理

openharmony分布式文件系统原理

openharmony分布式文件系统原理OpenHarmony是华为公司开发的一款分布式操作系统,它的设计初衷是为了构建一个统一的、智能化的设备生态系统。

分布式文件系统是OpenHarmony中的一个重要组成部分,它负责管理分布式环境中的文件存储和访问。

本文将从分布式文件系统的原理出发,介绍OpenHarmony分布式文件系统的工作原理和特点。

一、OpenHarmony分布式文件系统的概述OpenHarmony分布式文件系统是一个分布式的、高性能的文件系统,它可以在多个节点之间共享和访问文件。

OpenHarmony分布式文件系统采用了分布式元数据管理和数据分片存储的方式,以提高系统的可扩展性和容错性。

它具有高性能、高可用性和高容错性的特点,可以满足大规模分布式环境中的文件存储需求。

二、OpenHarmony分布式文件系统的原理1. 分布式元数据管理OpenHarmony分布式文件系统使用分布式元数据管理的方式来管理文件的元数据信息。

每个节点都维护一份元数据信息,并通过协调机制来保证元数据的一致性。

当用户请求访问文件时,系统可以快速定位到文件的元数据,并获取文件的位置信息。

2. 数据分片存储OpenHarmony分布式文件系统将文件划分为多个数据块,并将这些数据块存储在不同的节点上。

每个节点负责管理一部分数据块,并提供数据的读写服务。

通过数据的分片存储,可以提高系统的并发性和容错性。

当某个节点发生故障时,系统可以自动将故障的节点上的数据块迁移到其他健康的节点上,以保证数据的可用性。

3. 数据一致性OpenHarmony分布式文件系统通过一致性协议来保证数据的一致性。

系统在写入数据时,会使用一致性协议来保证多个节点上的数据一致。

当用户请求读取数据时,系统会选择合适的节点来读取数据,并保证读取到的数据是最新的。

4. 数据访问控制OpenHarmony分布式文件系统支持灵活的数据访问控制机制。

系统可以根据用户的权限来控制对文件的访问。

大数据存储方式概述

大数据存储方式概述

大数据存储方式概述概述:随着大数据时代的到来,大数据存储成为了一项重要的技术挑战。

大数据存储方式的选择对于数据的处理和分析具有重要的影响。

本文将概述几种常见的大数据存储方式,包括分布式文件系统、关系型数据库、NoSQL数据库和数据仓库。

一、分布式文件系统:分布式文件系统是一种将文件存储在多个服务器上的文件系统。

它通过将文件划分为多个块,并将这些块分布在不同的服务器上,实现了数据的分布式存储。

常见的分布式文件系统包括Hadoop的HDFS和Google的GFS。

分布式文件系统具有高可靠性、高可扩展性和高性能的特点,适合于存储大规模的非结构化数据。

二、关系型数据库:关系型数据库是一种以表格的形式存储数据的数据库。

它使用结构化查询语言(SQL)进行数据的管理和查询。

关系型数据库具有严格的数据一致性和完整性,适合于存储结构化数据。

然而,关系型数据库在处理大规模数据时存在性能瓶颈,因为它们通常采用单机部署模式。

三、NoSQL数据库:NoSQL数据库是一种非关系型数据库,它放宽了对数据一致性和完整性的要求,追求高可扩展性和高性能。

NoSQL数据库适合于存储非结构化和半结构化数据。

常见的NoSQL数据库包括MongoDB、Cassandra和Redis等。

NoSQL数据库可以通过水平扩展来应对大规模数据的存储和处理需求。

四、数据仓库:数据仓库是一种用于存储和管理大量历史数据的数据库。

数据仓库通常采用多维模型,支持复杂的数据分析和查询。

数据仓库可以通过数据抽取、转换和加载(ETL)过程将来自不同数据源的数据集成到一个统一的存储中。

数据仓库适合于企业级的数据分析和决策支持。

综上所述,大数据存储方式的选择应根据数据的特点和应用场景来进行。

对于大规模的非结构化数据,分布式文件系统是一个理想的选择;对于结构化数据,关系型数据库和NoSQL数据库都是可行的方案;对于历史数据的分析和决策支持,数据仓库是一个重要的工具。

在实际应用中,通常会根据具体需求采用多种存储方式的组合,以达到最佳的存储和分析效果。

大数据关键技术有哪些

大数据关键技术有哪些

引言:随着信息技术的快速发展,大数据已经成为了当前社会经济发展的重要驱动力。

而在大数据的背后,有许多关键技术支撑着它的发展。

本文将详细阐述大数据的关键技术,并分析其在实际应用中的重要性。

概述:大数据是指数据量规模巨大,类型繁多,处理速度快的数据集合。

在处理大数据时,关键技术起着至关重要的作用。

这些关键技术包括存储技术、计算技术、分析技术、挖掘技术和隐私保护技术。

下面将逐一进行详细阐述。

正文:一、存储技术1. 分布式文件系统:分布式文件系统通过将大数据分布在多个物理节点上,实现数据的存储和管理。

典型的分布式文件系统包括Hadoop Distributed File System(HDFS)和Google File System (GFS)。

2. 分布式数据库:分布式数据库是指将数据分布在多个节点上进行存储和管理的数据库系统。

典型的分布式数据库包括Apache Cassandra和MongoDB等。

3. 列式存储:列式存储是一种将数据按照列进行存储的方式,相比于传统的行式存储,它能够提供更高的查询性能。

HBase和Cassandra等数据库采用了列式存储的方式。

二、计算技术1. 分布式计算:分布式计算是指将计算任务分布在多个计算节点上进行并行计算的技术。

Apache Spark和MapReduce是常用的分布式计算框架。

2. 并行计算:并行计算是指将一个大任务划分成多个子任务,并且这些子任务可以并行地进行计算。

典型的并行计算模型有共享内存模型和消息传递模型。

3. 可扩展性:可扩展性是指系统在面对大规模数据时,能够保持高性能和低延迟的能力。

具备良好可扩展性的系统能够自动根据工作负载的增加或减少来调整资源的分配。

三、分析技术1. 数据预处理:大数据分析的第一步是进行数据预处理,包括数据清洗、数据集成和数据转换等过程,以确保数据的质量和准确性。

2. 数据挖掘:数据挖掘是指从大数据中发现潜在模式、关联规则和异常值等有价值的信息。

分布式文件系统概况及FastDFS介绍_余 庆

分布式文件系统概况及FastDFS介绍_余 庆
1. client询问tracker可以下载指定文件的storage,参数为文件 ID(组名和文件名);
2. tracker返回一台可用的storage; 3. client直接和storage通信完成文件下载。
FastDFS如何做到无索引服务器?
• 上传文件时,文件ID由storage server生成并 返回给client
态信息,tracker server之间不会相互通信
FastDFS上传文件流程图
1. client询问tracker上传到的storage; 2. tracker返回一台可用的storage; 3. client直接和storage通信完成文件上传,storage返回文件ID。
FastDFS下载文件流程图
数之间不存在线性关系,系统负载基本上 不受连接数影响
后续开发计划
• 封装成通用文件系统,可以mount使用。实 现思路: FastDFS + 目录服务 + client mount
FastDFS相关网站
• FastDFS论坛: /bbs/forum-751.html
中国雅虎相册存储改进方案
• 主要出于降低存储成本的目的,中国雅虎 采用分布式文件系统替代YMDB
• 中国雅虎研发了YLEM分布式文件系统
– 基于MogileFS – 2008年底替换掉了YMDB
分布式文件系统概况
• 分布式文件系统类型
– 通用分布式文件系统 和传统的本地文件系统(如ext3、NTFS等)相 对应,应用端可以mount使用。典型代表: lustre、MooseFS
专用分布式文件系统优缺点
• 优点
– 系统复杂性较低,不需要支持若干标准的文件 操作,如:目录结构、文件读写权限、文件锁 等,系统比较简洁。

大数据存储方式概述

大数据存储方式概述

大数据存储方式概述概述:随着信息技术的快速发展,大数据已经成为当今社会中不可忽视的重要资源。

然而,大数据的存储方式对于数据的管理和分析起着至关重要的作用。

本文将对大数据存储方式进行概述,介绍常见的几种存储方式及其特点。

一、分布式文件系统分布式文件系统是一种将文件划分为多个块并存储在不同的节点上的存储方式。

它具有高可靠性、高可扩展性和高吞吐量的特点。

常见的分布式文件系统包括Hadoop分布式文件系统(HDFS)和谷歌文件系统(GFS)。

这些系统通过将数据划分为多个块并在多个节点上进行冗余存储,实现了数据的高可靠性和高可用性。

二、列式存储列式存储是一种将数据按列存储的方式。

相比于传统的行式存储方式,列式存储在大数据场景下具有更高的压缩率和查询效率。

它适合于需要对大量数据进行聚合和分析的场景。

常见的列式存储系统包括Apache Parquet和Apache ORC。

三、内存数据库内存数据库是一种将数据存储在内存中的数据库系统。

相比于传统的磁盘存储方式,内存数据库具有更快的读写速度和更低的延迟。

它适合于对实时性要求较高的应用场景,如实时分析和实时推荐系统。

常见的内存数据库包括Redis和Memcached。

四、NoSQL数据库NoSQL数据库是一种非关系型数据库,它适合于存储大规模非结构化和半结构化数据。

NoSQL数据库具有分布式、高可扩展和高性能的特点。

常见的NoSQL数据库包括MongoDB、Cassandra和HBase。

五、对象存储对象存储是一种将数据以对象的形式存储的方式。

每一个对象包含数据、元数据和惟一标识符。

对象存储适合于存储海量的非结构化数据,如图象、音频和视频等。

常见的对象存储系统包括Amazon S3和OpenStack Swift。

六、混合存储混合存储是一种将数据同时存储在内存和磁盘中的存储方式。

它兼具内存数据库的高性能和磁盘存储的持久性。

混合存储适合于对读写性能和数据安全性要求较高的应用场景。

分布式文件系统HDFSPPT课件

分布式文件系统HDFSPPT课件

《大数据技术及应用》
信息科学与技术学院
2
3.1 分布式文件系统
• 3.1.1 • 3.1.2
计算机集群结构 分布式文件系统的结构
《大数据技术及应用》
信息科学与技术学院
3
3.1.1计算机集群结构
•分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算 机节点构成计算机集群 •与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目 前的分布式文件系统所采用的计算机集群,都是由普通硬件构成的,这就 大大降低了硬件上的开销
客户端 文件名或数据块号 名称节点
(Client)
(NameNode)
数据块号、数据块位置
写数据 读数据
数据节点 (DataNode)
数据节点 (DataNode)
……
本地Linux文件系统
本地Linux文件系统
机架1
……
备份
数据节点
数据节点
(DataNode)
(DataNode)
……
本地Linux文件系统
Ø名称节点起来之后,HDFS中的更新操作会重新写到EditLog 文件中,因为FsImage文件一般都很大(GB级别的很常见), 如果所有的更新操作都往FsImage文件中添加,这样会导致系 统运行的十分缓慢,但是,如果往EditLog文件里面写就不会这 样,因为EditLog 要小很多。每次执行写操作之后,且在向客户 端发送成功代码之前,edits文件都需要同步更新。
《大数据技术及应用》
信息科学与技术学院
17
3.4.3通信协议
• HDFS是一个部署在集群上的分布式文件系统,因此,很多 数据需要通过网络进行传输。 • 所有的HDFS通信协议都是构建在TCP/IP协议基础之上的。 • 客户端通过一个可配置的端口向名称节点主动发起TCP连 接,并使用客户端协议与名称节点进行交互。 • 名称节点和数据节点之间则使用数据节点协议进行交互。 • 客户端与数据节点的交互是通过RPC(Remote Procedure Call)来实现的。在设计上,名称节点不会主动发起RPC, 而是响应来自客户端和数据节点的RPC请求。

大数据存储方式概述

大数据存储方式概述

大数据存储方式概述引言:随着信息技术的迅速发展,大数据已经成为当今社会的热门话题。

大数据的存储方式是实现大数据分析和应用的关键,本文将概述大数据存储方式的几种常见方法。

一、分布式文件系统1.1 Hadoop分布式文件系统(HDFS):HDFS是大数据存储的主流解决方案之一。

它将数据切分成多个块,并将这些块分布式存储在集群中的多个节点上。

HDFS具有高容错性、高可靠性和高吞吐量的特点,适合存储大规模数据。

1.2 GlusterFS:GlusterFS是一个开源的分布式文件系统,采用了横向扩展的方式来处理大规模数据的存储。

它能够将多个服务器上的存储资源整合成一个统一的文件系统,提供高可靠性和高性能的数据存储。

1.3 Ceph:Ceph是一个分布式存储系统,可以提供对象存储、块存储和文件系统存储等多种存储方式。

Ceph具有高可靠性、可扩展性和自动数据恢复的特点,适合于大规模的数据存储和处理。

二、列式存储2.1 Apache Parquet:Parquet是一种列式存储格式,它将数据按列存储,可以提高查询性能和压缩比。

Parquet支持多种编程语言和数据处理框架,并且可以与Hadoop生态系统无缝集成,适合于大规模数据的存储和分析。

2.2 Apache ORC:ORC(Optimized Row Columnar)是一种优化的行列混合存储格式,可以提供高性能的数据读写和查询。

ORC支持列式存储和行式存储的混合模式,适合于大规模数据的存储和分析。

2.3 Apache Avro:Avro是一种数据序列化系统,可以将数据以二进制格式存储,并提供了丰富的数据类型和动态模式。

Avro支持多种编程语言和数据处理框架,适合于大规模数据的存储和传输。

三、内存数据库3.1 Apache Ignite:Ignite是一个内存计算平台,可以将数据存储在内存中,并提供分布式查询和分析功能。

Ignite支持SQL查询、机器学习和复琐事件处理等多种功能,适合于实时数据分析和处理。

大数据存储方式概述

大数据存储方式概述

大数据存储方式概述在当今信息时代,大数据已经成为各行各业的重要组成部分。

随着数据量的不断增长,如何高效地存储大数据成为了一个重要课题。

本文将从不同的角度对大数据存储方式进行概述,帮助读者更好地了解大数据存储的基本原理和方法。

一、分布式文件系统存储方式1.1 Hadoop分布式文件系统(HDFS)HDFS是Apache Hadoop项目的核心组件,采用分布式存储的方式,将大文件切分成多个块存储在不同的节点上,保证数据的可靠性和高可用性。

1.2 Google文件系统(GFS)GFS是Google开发的分布式文件系统,具有高容错性和高扩展性的特点,适用于大规模的数据存储和处理。

1.3 Amazon S3Amazon S3是亚马逊提供的对象存储服务,通过简单的API接口可以实现大规模数据的存储和访问,适用于云计算环境下的大数据存储。

二、分布式数据库存储方式2.1 HBaseHBase是基于Hadoop的分布式数据库,采用列式存储的方式,适用于实时读写大规模数据的场景,具有高性能和可伸缩性。

2.2 CassandraCassandra是一个高可用的分布式数据库系统,采用分区存储和副本复制的方式,适用于分布式数据存储和处理。

2.3 MongoDBMongoDB是一个NoSQL数据库,采用文档存储的方式,适用于存储半结构化和非结构化数据,具有灵活的数据模型和高性能的特点。

三、内存数据库存储方式3.1 RedisRedis是一个高性能的内存数据库,采用键值对存储的方式,适用于缓存和实时数据处理的场景,具有快速的读写速度和持久化功能。

3.2 MemcachedMemcached是一个分布式内存对象缓存系统,适用于存储热点数据和加速数据访问,具有简单的设计和高性能的特点。

3.3 AerospikeAerospike是一个高性能的NoSQL数据库,采用内存和闪存混合存储的方式,适用于实时数据处理和高并发访问的场景,具有可扩展性和可靠性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分布式文件系统概述(一)杨栋yangdonglee@2006-12摘要文件系统是操作系统用来组织磁盘文件的方法和数据结构。

传统的文件系统指各种UNIX平台的文件系统,包括UFS、FFS、EXT2、XFS等,这些文件系统都是单机文件系统,也称本地文件系统。

随着网络的兴起,为了解决资源共享问题,出现了分布式文件系统。

分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。

本文1简要回顾了本地文件系统,然后按照发展例程大致介绍了2006年之前各时期主要的分布式文件系统,最后从设计目标、体系结构及关键技术等方面比较了各个分布式文件系统的异同。

目前很火的Hadoop文件系统、S3文件系统都是从NFS等早期文件系统一步步演化而来的,了解分布式文件系统的历史,有助于大家更加深刻地领会分布式文件系统的精髓。

1本文写于2006年底,借鉴了别人的大量资料,目的是为了与同学们分享分布式文件系统的发展史。

笔者在硕士期间跟随中科院计算所的孟老师、熊老师和唐荣锋进行分布式文件系统的研究和开发。

分布式文件系统源远流长,本文只是选择了其发展史上的部分实例进行简单描述,由于笔者水平十分有限,错误之处难免很多,各位同学发现问题之后麻烦回复邮件到yangdonglee@,我会尽全力完善,或者请各位同学自行修正。

笔者目前在百度进行云计算方面的研究和开发,希望有兴趣的同学一起进行探讨。

目录1.引言 (5)2.本地文件系统 (5)2.1FFS (6)2.2LFS (6)2.3Ext3 (7)3.分布式文件系统 (7)3.1 发展历程 (7)3.2分布式文件系统分类 (8)3.2.1 实现方法 (8)3.2.2研究状况 (8)3.3 NFS (9)3.3.1概述 (9)3.3.2 体系结构 (9)3.3.3 通信机制 (10)3.3.4进程 (10)3.3.5 命名 (10)3.3.6 同步机制 (11)3.3.7 缓存和复制 (11)3.3.8 容错性 (12)3.3.9 安全性 (13)3.4 AFS、DFS、Coda和InterMezzo (13)3.5 SpriteFS和Zebra (14)3.6xFS (16)3.6.1 概述 (16)3.6.2 体系结构 (16)3.6.3 通信 (16)3.6.4 进程 (17)3.6.5 命名 (18)3.6.6 缓存 (19)3.6.7 容错性 (19)3.6.8 安全性 (19)3.7Tiger Shark和Frangipani (20)3.7.1TigerShark (20)3.7.2Frangipani (21)3.8PVFS (21)3.8.1 概述 (21)3.8.2 存取机制 (21)3.8.3 管理机制 (23)3.8.4 存在问题 (25)3.8.5 PVFS2 (25)3.9DAFS (27)3.9.1 概述 (27)3.9.2 文件访问方式 (28)3.9.3 客户端实现 (28)3.10GFS、GPFS、Storage Tank和Lustre (29)3.10.1GFS (30)3.10.2GPFS (31)3.10.3Storage Tank (33)3.10.4Lustre (34)3.11Ceph (36)3.11.1 概述 (36)3.11.2 设计理念 (37)3.11.3 体系结构 (39)3.11.4 关键技术 (39)3.11.5 客户端操作 (41)3.11.6 容错性 (41)4.分布式文件系统之比较 (42)4.1设计目标 (42)4.2体系结构 (42)4.2.1 数据访问方式 (42)4.2.2 系统服务器的方式 (43)4.2.3 文件与系统服务器的映射 (44)4.3命名机制 (44)4.4同步机制 (45)4.5缓存一致性 (45)4.6可扩展性 (46)4.7容错性 (46)4.8安全性 (47)4.9关键技术 (47)5.总结 (48)参考文献 (50)1.引言最初的分布式文件系统应用发生在20世纪70年代,之后逐渐扩展到各个领域。

从早期的NFS到现在的Lustre,分布式文件系统在体系结构、系统规模、性能、可扩展性、可用性等方面经历了较大的变化。

文件系统是操作系统的一个重要组成部分,通过对操作系统所管理的存储空间的抽象,向用户提供统一的、对象化的访问接口,屏蔽对物理设备的直接操作和资源管理。

根据计算环境和所提供功能的不同,文件系统可划分为四个层次,从低到高依次是:单处理器单用户的本地文件系统,如DOS的文件系统;多处理器单用户的本地文件系统,如OS/2的文件系统;多处理器多用户的文件系统,如Unix的本地文件系统;多处理器多用户的分布式文件系统。

本地文件系统(Local File System)是指文件系统管理的物理存储资源直接连接在本地节点上,处理器通过系统总线可以直接访问。

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。

高层次的文件系统都是以低层次的文件系统为基础,实现了更高级的功能。

随着层次的提高,文件系统在设计和实现方面的难度也会成倍提高。

但是,现在的分布式文件系统一般还是保持与最基本的本地文件系统几乎相同的访问接口和对象模型,这主要是为了向用户提供向后的兼容性,同时保持原来的简单对象模型和访问接口。

但这并不说明文件系统设计和实现的难度没有增加。

正是由于对用户透明地改变了结构,满足用户的需求,以掩盖分布式文件操作的复杂性,才大大增加了分布式文件系统的实现难度。

在计算机性能不断提升的同时,计算机部件的平均价格却在不断下降。

用户可以用更低的成本,购买更好、更快、更稳定的设备。

存储系统、文件系统面临的新挑战也随之而来:如何管理更多的设备,提供更好的性能,更加有效地降低管理成本等。

各种新的存储技术和分布式文件技术层出不穷,以满足用户日益增长的需求。

因此,有必要分析对比当前主流的分布式文件系统在体系结构、缓存一致性、可扩展性、安全等方面的长处和不足。

2.本地文件系统本地文件系统通常仅仅位于一个磁盘或一个磁盘分区上,它只能被唯一的主机访问,不能被多个主机共享。

本地文件系统通常含有四类信息:超级块:用来描述文件系统整体信息的,含有整个文件系统中数据块和inode的相关信息;inode:用来描述文件和目录的属性和文件块在块设备上的位置信息;文件内容:是用户的数据,是无结构的;目录内容:是目录项,是有结构的。

超级块通常位于磁盘(或分区)上的固定位置。

根据文件系统类型,可定位超级块;通过超级块可定位根目录的inode,从而可读出根目录的内容。

通过在文件系统名字空间的逐级名字解析,可得到指定文件的ino。

根据ino可定位文件的inode在磁盘上的位置,从而读出文件的inode。

根据inode中的块映射信息,最后定位指定的文件块,从而读出或写入数据。

归结起来,单机文件系统所含的信息可以分为三类,它们是文件数据、文件系统元数据和存储元数据。

早期的UNIX文件系统运行在PDP-11上,拥有简单规范的文件系统特性。

文件系统的输入/输出由内核缓存;数据传输和同步操作没有对齐限制。

所有到磁盘的传输以512字节块为单位,能够置于文件系统数据区域的任何位置。

Inode区与内容存储区相分离,导致查找速度慢(磁臂在inode区与块存储区之间往复移动,尤其长路径名)。

当在VAX-11上和其他UNIX增进一起使用的时候,最初的512字节UNIX文件系统不能提供许多应用所需的数据输出率,这要求文件系统提供比早期512字节UNIX系统更高的带宽。

UNIX快速文件系统(FFS)是传统UNIX文件系统的一种重新实现,通过更加复杂的分配策略,充分提高了输出率,效率提高了一个数量级。

FFS将磁盘卷划分为若干个柱面组(cylinder group),每个柱面组占若干连续的柱面,作为相对独立的文件卷管理;采用较大的磁盘块以减少I/O间址并提高I/O效率;FFS打破了文件名长度最多为14字节的限制,文件名长度可达255字节;也支持符号连接(symbolic link),这种连接可以跨文件卷或主机。

2.2 L FS由于磁盘寻道时间的限制,许多文件系统存在着瓶颈。

Berkely设计了一种全新的文件系统,即日志结构的文件系统(log-structured file system),试图解决这个问题。

促成LFS设计的想法是:CPU越来越快,RAM内存越来越大,磁盘高速缓存的容量迅速增加。

因此,无需访问磁盘,从文件系统的高速缓存中就可能满足所有读请求。

将来大多数磁盘访问是写操作。

某些文件系统使用的预读机制,即把数据块在实际需要前调入内存,对文件系统性能的改进不再那么重要了。

LFS的设计人员决定重新设计UNIX的文件系统,他们希望即使在有大量小块随机写的情况下,也能获得磁盘的全部带宽。

基本思想是把整个磁盘作为日志。

所有写操作都存放在内存的缓冲区中,并定期地收集到一个单独的段中,作为日志尾部的相邻段写回磁盘。

因此,每个段都含有inode、目录块、数据块等,并且是他们的混合体。

在每段起始位置还有一个摘要,给出了该段中的内容。

如果段的平均长度大约为1MB,那么几乎所有的磁盘带宽都能利用。

在这一设计中,inode依然存在,并且和UNIX中的inode具有相同结构。

但是这些inode 并不放在磁盘的固定位置,而是分散在日志之中。

一旦找到inode,可以用通常的方法找到相应块。

为了查找inode,需要维护一张inode映照表,它以inode号为下标,其中第i项指向磁盘上第i个inode。

这张映照表存放在磁盘中,但它同样使用缓存机构,所以在大多时候,最常用的部分将保存在内存中。

LFS的工作方式为:所有写的数据开始时都存放在缓冲区中,并且定期地把这些缓冲区中的数据以一个段的形式写到磁盘中,放在日志的尾部。

打开一个文件首先要在inode映照表中查找该文件的inode,一旦找到了inode,也就知道了相应块的地址,所有的块也存放在段中,即日志的某个地方。

真正的磁盘都有有限的容量,最终日志将占满整个磁盘,这时新段不能被写到日志中。

许多现有段都包含一些不再使用的块。

LFS中有一个清理(cleaner)线程循环地浏览和压缩磁盘。

Ext3 文件系统是直接从Ext2文件系统发展而来,它也秉承了FFS与LFS的主要特点。

目前Ext3文件系统已经非常稳定可靠,它完全兼容Ext2文件系统,用户可以平滑地过渡到一个日志功能健全的文件系统。

Ext3日志文件系统的思想就是对文件系统进行的任何高级修改都分两步进行。

首先,把待写块的一个副本存放在日志中;其次,当发往日志的 I/O 数据传送完成时(即数据提交到日志),块就写入文件系统。

相关文档
最新文档