分布式文件系统是什么

分布式文件系统(DFS)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连;或是若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。

分布式文件系统(Distributed File System,DFS)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可简单的理解为一台计算机)相连;或是若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。

文件 file

DFS 为分布在网络上任意位置的资源提供一个逻辑上的树形文件系统结构,从而使用户访问分布在网络上的共享文件更加简便。单独的 DFS 共享文件夹的作用是相对于通过网络上的其他共享文件夹的访问点。

简介

计算机通过文件系统管理、存储数据,而信息爆炸时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统可以有效解决数据的存储和管理难题:将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。

人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。分布式文件系统是建立在客户机/服务器技术基础之上的,一个或多个文件服务器与客户机文件系统协同操作,这样客户机就能够访问由服务器管理的文件。分布式文件系统的发展大体上经历子三个阶段:第一阶段是网络文件系统,第二阶段是共享 SAN 文件系统,第三阶段是面向对象的并行文件系统。

分布式文件系统把大量数据分散到不同的节点上存储,大大减小了数据丢失的风险。分布式文件系统具有冗余性,部分节点的故障并不影响整体的正常运行,而且即使出现故障的计算机存储的数据已经损坏,也可以由其它节点将损坏的数据恢复出来。因此,安全性是分布式文件系统最主要的特征。分布式文件系统通过网络将大量零散的计算机连接在一起,形成一个巨大的计算机集群,使各主机均可以充分发挥其价值。此外,集群之外的计算机只需要经过简单的配置就可以加入到分布式文件系统中,具有极强的可扩展能力。

系统分类网络文件系统

(NFS) 最早由 Sun 微系统公司作为 TCP/IP 网上的文件共享系统开发。Sun 公司估计大约有超过 310 万个系统在运行 NFS,大到大型计算机、小至 PC 机,其中至少有 80%的系统是非 Sun 平台。

Andrew 系统

AFS 是一种分布式的文件系统用来共享与获得在计算机网络中存放的文件。AFS 使得用户获得网络文件就像本地机器般方便。AFS 文件系统被称为“分布式”是因为文件可以分散地存放在很多不同的机器上,但这些文件对于用户而言是可及的,用户可以通过一定的方式得到这些文件。

KASS 系统

KASS File System(简称 KFS)是开始软件自主研发基于 JAVA 的纯分布式文件系统,功能类似于 DFS、GFS、Hadoop,通过 HTTP WEB 为企业的各种信息系统提供底层文件存储及访问服务,搭建企业私有云存储服务平台。

DFS 系统

DFS 是 AFS 的一个版本,作为开放软件基金会(OSF)的分布

式计算环境 DCE 中的文件系统部分。

如果文件的访问仅限于一个用户,那么分布式文件系统就很容易实现。可惜的是,在许多网络环境中这种限制是不现实的,必须采取并发控制来实现文件的多用户访问,表现为如下几个形式:

只读共享 任何客户机只能访问文件,而不能修改它,这实现起来很简单。

受控写操作 采用这种方法,可有多个用户打开一个文件,但只有一个用户进行写修改。而该用户所作的修改并不一定出现在其它已打开此文件的用户的屏幕上。

并发写操作 这种方法允许多个用户同时读写一个文件。但这需要操作系统作大量的监控工作以防止文件重写,并保证用户能够看到最新信息。这种方法即使实现得很好,许多环境中的处理要求和网络通信量也可能使它变得不可接受。

网络文件系统

网络文件系统(Network File System,NFS)是个分布式的客户机/服务器文件系统。NFS 的实质在于用户间计算机的共享。用户可以联结到共享计算机并像访问本地硬盘一样访问共享计算机上的文件。管理员可以建立远程系统上文件的访问,以至于用户感觉不到他们是在访问远程文件。NFS 是个到处可用和广泛实现的开放式系统。

NFS 设计目标

允许用户象访问本地文件一样访问其他系统上的文件。提供对无盘工作站的支持以降低网络开销。

简化应用程序对远程文件的访问使得不需要因访问这些文件而调用特殊的过程。

使用一次一个服务请求以使系统能从已崩溃的服务器或工作站上恢复。

采用安全措施保护文件免遭偷窃与破坏。

使 NFS 协议可移植和简单,以便它们能在许多不同计算机上实现,包括低档的 PC 机。

