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

  • 时间:
  • 浏览:1
  • 来源:5分3D官方_极速5分排列5

精彩连接:

  或

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



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

通过有另八个 称为Rack Awareness的过程,Namenode决定了每个Datanode所属的rack id。有另八个 简单但没法 优化的策略然后将副本存放进去单独的机架上。然后 还能不能 除理整个机架(非副本存放)失效的情况,有些 允许读数据的前一天还能不能 从多个机架读取。两种简单策略设置还能不能 将副本分布在集群中,有益于组件失败情况下的负载均衡。有些 ,两种简单策略加大了写的代价,前一天有另八个 写操作没法 传输block到多个机架。

在大多数情况下,replication因子是3HDFS的存放策略是将有另八个 副本存放进去本地机架上的节点,有另八个 副本放进去同一机架上的然后 节点,最后有另八个 副本放进去不同机架上的有另八个 节点。机架的错误远远比节点的错误少,两种策略太久影响到数据的可靠性和有效性。三分之一的副本在有另八个 节点上,三分之二在有另八个 机架上,有些保占据 剩下的机架中,两种策略改进了写的性能。

2、副本的选则,为了降低整体的速率单位消耗和读延时,HDFS会尽量让reader读最近的副本。前一天在reader的同有另八个 机架上有有另八个 副本,没法 就读该副本。前一天有另八个 HDFS集群跨太久个数据中心,没法 reader也将首先尝试读本地数据中心的副本。

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

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

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

2、分布式文件系统:同有另八个 文件系统下的文件(前一天同有另八个 文件的多个偏离 )时会被放进去单一节点内,然后被分开存放进去多个节点之内,这然后所谓的“分布式”的意义。分布式与共享式是对立的,统统分布式文件系统等价于非共享存储的集群文件系统。

 1san共享式文件系统:觉得两种叫法狭义上然后自助型、共享存储型的集群文件系统。广义上也还能不能 泛指共享存储型的集群文件系统,还能不能 是自助型,也还能不能 是服务型。有些 最常用的还是Stornext、中科蓝鲸BWFSIBM SanFS然后 的自助型共享存储集群。San共享文件系统又可被称为:“San文件系统”。

5、快照

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

2Replication因子的减小

  \\DfsServer\Dfsroot

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

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

4、元数据磁盘错误

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

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

  DFS 拓扑从 DFS 树的根目录结速。占据 逻辑层次社会形态顶部的 DFS 根目录映射到有另八个 物理共享。DFS 链接将域名系统 (DNS) 名称映射到目标共享文件夹或目标 DFS 根目录的 UNC 名称。

3SafeMode

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



前一天互联网应用的不断发展,本地文件系统前一天单个节点两种的局限性,前一天没法 满足海量数据存取的没法 了,因而不得不借助分布式文件系统,把系统负载转移到多个节点上。

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

引入了IO节点前一天,一方面客户端还能不能 使用廉价的以太网来访问IO节点了,花费降低;被委托人面,对于像Ibrix两种架构,所有节点都同時 作为MDC和IO节点,IO节点就还能不能 接管故障节点前一天所挂载的lun以及文件系统,继续提供服务,假使 系统中还剩有另八个 IO节点/MDC,没法 整个系统就太久瘫痪。容错高了,付出的代价然后IO传输速率单位的降低,毕竟以太网的速率单位比不上光纤。

于是,两种新的分布式文件系统的社会形态总出 了,那然后利用存储区域网络(SAN)技术,将应用服务器直接和存储设备相连接,大大提高数据的传输能力,减少数据传输的延时。在然后 的社会形态里,所有的应用服务器都还能不能 直接访问存储在SAN中的数据,而没法 关于文件信息的元数据才经过元数据服务器除理提供,减少了数据传输的底下环节,提高了传输速率单位,减轻了元数据服务器的负载。

      相对于并行地串行,即串行文件系统,然后指客户端没法 从所有节点中的有另八个 节点来读写所有数据,前一天没法 读写的数据没了所连接的节点上,没法 没法 由两种节点来向存有对应数据的节点发起请求,将数据从对应节点通过外部交换矩阵传输过来前一天,再传给客户端。也然后说数据是串行的传输的。分布不一定并行,有些 并行一定是分布的。并行文件系统均要在主机客户端安装有另八个 代理,前一天有另八个 新文件系统挂载器,用来专门实现并行访问。

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

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



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

平时亲戚朋友有统统叫法:那此集群文件系统、san共享文件系统、分布式文件系统、并行文件系统。。等等等。。没法 那此概念之间到底有那此联系呢?

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

3、HDFS文件系统架构

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

2、集群均衡

1、分布式文件系统

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

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

  \\服务器名\共享名

3、流水线一键复制

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

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

3、数据完正性

八、数据组织 1、数据块

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

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

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

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

3、并行文件系统:还能不能 提供并行访问的集群文件系统。客户端访问那此被分开存储的文件时,还能不能 直接从多个节点并行地读取多个文件,前一天有另八个 文件的多个偏离 ,这然后并发的直接从存有对应数据的节点上来读取那此数据,这然后所谓的“并行”。

每个元数据服务器还能不能 向更多的应用服务器提供文件系统元数据服务。两种模式一般称之为带外模式(Out-of-band Mode)。最近的Storage Tank、CXFS、Lustre、BWFS等都采用然后 的社会形态,有些 它们还能不能 取得更好的性能和扩展性。区分带内模式和带外模式的主要最好的方式是,关于文件系统元数据操作的控制信息是是不是和文件数据同時 都通过服务器转发传送。前者没法 服务器转发,后者是直接访问。

文件系统元数据的持久化

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

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

Datanode并我不知道关于文件的任何东西,除了将文件中的数据保占据 本地的文件系统上。它把每个HDFS数据块存储在本地文件系统上隔离的文件中。Datanode并非在同有另八个 目录创建所有的文件,相反,它用启发式地法律最好的方式来选则每个目录的最佳文件数目,有些 在适当的前一天创建子目录。在同有另八个 目录创建所有的文件时会最优的选则,前一天本地文件系统前一天无法高效地在单一目录中支持血块的文件。当有另八个 Datanode启动时,它扫描本地文件系统,对那此本地文件产生相应的有另八个 所有HDFS数据块的列表,有些 发送报告到Namenode,两种报告然后Blockreport

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

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

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