大话存储系列14——集群文件系统

  • 时间:
  • 浏览:1
  • 来源:大发快3官方网址—大发快3APP下载

  用户在访问此共享中的文件夹时将被重定向到中有 共享资源的网络位置。原本 ,用户只需知道 DFS 根目录共享即可访问整个企业的共享资源。

  \\服务器名\共享名

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

单一节点的Namenode大大错综复杂了系统的架构。Namenode负责保管和管理所有的HDFS元数据,因而用户数据就不前要通过Namenode(也好多好多 我说文件数据的读写是直接在Datanode上)。文件系统的namespaceHDFS支持传统的层次型文件组织,与大多数许多文件系统这类,用户可不前要创建目录,并在其间创建、删除、移动和重命名文件。HDFS不支持user quotas和访问权限,好多好多 我支持链接(link),不过当前的架构不多排除实现那些价值形式。Namenode维护文件系统的namespace,任何对文件系统namespace和文件属性的修改都将被Namenode记录下来。应用可不前要设置HDFS保存的文件的副本数目,文件副本的数目称为文件的replication因子,你这名信息也是由Namenode保存。数据基因重组HDFS被设计成在一有2个大集群中可不前要跨机器地可靠地存储海量的文件。它将每个文件存储成block序列,除了最后一有2个block,所有的block都会 同样的大小。文件的所有block为了容错都会被基因重组。每个文件的block大小和replication因子都会 可配置的。Replication因子可不前要在文件创建的事先配置,事先也可不前要改变。HDFS中的文件是write-one,好多好多 我严格要求在任何事先只能一有2个writerNamenode全权管理block的基因重组,它周期性地从集群中的每个Datanode接收心跳包和一有2个Blockreport。心跳包的接收表示该Datanode节点正常工作,而Blockreport包括了该Datanode上所有的block组成的列表。



1、副本的存放,副本的存放是HDFS可靠性和性能的关键。HDFS采用并与非 称为rack-aware的策略来改进数据的可靠性、有效性和网络速度的利用。你这名策略实现的短期目标是验证在生产环境下的表现,观察它的行为,构建测试和研究的基础,以便实现更先进的策略。庞大的HDFS实例一般运行在多个机架的计算机形成的集群上,不同机架间的两台机器的通讯前要通过交换机,显然通常请况下,同一有2个机架内的有2个节点间的速度会比不同机架间的两台机器的速度大。

通过一有2个称为Rack Awareness的过程,Namenode决定了每个Datanode所属的rack id。一有2个简单但没法优化的策略好多好多 我将副本存倒入单独的机架上。原本 可不前要除理整个机架(非副本存放)失效的请况,好多好多 我允许读数据的事先可不前要从多个机架读取。你这名简单策略设置可不前要将副本分布在集群中,促使组件失败请况下的负载均衡。好多好多 我,你这名简单策略加大了写的代价,由于一有2个写操作前要传输block到多个机架。

在大多数请况下,replication因子是3HDFS的存放策略是将一有2个副本存倒入本地机架上的节点,一有2个副本倒入同一机架上的原本 节点,最后一有2个副本倒入不同机架上的一有2个节点。机架的错误远远比节点的错误少,你这名策略不多影响到数据的可靠性和有效性。三分之一的副本在一有2个节点上,三分之二在一有2个机架上,许多保占据 剩下的机架中,你这名策略改进了写的性能。

2、副本的确定,为了降低整体的速度消耗和读延时,HDFS会尽量让reader读最近的副本。由于在reader的同一有2个机架上有一有2个副本,没法就读该副本。由于一有2个HDFS集群跨不多个数据中心,没法reader也将首先尝试读本地数据中心的副本。



传统的分布式文件系统(如NFS)中,所有数据和元数据存倒入一起,通过单一的存储服务器提供。你这名模式一般称之为带内模式(In-band Mode)。随着客户端数目的增加,服务器就成了整个系统的瓶颈。由于系统所有的数据传输和元数据除理都会 通过服务器,不仅单个服务器的除理能力有限,存储能力受到磁盘容量的限制,吞吐能力也受到磁盘I/O和网络I/O的限制。在当今对数据吞吐量要求没法大的互联网应用中,传统的分布式文件系统由于好难满足应用的前要。

3、HDFS文件系统架构