大型计算机、小型计算机和文件服务器运行 NFS 时,都为多个用户提供了一个文件存储区。工作站只需要运行 TCP/IP 协议来访问这些系统和位于 NFS 存储区内的文件。工作站上的 NFS 通常由 TCP/IP 软件支持。对 DOS 用户,一个远程 NFS 文件存储区看起来是另一个磁盘驱动器盘符。对 Macintosh 用户,远程 NFS 文件存储区就是一个图标。

分布式文件系统 KFS

一个 KFS 集群包括单个元数据服务器节点和多个 Chunk 服务器节点,并由多个客户端来访问。其中元数据服务器主要用于维护元数据并负责控制垃圾回收、负载均衡等系统活动,Chunk 服务器负责保存数据以及接收处理数据 I/O 请求。这两类节点均运行 Linux 操作系统,需要分别安装、运行 KFS 提供的元数据服务器和 Chunk 服务器软件。客户端需要安装专门的 KFS 客户端库,由应用程序链接使用来访问 KFS 文件系统。KFS 的所有节点都均采用 X86 架构硬件,并通过以太网方式连接在一起,节点之间采用 TCP 协议通讯,使得整个系统具有较高的性价比。

Chunk 服务器

在 KFS 中,一个文件被分割成多个 Chunk,每个 Chunk 大小固定为 64MB,所以可以通过简单的模运算计算出某文件偏移量在该文件第几个 Chunk 的多少偏移量上。每个 Chunk 由一个全局唯一的 Chunk 号来标识。Chunk 服务器主要的功能就是保存 Chunk,并对外提供创建、删除、读写 Chunk 的访问接口。一个 Chunk 默认被复制成 3 份,保存在 3 个不同的 Chunk 服务器中,客户端可以为每个文件指定不同的副本个数。三副本就保证了在两个 Chunk 服务器故障的情况下,仍能从第三个 Chunk 服务器上的副本读出数据,提高了系统的可靠性。在 Chunk 数据写入时,若某个 Chunk 服务器突然故障,会导致的相应副本更新失败,进而影响 Chunk 各副本数据的一致性。

为了解决这个问题,KFS 为每个 Chunk 副本分配一个版本号,副本每被更新一次则版本号上升,这样就可以通过比较版本号来发现过期的副本。Chunk 服务器中,单个 Chunk 由一个文件来表示,这些 Chunk 文件被保存在本地的文件系统中,文件系统可以是 XFS、Ext3/4 等。每个 Chunk 文件除了保存数据外,其头部还保存了 16KB 大小的校验和信息:写数据时,为每个 64K 数据块计算一个 32 位校验和(Adler-32 算法),保存至 Chunk 文件头部;读数据时,首先验证读出数据的校验和,这就保证了本地磁盘保存数据时可能发生的数据损坏可以被检查出来。

Chunk 文件在本地文件系统的文件名命名规则为:文件号.Chunk 号.版本号。Chunk 服务器启动时通过扫描存放 Chunk 文件的目录,就可获知自己拥有哪些 Chunk,然后把该信息提交给元数据服务器。元数据服务器在验证 Chunk 信息后,会告知 Chunk 服务器哪些 Chunk 已经过期(版本号过期或属于已被删除的文件),Chunk 服务器便可以删除这些 Chunk。

在 KFS 中,一个文件系统的所有元数据由单个元数据服务器统一管理,这一做法虽然影响了系统的可扩展性,但极大简化了系统的设计。元数据包括了:

(1) 目录项信息:KFS 采用传统的目录结构命名空间,目录树中的所有节点(文件和目录),均由一个全局唯一的文件号来标识,根目录的文件号固定为 2,目录项信息指的是目录树中各目录所包含的各目录项(可以是子目录或文件)的名称及文件 ID;

(2) 属性信息:各目录、文件的创建、修改时间,及文件的副本数、大小;

(3) Chunk 信息:一个文件依次由哪些 Chunk 组成的;

(4) 位置信息:Chunk 的各个副本的被保存在哪个 Chunk 服务器上;

(5) 租约信息:KFS 采用租约来维持多个客户端情况下数据的一致性,这些租约信息由元数据服务器统一管理。

客户端

