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

  • 时间:
  • 浏览:1

1、分布式文件系统

5、快照

3、流水线qq克隆好友

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

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

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

2Replication因子的减小

3、数据详细性

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

  或

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

  DFS 拓扑从 DFS 树的根目录现在开始。占据 逻辑层次型态顶部的 DFS 根目录映射到有2个 物理共享。DFS 链接将域名系统 (DNS) 名称映射到目标共享文件夹或目标 DFS 根目录的 UNC 名称。

2、集群均衡

      相对于并行地串行,即串行文件系统,假若指客户端非要从所有节点中的有2个 节点来读写所有数据,是是因为时需读写的数据没了所连接的节点上,如此时需由這個节点来向存有对应数据的节点发起请求,将数据从对应节点通过实物交换矩阵传输过来后要,再传给客户端。也假若说数据是串行的传输的。分布不一定并行,或者并行一定是分布的。并行文件系统均要在主机客户端安装有2个 代理,是是因为有2个 新文件系统挂载器,用来专门实现并行访问。

引入了IO节点后要,一方面客户端能也能使用廉价的以太网来访问IO节点了,花费降低;当事人面,对于像Ibrix這個架构,所有节点都一起作为MDC和IO节点,IO节点就能也能接管故障节点后要所挂载的lun以及文件系统,继续提供服务,假若系统中还剩有2个 IO节点/MDC,如此整个系统就无需瘫痪。容错高了,付出的代价假若IO传输带宽的降低,毕竟以太网的带宽比不上光纤。

单一节点的Namenode大大简化了系统的架构。Namenode负责保管和管理所有的HDFS元数据,因而用户数据就不时需通过Namenode(也假若说文件数据的读写是直接在Datanode上)。文件系统的namespaceHDFS支持传统的层次型文件组织,与大多数有些文件系统类似,用户能也能创建目录,并在其间创建、删除、移动和重命名文件。HDFS不支持user quotas和访问权限,假若支持链接(link),不过当前的架构从不排除实现哪此型态。Namenode维护文件系统的namespace,任何对文件系统namespace和文件属性的修改都将被Namenode记录下来。应用能也能设置HDFS保存的文件的副本数目,文件副本的数目称为文件的replication因子,這個信息也是由Namenode保存。数据qq克隆好友 HDFS被设计成在有2个 大集群中能也能跨机器地可靠地存储海量的文件。它将每个文件存储成block序列,除了最后有2个 block,所有的block都不 同样的大小。文件的所有block为了容错后要被qq克隆好友 。每个文件的block大小和replication因子都不 可配置的。Replication因子能也能在文件创建的后要配置,后要也能也能改变。HDFS中的文件是write-one,或者严格要求在任何后要非要有2个 writerNamenode全权管理block的qq克隆好友 ,它周期性地从集群中的每个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也将首先尝试读本地数据中心的副本。

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

  \\服务器名\共享名

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

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

3、HDFS文件系统架构

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

七、健壮性 HDFS的主要目标假若实现在失败状况下的数据存储可靠性。常见的某种失败:Namenode failures, Datanode failures和网络分割(network partitions)

 1san共享式文件系统:实在這個叫法狭义上假若自助型、共享存储型的集群文件系统。广义上也能也能泛指共享存储型的集群文件系统,能也能是自助型,也能也能是服务型。或者最常用的还是Stornext、中科蓝鲸BWFSIBM SanFS原来的自助型共享存储集群。San共享文件系统又可被称为:“San文件系统”。



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

每个元数据服务器能也能向更多的应用服务器提供文件系统元数据服务。這個模式一般称之为带外模式(Out-of-band Mode)。最近的Storage Tank、CXFS、Lustre、BWFS等都采用原来的型态,或者它们能也能取得更好的性能和扩展性。区分带内模式和带外模式的主要最好的办法是,关于文件系统元数据操作的控制信息是是否和文件数据一起都通过服务器转发传送。前者时需服务器转发,后者是直接访问。

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

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

4、元数据磁盘错误

八、数据组织 1、数据块

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

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

两大阵营各有利弊。直接访问后端SAN的模式,客户端与后端的磁盘阵列之间如此任何有些正确处理模块,好多好多 其IO的带宽是最高的,或者加带FC网络的带宽,這個系统的带宽和带宽均较高。或者相对来讲,其成本也将随着客户端数量的增大而正比增加,是是因为目前FC适配器贵死了。。。此外是是因为后端的LUN皆是由MDC来挂载和管理,而系统中的MDC数量有限(目前最多有2个 ),好多好多 一旦有2个 MDC都出哪此的疑问,如此整个系统就瘫痪了。

2、分布式文件系统访问最好的办法

平时大伙儿有好多好多 叫法:哪此集群文件系统、san共享文件系统、分布式文件系统、并行文件系统。。等等等。。如此哪此概念之间到底有哪此联系呢?

1、硬件错误是常态,而非异常状况,HDFS是是因为是有成百上千的server组成,任何有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的创建、删除和qq克隆好友 。NamenodeDatanode都不 设计成能也能跑在普通的廉价的运行linux的机器上。HDFS采用java语言开发,或者能也能部署在很大范围的机器上。有2个 典型的部署场景是一台机器跑有2个 单独的Namenode节点,集群中的有些机器各跑有2个 Datanode实例。這個架构从不排除一台机器上跑多个Datanode,不过这比较少见。

4、集群文件系统:分布式文件系统、并行文件系统、共享式文件系统,三者统称为集群文件系统。 其中,“分布式”和“共享式”指的是集群中数据分布的最好的办法,而“并行”指的是用户对哪此数据的访问最好的办法。分布和访问是有2个 层面,某种含义的。

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

3、并行文件系统:能也能提供并行访问的集群文件系统。客户端访问哪此被分开存储的文件时,能也能直接从多个节点并行地读取多个文件,是是因为有2个 文件的多个每项,这假若并发的直接从存有对应数据的节点上来读取哪此数据,这假若所谓的“并行”。



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

3SafeMode

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

2、分布式文件系统:同有2个 文件系统下的文件(是是因为同有2个 文件的多个每项)都不 被放进单一节点内,假若被分开存放进多个节点之内,这假若所谓的“分布式”的意义。分布式与共享式是对立的,好多好多 分布式文件系统等价于非共享存储的集群文件系统。

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

精彩连接:

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

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

于是,某种新的分布式文件系统的型态出現 了,那假若利用存储区域网络(SAN)技术,将应用服务器直接和存储设备相连接,大大提高数据的传输能力,减少数据传输的延时。在原来的型态里,所有的应用服务器都能也能直接访问存储在SAN中的数据,而非要关于文件信息的元数据才经过元数据服务器正确处理提供,减少了数据传输的后面 环节,提高了传输带宽,减轻了元数据服务器的负载。

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

  \\DfsServer\Dfsroot

文件系统元数据的持久化

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请求。