1、硬件错误是常态,而非异常请况,HDFS由于是有成百上千的server组成,任何一有2个组件都会 由于有2个劲失效,好多好多 我错误检测和快速、自动的恢复是HDFS的核心架构目标。2、跑在HDFS上的应用与一般的应用不同,它们主好多好多 我以流式读为主,做批量除理;比之关注数据访问的低延迟问提,更关键的在于数据访问的高吞吐量。3HDFS以支持大数据集合为目标,一有2个存储在后面 的典型文件大小一般都会 千兆至T字节,一有2个单一HDFS实例应该能支撑数以千万计的文件。4HDFS应用对文件要求的是write-one-read-many访问模型。一有2个文件经过创建、写,关闭事先就不前要改变。你这名假设错综复杂了数据一致性问提,使高吞吐量的数据访问成为由于。典型的如MapReduce框架,由于一有2个web crawler应用都很适合你这名模型。5、移动计算的代价比之移动数据的代价低。一有2个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的事先更是没法。将计算移动到数据附近,比之将数据移动到应用所在显然更好,HDFS提供给应用原本 的接口。6、在异构的软硬件平台间的可移植性。NamenodeDatanodeHDFS采用master/slave架构。一有2个HDFS集群是有一有2个Namenode和一定数目的Datanode组成。Namenode是一有2个中心服务器,负责管理文件系统的namespace和客户端对文件的访问。Datanode在集群中一般是一有2个节点一有2个,负责管理节点上它们附带的存储。在组织组织结构,一有2个文件其实分成一有2个或多个block,那些block存储在Datanode集合里。Namenode执行文件系统的namespace操作,这类打开、关闭、重命名文件和目录,一起决定block到具体Datanode节点的映射。DatanodeNamenode的指挥下进行block的创建、删除和基因重组。NamenodeDatanode都会 设计成可不前要跑在普通的廉价的运行linux的机器上。HDFS采用java语言开发,好多好多 我可不前要部署在很大范围的机器上。一有2个典型的部署场景是一台机器跑一有2个单独的Namenode节点,集群中的许多机器各跑一有2个Datanode实例。你这名架构不多排除一台机器上跑多个Datanode,不过这比较少见。

平时让我们有好多好多 叫法:那些集群文件系统、san共享文件系统、分布式文件系统、并行文件系统。。等等等。。没法那些概念之间到底有那些联系呢?

多除理器多用户的本地文件系统,如Unix的本地文件系统;

八、数据组织 1、数据块

http://blog.csdn.net/liuben/article/details/6284551

3SafeMode

根据计算环境和所提供功能的不同,文件系统可划分为3个层次,从低到高依次是:

七、健壮性 HDFS的主要目标好多好多 我实现在失败请况下的数据存储可靠性。常见的并与非 失败:Namenode failures, Datanode failures和网络分割(network partitions)

两大阵营各有利弊。直接访问后端SAN的模式,客户端与后端的磁盘阵列之间没法任何许多除理模块,好多好多 其IO的速度是最高的,好多好多 我上加FC网络的速度,你这名系统的速度和速度均较高。好多好多 我相对来讲,其成本也将随着客户端数量的增大而正比增加,由于目前FC适配器贵死了。。。此外由于后端的LUN皆是由MDC来挂载和管理,而系统中的MDC数量有限(目前最多有2个),好多好多 一旦有2个MDC都出问提,没法整个系统就瘫痪了。

2、分布式文件系统:同一有2个文件系统下的文件(由于同一有2个文件的多个次责)都会 被倒入单一节点内,好多好多 我被分开存倒入多个节点之内,这好多好多 我所谓的“分布式”的意义。分布式与共享式是对立的,好多好多 分布式文件系统等价于非共享存储的集群文件系统。

于是,并与非 新的分布式文件系统的价值形式有2个劲再次出现了,那好多好多 我利用存储区域网络(SAN)技术,将应用服务器直接和存储设备相连接,大大提高数据的传输能力,减少数据传输的延时。在原本 的价值形式里,所有的应用服务器都可不前要直接访问存储在SAN中的数据,而只能关于文件信息的元数据才经过元数据服务器除理提供,减少了数据传输的后面 环节,提高了传输速度,减轻了元数据服务器的负载。