KFS 的客户端库向应用程序开发者提供了 create、read、write、mkdir、rmdir 等类似 POSIX 语义的编程接口,支持的编程语言有 C++、Python、Java。客户端库通过与元数据服务器及 Chunk 服务器交互,完成对文件系统中文件的修改、访问等操作。此外,客户端还支持 FUSE(File system in Userspace),使得传统文件系统工具(如 ls 命令)也可以访问 KFS 文件系统,提高了系统的互操作性。

为了减少与元数据服务器的交互次数,客户端会缓存元数据信息。此外,KFS 的客户端还会对读取、写入的数据进行缓存,这就存在缓存一致性的问题,KFS 采用读写租约(Lease)解决了这个问题,所有的租约由元数据服务器统一管理,每个租约有 300 秒的时限,过期作废。读写租约的具体方式是:

(1) 写租约:当需要向 Chunk 写入数据时,对应的主 Chunk 服务器首先查看是否拥有该 Chunk 的写租约,如果没有或已过期则尝试向元数据服务器获取或更新写租约,如果该 Chunk 正在被复制到其他 Chunk 服务器或者已经分配写租约或读租约,则返回失败,否则返回成功并且 Chunk 的版本号增一;

(2) 读租约:在客户端需要读取某个 Chunk 的数据时,它首先尝试去获取这个 Chunk 的读租约,如果该 Chunk 没有分配写租约而且数据已全部写入磁盘,则返回成功,否则返回失败。读写租约保证了一个 Chunk 同时只能由一个客户端写入,而且一个或多个客户端在读取某 Chunk 数据时,该 Chunk 数据不会被修改,这样客户端就能够把读取的数据缓存在本地,因为缓存中的数据与 Chunk 服务器上保存的数据一定是一致的。

分布式系统负载均衡策略

在分布式系统中通常有数量巨大的服务器节点,由于客户端在访问服务器节点的时候具有随机性,这就必然会导致部分主机在某些时刻成为热点,对整个分布式系统的性能产生了制约。与此同时,部分服务器节点的负载却远远没有达到额定值,从而造成资源浪费。显然,在分布式文件系统中进行负载均衡控制是十分必要的。在软件工程中,网站访问流量的分配、数据库访问的重定向等都是负载均衡应用的典型场景。通过负载均衡技术的应用,可以实现分布式系统中所有节点的负载相对平衡,既保证了系统的性能,又充分利用了资源。负载均衡意味着节点之间需要进行数据迁移,因此负载均衡本身需要有一定的开销,所以通常要求负载均衡算法具有较高的效率。

分布式文件系统是以数据服务器为核心的存储系统,根据数据服务器在形式上是否具有中心节点,一般将其分为集中式和非集中式两大类拓扑结构,其中前者是以某台服务器作为中心节点进行分布式组网,而后者则不需要中心节点服务器。之所以要这样区分,是因为中心节点的存在与否,对负载均衡策略的制定有重要影响。

(0)
时间不会说谎  的头像时间不会说谎  