引入了IO节点事先,一方面客户端可不前要使用廉价的以太网来访问IO节点了,花费降低;买车人面,对于像Ibrix你这名架构,所有节点都一起作为MDC和IO节点,IO节点就可不前要接管故障节点事先所挂载的lun以及文件系统,继续提供服务,若果系统中还剩一有2个IO节点/MDC,没法整个系统就不多瘫痪。容错高了,付出的代价好多好多 我IO传输速度的降低,毕竟以太网的速度比不上光纤。

九、可访问性 HDFS给应用提供了多种访问土法律依据 ,可不前要通过DFSShell通过命令行与HDFS数据进行交互,可不前要通过java API调用,也可不前要通过C语言的封装API访问,好多好多 我提供了浏览器访问的土法律依据 。正在开发通过WebDav协议访问的土法律依据 。具体使用参考文档。

1、分布式文件系统

3、数据全部性

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

文件系统元数据的持久化

Namenode存储HDFS的元数据。对于任何对文件元数据产生修改的操作,Namenode都使用一有2个称为Editlog的事务日志记录下来。这类,在HDFS中创建一有2个文件,Namenode就会在Editlog中插入一条记录来表示;同样,修改文件的replication因子也将往Editlog插入一条记录。Namenode在本地OS的文件系统中存储你这名Editlog。整个文件系统的namespace,包括block到文件的映射、文件的属性,都存储在称为FsImage的文件中,你这名文件也是倒入Namenode所在系统的文件系统上。

Namenode在内存中保存着整个文件系统namespace和文件Blockmap的映像。你这名关键的元数据设计得很紧凑,因而一有2个中有 4G内存的Namenode足够支撑海量的文件和目录。当Namenode启动时,它从硬盘中读取EditlogFsImage,将所有Editlog中的事务作用(apply)在内存中的FsImage,并将你这名新版本的FsImage从内存中flush到硬盘上,好多好多 我再truncate你这名旧的Editlog,由于你这名旧的Editlog的事务都由于作用在FsImage上了。你这名过程称为checkpoint。在当前实现中,checkpoint只占据 在Namenode启动时,在不久的将来让我们将实现支持周期性的checkpoint

Datanode并他不知道关于文件的任何东西,除了将文件中的数据保占据 本地的文件系统上。它把每个HDFS数据块存储在本地文件系统上隔离的文件中。Datanode不多在同一有2个目录创建所有的文件,相反,它用启发式地土法律依据 来确定每个目录的最佳文件数目,好多好多 我在适当的事先创建子目录。在同一有2个目录创建所有的文件都会 最优的确定,由于本地文件系统由于无法高效地在单一目录中支持絮状的文件。当一有2个Datanode启动时,它扫描本地文件系统,对那些本地文件产生相应的一有2个所有HDFS数据块的列表,好多好多 我发送报告到Namenode,你这名报告好多好多 我Blockreport

六、通讯协议所有的HDFS通讯协议都会 构建在TCP/IP协议上。客户端通过一有2个可配置的端口连接到Namenode,通过ClientProtocolNamenode交互。而Datanode是使用DatanodeProtocolNamenode交互。从ClientProtocolDatanodeprotocol抽象出一有2个远程调用(RPC),在设计上,Namenode不多主动发起RPC,好多好多 我是响应来自客户端和DatanodeRPC请求。

2Replication因子的减小

4、集群文件系统:分布式文件系统、并行文件系统、共享式文件系统,三者统称为集群文件系统。 其中,“分布式”和“共享式”指的是集群中数据分布的土法律依据 ,而“并行”指的是用户对那些数据的访问土法律依据 。分布和访问是有2个层面,并与非 含义的。

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,好多好多 我通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一有2个典型的网络由于包括多个供多用户访问的服务器。另外,对等价值形式允许许多系统扮演客户机和服务器的双重角色。这类,用户可不前要“发表”一有2个允许许多客户机访问的目录,一旦被访问,你这名目录对客户机来说就象使用本地驱动器一样

3、并行文件系统:可不前要提供并行访问的集群文件系统。客户端访问那些被分开存储的文件时,可不前要直接从多个节点并行地读取多个文件,由于一有2个文件的多个次责,这好多好多 我并发的直接从存有对应数据的节点上来读取那些数据,这好多好多 我所谓的“并行”。

  通过 DFS(分布式文件系统),一台服务器上的某个共享点都都都能不能作为驻留在许多服务器上的共享资源的宿主。DFS 以透明土法律依据 链接文件服务器和共享文件夹,好多好多 我将其映射到单个层次价值形式,以便可不前要从一有2个位置对其进行访问,而实际上数据却分布在不同的位置。用户不多转至网络上的多个位置以查找所需的信息,而只需连接到:

4、元数据磁盘错误

3、流水线基因重组

      相对于并行地串行,即串行文件系统,好多好多 我指客户端只能从所有节点中的一有2个节点来读写所有数据,由于前要读写的数据没法所连接的节点上,没法前要由你这名节点来向存有对应数据的节点发起请求,将数据从对应节点通过组织组织结构交换矩阵传输过来事先,再传给客户端。也好多好多 我说数据是串行的传输的。分布不一定并行,好多好多 我并行一定是分布的。并行文件系统均要在主机客户端安装一有2个代理,由于一有2个新文件系统挂载器,用来专门实现并行访问。

  DFS 拓扑从 DFS 树的根目录始于英文英文。占据 逻辑层次价值形式顶部的 DFS 根目录映射到一有2个物理共享。DFS 链接将域名系统 (DNS) 名称映射到目标共享文件夹或目标 DFS 根目录的 UNC 名称。

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

单除理器单用户的本地文件系统,如DOS的文件系统;

2、集群均衡

  或

多除理器多用户的分布式文件系统,如Lustre文件系统.

精彩连接:

  \\服务器名\共享名\路径\文件名

 1san共享式文件系统:其实你这名叫法狭义上好多好多 我自助型、共享存储型的集群文件系统。广义上也可不前要泛指共享存储型的集群文件系统,可不前可是我我自助型,也可不前可是我我服务型。好多好多 我最常用的还是Stornext、中科蓝鲸BWFSIBM SanFS原本 的自助型共享存储集群。San共享文件系统又可被称为:“San文件系统”。

当 DFS 客户端访问 DFS 共享文件夹时,DFS 服务器将 DNS 名称映射到 UNC 名称并将引用返回给该客户端,以使它都都都能不能找到共享文件夹。将 DNS 名称映射到 UNC 名称使数据的物理位置对用户是透明的,原本 用户便不多记住存储文件夹的服务器。

2、分布式文件系统访问土法律依据



由于互联网应用的不断发展,本地文件系统由于单个节点并与非 的局限性,由于好难满足海量数据存取的前要了,因而不得不借助分布式文件系统,把系统负载转移到多个节点上。

在大多数环境中,共享资源驻留在多台服务器上的各个共享文件夹中。要访问资源,用户或程序运行前要将驱动器映射到共享资源的服务器,或指定共享资源的通用命名约定 (UNC) 路径。这类:

每个元数据服务器可不前要向更多的应用服务器提供文件系统元数据服务。你这名模式一般称之为带外模式(Out-of-band Mode)。最近的Storage Tank、CXFS、Lustre、BWFS等都采用原本 的价值形式,好多好多 我它们可不前要取得更好的性能和扩展性。区分带内模式和带外模式的主要土法律依据 是,关于文件系统元数据操作的控制信息是与非 和文件数据一起都通过服务器转发传送。前者前要服务器转发,后者是直接访问。

多除理器单用户的本地文件系统,如OS/2的文件系统;

5、快照

集群文件系统其实最后演化成了两大阵营:一有2个是客户端直接发问后端的SAN的模式,原本 则是在客户端和后端FC SAN lun 之间引入基于以太网链路访问的IO节点模式。后者又可不前要根据客户端访问IO节点使用协议的不同而分为更多种类。

当 DFS 客户端请求 DFS 共享的引用时,DFS 服务器将使用分区请况表 (PKT) 将 DFS 客户端定向到物理共享。对于基于域的 DFS,PKT 存储在 Active Directory 中;对于独立的 DFS,PKT 存储在注册表中。在网络环境中,PKT 维护有关 DFS 拓扑的所有信息,包括其到基础物理共享的映射。DFS 服务器将 DFS 客户端定向到与请求的 DFS 链接相对应的副本共享列表后,DFS 客户端使用 Active Directory 站点拓扑连接到同一站点中的一有2个副本,由于该站点中没法提供副本,则连接到该站点以外的一有2个副本。

  \\DfsServer\Dfsroot

十、空间的回收 1、文件的删除和恢复