相关推荐

  • waifai怎么用手机改密码,详细步骤教程

    随着互联网的发展,Wi-Fi已经成为人们生活中必不可少的一部分,无论是家庭、办公室还是公共场所,都可以享受到Wi-Fi带来的便利。但是,有时候我们会忘记Wi-Fi密码,或者需要更改密码,这时候该怎么办呢?本文将详细介绍如何使用手机来更改Wi

    2023年11月30日
  • 科研数据分析软件,哪些软件适合不同领域的研究?

    作为科研工作者,我们经常需要处理大量的数据,而科研数据分析软件就是我们处理数据的利器。然而,不同领域的研究所需要的数据分析软件也不尽相同。本文将为大家介绍几种常见的科研数据分析软件,以及它们适用的领域。1.SPSSSPSS是一款统计分

    2023年11月6日
  • 监控SD卡怎么格式化不成功,有哪些解决办法

    作为监控设备的重要组成部分,SD卡在录像存储方面占据着重要的地位。但是,有时候我们会遇到SD卡格式化不成功的问题,这给我们的监控带来了很大的困扰。那么,监控SD卡怎么格式化不成功呢?有哪些解决办法呢?下面就为大家详细介绍。一、为什么监控S

    2023年11月10日
  • 手机均衡器怎么调,提升音质的4个技巧

    手机已经成为我们日常生活中不可或缺的一部分,我们使用手机来听音乐、看视频、打电话等等。但是,手机的音质并不总是令人满意,有时候我们需要一些技巧来提高音质。本文将介绍手机均衡器的基本知识和提升音质的四个技巧。关键词:手机均衡器怎么调一、什

    2023年11月8日
  • 广州哪里有3m耳塞,哪些商店有售?

    在嘈杂的环境下,我们往往需要一些耳塞来保护我们的听力。而3M耳塞作为市面上比较知名的品牌,备受消费者的青睐。那么,广州哪里可以买到3M耳塞呢?下面就为大家介绍几个购买3M耳塞的商店。一、广州市场广州市场是广州比较有名的一个集市,也是很多

    2023年11月2日
  • 组装机之家,如何打造你的专属电脑

    本文目录一览第一步:选择合适的配件第二步:组装电脑第三步:安装系统和软件第四步:优化电脑性能结论在如今这个科技日新月异的时代,电脑已经成为了人们生活中不可或缺的一部分。然而,市面上的电脑种类繁多,价格也各不相同。对于那些想要拥有一台

    2023年11月17日
  • 华为Nova11SE如何查看本机号码?

    无论是买手机还是办理手机卡,知道自己的手机号码是非常重要的。对于华为Nova11SE手机用户来说,如何查看本机号码可能是一个比较常见的问题。在本文中,我们将介绍几种简单的方法,帮助你轻松地查看华为Nova11SE的本机号码。华为Nova11

    2024年2月6日
  • 浏览器网页打不开是什么原因,如何快速解决

    作为现代人,我们几乎每天都会使用浏览器浏览各种网页。然而,有时候我们会遇到一些问题,比如浏览器网页打不开。这种情况很让人头疼,尤其是当我们需要查找重要信息或完成任务时。那么,浏览器网页打不开的原因是什么?如何快速解决这个问题呢?本文将为您一

    2023年11月26日
  • 腾达ac7和ac6的区别,哪款更适合你的需求

    作为腾达旗下的两款路由器,AC7和AC6都备受市场欢迎。它们都具有强大的性能和功能,但是在某些方面还是存在一些差异。如果你正在考虑购买一款新的路由器,那么本文将为你介绍AC7和AC6的区别,帮助你选择更适合你需求的一款。外观设计首先,让

    2023年11月15日
  • 京东白条如何激活

    要想成功激活京东白条,客户平时一定要注意保持好个人良好的信用(小白信用分需在八十分及以上),同时账户要有一定的活跃度,且自己有稳定收入,具备按时还款能力。若在京东有一定资产就更好了…

  • 联通卡与电信卡一起用,有哪些需要注意的问题

    随着移动互联网的不断普及,越来越多的人开始使用多张手机卡。在这些手机卡中,联通卡与电信卡是最为常见的两种。然而,很多人在使用联通卡与电信卡一起用时,会遇到各种各样的问题。本文将为大家介绍联通卡与电信卡一起用时需要注意的问题,希望能够帮助大家

    2023年11月11日
  • 什么类型的密码最难破,密码学专家告诉你

    随着互联网的普及,人们越来越重视网络安全问题。在这个信息化时代,密码是我们日常生活中不可或缺的一部分。然而,随着黑客技术的不断发展,我们的密码也变得越来越容易被破解。那么,什么类型的密码最难破呢?在本文中,我们将听取密码学专家的意见,了解一

    2023年11月11日
  • 来分期是什么

    来分期是一款国内发展最快的互联网金融应用,通过联合芝麻信用,在支付宝平台上芝麻分600以上的用户均有机会申请来分期进行分期购物或者提现,最高额度为20万,可直接提现到支付宝账号。 …

  • 光大银行信用卡逾期一天会上征信报告吗

    光大银行信用卡有3天的还款宽限期,还款日过后的第1天属于宽限期,这一天是不算逾期的。用户逾期一天还款,只会有按时还款的记录更新在征信中。除非用户在还款日过后的第4天还款,这时候就属…

  • 三洋电视花屏怎么办,简单解决方法

    如果你使用的是三洋电视,你可能会遇到这样的问题:电视屏幕会出现花屏或者显示不正常的情况。这个问题可能会让你感到困扰,但是不要担心,本文将为你提供一些简单的解决方法。1.检查电视连接线首先,你需要检查电视连接线是否连接良好。如果连接线松动

    2023年10月7日

发表回复

登录后才能评论