• 1. 经典分布式文件系统 介绍
  • 2. 目录分布式文件系统概念和原理 经典分布式文件系统介绍 经典分布式文件系统比较
  • 3. 文件系统的定义文件系统是操作系统的一个重要组成部分,通过对操作系统所管理的存储空间的抽象,向用户提供统一的、对象化的访问接口,屏蔽对物理设备的直接操作和资源管理。
  • 4. 文件系统分类 根据计算环境和所提供功能的不同,文件系统可划分为四个层次,从低到高依次是: 单处理器单用户的本地文件系统 如DOS的文件系统; 多处理器单用户的本地文件系统 如OS/2的文件系统; 多处理器多用户的本地文件系统 如Unix的本地文件系统; 多处理器多用户的分布式文件系统 如Lustre文件系统。
  • 5. 互联网的发展 海量数据的存储 系统负载的转移 分布式文件系统产生背景
  • 6. 以下情形,您应考虑实施DFS: 1.期望添加文件服务器或修改文件位置; 2.访问目标的用户分布在一个站点的多个位置或多个站点上; 3.大多数用户都需要访问多个目标; 4.通过重新分布目标可以改善服务器的负载平衡状况; 5.用户需要连续地访问目标; 6.组织中有供内部或外部使用的网站。 分布式文件系统适用场景
  • 7. 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。例如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就象使用本地驱动器一样 分布式文件系统定义
  • 8. 基本的分布式文件系统网络文件系统(NFS) 虚拟文件系统(VFS) Andrew文件系统(AFS)
  • 9. 虚拟文件系统(VFS)是由Sun microsystems公司在定义网络文件系统(NFS)时创造的。它是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口,是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。严格说来,VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。传统分布式文件系统—NFS定义
  • 10. 虚拟文件系统(VFS)是由Sun microsystems公司在定义网络文件系统(NFS)时创造的。它是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口,是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。严格说来,VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。传统分布式文件系统— VFS定义
  • 11. VFS结构图
  • 12. 关于VFSVFS作为Linux内核中的一个软件层,用于给用户空间的程序提供文件系统接口,同时也 提供了内核中的一个抽象功能,允许不同的文件系统很好地共存; VFS的源代码集中在/usr/src/kernels/2.6.18-194.el5-i686/fs/fs.h目录下,关于它的数据结构的描述在文件/usr/src/kernels/2.6.18-194.el5-i686/include/linux/fs.h中。
  • 13. AFS(The Andrew File System )是美国卡内基梅隆大学开发的一种分布式文件系统; 主要功能是用于管理分布在网络不同节点上的文件。与普通文件系统相比,AFS的主要特点在于三个方面:分布式、跨平台、高安全性。 AFS提供给用户的只是一个完全透明的、永远唯一的逻辑路径, AFS的这种功能往往被用于用户的home目录,以使得用户的home目录唯一、而且避免了数据的不一致性。 传统分布式文件系统— AFS定义
  • 14. 目录分布式文件系统概念和原理 经典分布式文件系统介绍 经典分布式文件系统比较
  • 15. Lustre文件系统是一个基于对象存储的分布式文件系统,也是一个开源项目。 Lustre项目与1999年在Carnegie Mellon University启动,现在已经发展成为应用最广泛的分布式文件系统。 Lustre已经运行在当今世界上最快的集群系统里面,比如Bule Gene,Red Storm等计算机系统,用来进行核武器相关的模拟,以及分子动力学模拟等等非常关键的领域。 经典分布式文件系统一:Lustre
  • 16. Lustre特征及使用场景Oracle公司的企业级产品,非常庞大 ; 在高校、国家实验室和超级计算研究中心产生了一定影响,未来几年中,它很有可能进入普通的商业计算机领域。
  • 17. Lustre集群架构
  • 18. Lustre功能模块一元数据存储与管理 MDS负责管理元数据,提供一个全局的命名空间,Client可以通过MDS读取到保存于MDT之上的元数据。在Lustre中MDS可以有2个,采用了Active-Standby的容错机制,当其中一个MDS不能正常工作时,另外一个后备MDS可以启动服务。MDT只能有1个,不同MDS之间共享访问同一个MDT。
  • 19. Lustre功能模块二文件数据存储与管理 OSS负载提供I/O服务,接受并服务来自网络的请求。通过OSS,可以访问到保存在OST上的文件数据。一个OSS对应2到8个OST,其存储空间可以高达8TB。OST上的文件数据是以分条的形式保存的,文件的分条可以在一个OSS之中,也可以保存在多个OSS中。Lustre的特色之一是其数据是基于对象的职能存储的,跟传统的基于块的存储方式有所不同。
  • 20. Lustre功能模块三Lustre系统访问入口 Lustre通过Client端来访问系统,Client为挂载了Lustre文件系统的任意节点。Client提供了Linux下VFS(虚拟文件系统)与Lustre系统之间的接口,通过Client,用户可访问操作Lustre系统中的文件。
  • 21. Lustre文件系统架构
  • 22. 关于Lustre文件系统目前Lustre文件系统最多可以支持100000个Client,1000个OSS 和2个MDS节点。 Lustre系统中可以同时运行1~3个功能模块。不过Lustre一般运行于高性能计算机系统之上,为了提高Lustre文件系统的性能,通常MDS、OSS和Client是分开运行在Lustre不同的节点之上的。 实验与应用已经证明,Lustre文件系统的性能和可扩展性都不错;还拥有基于对象的智能化存储、安全的认证机制、比较完善的容错机制等优点,值得注意的是,Lustre还实现了部分文件锁; 相对于PVFS,Lustre的可用性和扩展性以及性能上都有较大的提高。然而,Lustre需要特殊设备的支持,并且Lustre目前还没实现MDS的集群管理,虽然相比PVFS的单MDS,Lustre的双MDS在可用性上还是提高不少,但是当系统达到一定的规模之后,MDS还是很有可能成为Lustre系统中的瓶颈。
  • 23. 谷歌文件系统(Google File System,GoogleFS)是为了满足快速增长的数据处理需要而设计的。在开发实现GoogleFS之前,设计人员首先对Google应用程序负载和应用环境进行了深入探讨和分析,它能运行在不可靠硬件设备上进行海量的数据处理,处理来自多个用户的并发访问。文件系统中存放的数据绝大部分采用追加新数据而非覆盖现有数据的方式进行写操作。除了考虑到这些需要和技术特点后,GoogleFS也考虑了分布式文件系统的共性设计目标:性能、可扩展性、可靠性和可用性。 经典分布式文件系统二:GoogleFS
  • 24. GoogleFS特征及适用场景针对Google自身特点设计,超大规模; 已经广泛的在Google内部进行部署,是处理整个WEB范围内难题的一个重要工具 。
  • 25. GoogleFS架构
  • 26. GoogleFS组件一主服务器 GoogleFS包括一个主服务器,主服务器负责维护所有文件系统的元数据,包括命名空间、文件至数据块的映射信息,访问控制信息,以及主存中数据块的当前位置。之所以将数据块读入主存是为了提高主服务器的操作性能。
  • 27. GoogleFS组件二块服务器 GoogleFS包括多个大数据块服务器,这些块服务器响应多个客户端的访问请求。 文件被分割成64MB固定大小的数据块(Chunk),它分布在各个块服务器上,每个块在多个服务器上都存有副本,为了可靠性,一般存放3个副本。 块服务器使用下层物理文件系统(如Ext3)来存放数据块。
  • 28. GoogleFS组件三客户端 直接使用文件系统API来访问主服务器和块服务器。为了减少发给主服务器的请求数量,客户端只对元数据进行缓存,需要注意的是,客户端和块服务器对文件数据不进行高速缓存。GoogleFS采用的副本技术来提高数据可用性,数据块和元数据都存在副本,比如每个数据块在3台块服务器上都存在副本;当管理元数据的主服务器宕机时,备用的"影子"服务器则切换过来,但它只能提供读取操作,不支持修改、写入操作。为了增加数据可恢复性,GoogleFs采用了操作日志和快照技术。
  • 29. Hadoop是一个基于JAVA的支持数据密集型分布式应用的分布式文件系统。不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架。 它能够保证应用可以在上千个低成本商用硬件存储结点上处理PB级的数据。Hadoop是Apache开源项目,Yahoo支持这个项目并在自己的web搜索和商业广告业务上使用它。Hadoop开发类似于Google的MapReduce和Google文件系统的技术。经典分布式文件系统三:HDFS
  • 30. HDFS整体架构
  • 31. HDFS体系结构
  • 32. HDFS组件一主服务器 主服务器,即命名节点,管理文件系统命名空间和客户端访问,具体文件系统命名空间操作包括'打开'、'关闭'、'重命名'等,并负责数据块到数据节点之间的映射;此外,存在一组数据节点,它除了负责管理挂载在节点上的存储设备,还负责响应客户端的读写请求。HDFS将文件系统命名空间呈现给客户端,并运行用户数据存放到数据节点上。从内部构造看,每个文件被分成一个或多个数据块,从而这些数据块被存放到一组数据节点上;数据节点会根据命名节点的指示执行数据块创建、删除和复制操作。
  • 33. HDFS组件二数据节点 DataNode负责管理存储结点上的存储空间和来自客户的读写请求。 DataNode也执行块创建、删除和来自NameNode的复制命令。
  • 34. HDFS特有策略一高度容错的,可运行在廉价硬件上; HDFS能为应用程序提供高吞吐率的数据访问,适用于大数据集的应用中; HDFS在POSIX规范进行了修改,使之能对文件系统数据进行流式访问,从而适用于批量数据的处理。 HDFS为文件采用一种"一次写多次读"的访问模型,从而简化了数据一致性问题,使高吞吐率数据访问成为可能,一些Map/Reduce应用和网页抓取程序在这种访问模型下表现完美。
  • 35. HDFS特有策略二HDFS提出了“移动计算能力比移动数据更廉价” 的设计理念,它将计算迁移到距离数据更近的位置,而不是将数据移动到应用程序运行的位置,HDFS提供了这种迁移应用程序的API接口; 大量的低成本商用计算机具有较高的失效率,因此失效检测,快速高效的恢复是Hadoop文件系统的主要设计目标。 Hadoop也更加适用于批量流水数据存取应用,更加关注提高系统的整体吞吐率而不是响应时间;
  • 36. HDFS特有策略三使用简单的一致性协议,因此主要针对面向写一次读很多次的应用。 Hadoop很容易移植到另一个平台。 所有HDFS的通讯协议是建立在TCP/IP协议之上的,在客户和NameNode之间建立ClientProtocol协议,文件系统客户端通过一个端口连接到命名节点上,通过客户端协议与命名节点交换;而在DataNode和NameNode之间建立DataNode协议。上面两种协议都封装在远程过程调用协议(Remote Procedure Call,RPC)之中。
  • 37. HDFS特有策略四HDFS提出了数据均衡方案,即,如果某个数据节点上的空闲空间低于特定的临界点,那么就会启动一个计划自动地将数据从一个数据节点迁移到空闲的数据节点上。
  • 38. FastDFS是为互联网应用量身定做的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。 和现有的类Google FS分布式文件系统相比,FastDFS的架构和设计理念有其独到之处,主要体现在轻量级、分组方式和对等结构三个方面。 FastDFS不对文件进行分块存储,与支持文件分块存储的DFS相比,更加简洁高效,并且完全能满足绝大多数互联网应用的实际需要。 经典分布式文件系统四:FastDFS
  • 39. FastDFS整体架构
  • 40. FastDFS角色一Tracker server 作为中心结点,其主要作用是负载均衡和调度。Tracker server在内存中记录分组和Storage server的状态等信息,不记录文件索引信息,占用的内存量很少。另外,客户端和Storage server访问Tracker server时,Tracker server扫描内存中的分组和Storage server信息,然后给出应答。由此可以看出Tracker server非常轻量化,不会成为系统瓶颈。
  • 41. FastDFS角色二Storage server 在其他文件系统中通常称作Trunk server或Data server。 Storage server直接利用OS的文件系统存储文件。FastDFS不会对文件进行分块存储,客户端上传的文件和Storage server上的文件一一对应。
  • 42. FastDFS特性一轻量级 FastDFS不对文件大小做限制、不对文件进行分块存储 ; FastDFS集群中根本不需要存储文件索引信息 ,客户端上传文件时,文件ID不是由客户端指定,而是由Storage server生成后返回给客户端的。文件ID中包含了组名、文件相对路径和文件名,Storage server可以根据文件ID直接定位到文件 ; 代码量小(v2.0 5.2w行代码)。
  • 43. FastDFS特性二分组方式 FastDFS采用了分组存储方式。集群由一个或多个组构成,集群存储总容量为集群中所有组的存储容量之和。一个组由一台或多台存储服务器组成,同组内的多台Storage server之间是互备关系,同组存储服务器上的文件是完全一致的。文件上传、下载、删除等操作可以在组内任意一台Storage server上进行。
  • 44. FastDFS特性三对等结构 Tracker server之间不是master-slave关系,是对等关系; 组内的Storage server之间也是对等关系。
  • 45. FastDFS文件上传过程
  • 46. FastDFS文件下载过程
  • 47. FastDFS与MogileFS比较一FastDFS完善程度较高,不需要二次开发即可直接使用; FastDFS裁减了跟踪用的数据库。 在系统中增加任何角色的服务器都很容易; FastDFS比MogileFS更高效。表现在如下几个方面: 1)参见上面的第2点,FastDFS和MogileFS相比,没有文件索引数据库,FastDFS整体性能更高; 2)从采用的开发语言上看,FastDFS比MogileFS更底层、更高效。FastDFS用C语言编写,代码量不到2万行,没有依赖其他开源软件或程序包,安装和部署特别简洁;而MogileFS用perl编写; 3)FastDFS直接使用socket通信方式,相对于MogileFS的HTTP方式,效率更高。并且FastDFS使用sendfile传输文件,采用了内存零拷贝,系统开销更小,文件传输效率更高。
  • 48. FastDFS与MogileFS比较二FastDFS有着详细的设计和使用文档,而MogileFS的文档相对比较缺乏; FastDFS的日志记录非常详细,系统运行时发生的任何错误信息都会记录到日志文件中,当出现问题时方便管理员定位错误所在; FastDFS还对文件附加属性(即meta data,如文件大小、图片宽度、高度等)进行存取,应用不需要使用数据库来存储这些信息; FastDFS从V1.14开始支持相同文件内容只保存一份,这样可以节省存储空间,提高文件访问性能。
  • 49. MooseFS 采用C编写,是一个高容错性的分布式文件系统,能够将资源分布存储于几台不同的物理介质,对外只提供给用户一个访问接口。对它的操作与其它文件系统完全一样。 采用 mfsmount 来与管理服务器进行交互(接收或修改元数据文件)及与数据服务器交换真正的数据。 mfsmount 是基于 FUSE (FileSystem in USErspace) 机制的,因此 mooseFS 能够工作于任何实现了 FUSE 的操作系统( Linux、 FreeBSD、OpenSolaris MacOS等)。 经典分布式文件系统五:MooseFS
  • 50. MooseFS功能分层文件结构(目录树结构); 存储POSIX 文件属性(权限、最后访问、修改时间); 支持特殊的文件(块文件夹、字符文件及管道和socket ) 软链接(文件名指向目标文件)及硬链接(不同的文件名指向同一块数据); 仅限于基于IP 地址或密码来访问文件系统。
  • 51. MooseFS特征高可靠性:数据可以被存储于几个不同的地方; 可扩展性:可以动态的添加计算机或磁盘来增加系统的容量产; 高可控性:系统能够设置删除文件的时间间隔; 可追溯性:能够根据文件的不同操作(写入/ 访问)生成文件快照。
  • 52. MooseFS工作原理 在客户端上对挂载在 MooseFS 上的文件操作与的文件系统完全一样,操作系统内核将文件操作传输至 FUSE 模块,进而与 mfsmount 进程进行交互。 Mfsmount 进程通过网络与管理服 务器及数据服务器交互。 整个过程对用户来说是完全透明的。
  • 53. MooseFS所提供必须的文件操作创建文件; 删除文件; 读取文件目录; 读取及改变属性; 改变文件大小; 开始读取或写入数据; 访问MFSMETA 上的任何特殊文件。
  • 54. MooseFS体系结构
  • 55. MooseFS组成 元数据服务器(Master) 数据存储服务器(chunkservers) 备份主机(backupserver,可选) 客户端(clients)
  • 56. MooseFS适用性小文件
  • 57. MooseFS组成一元数据服务器(master) 分布式文件系统MooseFS的主控端:控制个数据存储服务器 目前只有一个master,存在单点故障 客户端的访问接口就是master 支持各种linux/unix
  • 58. MooseFS组成二数据存储服务器(chunkserver) 数据实际存储的地方 由多个物理服务器组成 在数据存储目录,看不见实际的数据(只有带编号的目录及文件) 建议使用2-3个副本 支持各种linux/unix
  • 59. MooseFS组成三MooseFS客户端 挂接分布式文件系统 一般是应用服务器 客户端可以是linux,freebsd等各种类unix 数个客户端 Freebsd的fusefs_kmod可能会有性能问题
  • 60. MooseFS读文件操作
  • 61. MooseFS读文件操作
  • 62. MooseFS发展、应用状况支持FUSE,相对比较轻量级 ; 存在问题—单点依赖; 但是,国内用的人比较多(据说)。
  • 63. MooseFS核心技术mfsmount进程 管理客户端与服务器进行交互(接收或修改元数据文件); 管理客户端与数据服务器交换真正的数据。
  • 64. MogileFS 是一个开源的分布式文件系统,用于组建分布式文件集群,由 LiveJournal 旗下 Danga Interactive 公司开发. 目前国内使用 MogileFS 的有图片托管网站 yupoo 等。 MogileFS 是 51.com 的存储设计的大师碧轩非常推荐的,51 的集群文件系统也是基于这个原理实现的。 简单来讲 MogileFS 是基于 Google File System 实作出来的. MogileFS的存储引擎对应用完全透明,同时它的每一个节点还可以作为轻量级Http Server,支持GET直接访问文件。另外,还包括接入时负载均衡的支持。 经典分布式文件系统六:MogileFS
  • 65. MogileFS功能MogileFS的存储引擎对应用完全透明; 它的每一个节点还可以作为轻量级Http Server,支持GET直接访问文件; 另外,还包括接入时负载均衡的支持。
  • 66. MogileFS特征能够做到 不需要特殊的核心组件; 无单点失败; 自动的文件复制; 比RAID好多了; 传输中立; 无特殊协议(客户端可以通过NFS或HTTP来和MogileFS通信); 简单的命名空间; 不用共享任何东西; 不会碰到文件系统本身的不可知情况。
  • 67. MogileFS适用性由于Mogilefs不支持对一个文件的随机读写,因此注定了只适合做一部分应用。比如图片服务,静态HTML服务。    即文件写入后基本上不需要修改的应用,当然你也可以生成一个新的文件覆盖上去。 适合于静态存储,就是那种一次保存,多次读取型的资源,比如以html方式静态化处理的动态文件,图片文件,其他只提供下载的文件等。
  • 68. MogileFS体系结构
  • 69. MogileFS组成一数据库(MySQL)部分    可以用 mogdbsetup程序来初始化数据库。数据库保存了Mogilefs的所有元数据,可以单独拿数据库服务器来做,也可以跟其他程序跑在一起,数据库 部分非常重要,类似邮件系统的认证中心那么重要,如果这儿挂了,那么整个Mogilefs将处于不可用状态。因此最好是HA结构。  
  • 70. MogileFS组成二存储节点    mogstored 程序的启动将使本机成为一个存储节点。启动时默认去读/etc/mogilefs/mogstored.conf ,具体配置可以参考配置部分。 mogstored启动后,便可以通过mogadm增加这台机器到cluster中。 一台机器可以只运行一个 mogstored作为存储节点即可,也可以同时运行其他程序。   
  • 71. MogileFS组成三trackers(跟踪器)    mogilefsd即 trackers程序,类似mogilefs的wiki上介绍的,trackers做了很多工作,Replication ,Deletion,Query,Reaper,Monitor等等。mogadm,mogtool的所有操作都要跟trackers打交 道,Client的一些操作也需要定义好trackers,因此最好同时运行多个trackers来做负载均衡。trackers也可以只运行在一台机器 上,也可以跟其他程序运行在一起,只要你配置好他的配置文件即可,默认在/etc/mogilefs/mogilefsd.conf。
  • 72. MogileFS组成四工具    主要就是mogadm,mogtool这两个工具(进程)了,用来在命令行下控制整个mogilefs系统以及查看状态等等。
  • 73. MogileFS组成五 Client    Client实际上是一个Perl的pm,可以写程序调用该pm来使用mogilefs系统,对整个系统进行读写操作
  • 74. MogileFS值得借鉴的地方多服务器,避免了单点依赖; 采用Domain,class来对文件进行分类; 自动文件复制功能;
  • 75. Ceph 最初是一项关于存储系统的 PhD 研究项目,由 Sage Weil 在 University of California, Santa Cruz(UCSC)实施。但是到了 2010 年 3 月底,可以在主线 Linux 内核(从 2.6.34 版开始)中找到 Ceph 的身影。 它是一个分布式文件系统,能够在维护 POSIX 兼容性的同时加入了复制和容错功能。 Ceph 可能还不适用于生产环境,但它对测试目的还是非常有用的。经典分布式文件系统七:Ceph
  • 76. Ceph的目标可轻松扩展到数 PB 容量 ; 对多种工作负载的高性能(每秒输入/输出操作[IOPS]和带宽); 高可靠性 。
  • 77. Ceph的体系结构
  • 78. Ceph的分层试图
  • 79. Ceph的分层组件一Metadata Server Cluster 元数据存储在一个存储集群 ; 管理文件系统的名称空间 ; 管理数据位置,以及在何处存储新数据 ; 更高层次的 POSIX 功能(例如,打开、关闭、重命名)就由元数据服务器管理 。
  • 80. Ceph的分层组件二Object Storage Cluster 存储文件; 与客户端发生文件I/O; POSIX 功能(例如读和写)则直接由对象存储集群管理 。
  • 81. Ceph的分层组件三Clients
  • 82. Ceph的分层组件四Cluster Monitors 识别机器故障; 系统通知;
  • 83. 简单的 Ceph 生态系统
  • 84. Ceph关键技术一CRUSH算法 (Controlled Replication Under Scalable Hashing ) 处理组到对象存储设备的映射(一个伪随机映射 );
  • 85. Ceph关键技术二BTRFS—B-tree 文件系统 Ceph建立在BTRFS基础上;
  • 86. Ceph应用现状试验阶段; BTRFS不稳定; Ceph不稳定,不适用于生产环境。
  • 87. TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。 它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。经典分布式文件系统八:TFS
  • 88. TFS体系结构
  • 89. TFS组件一Nameserver,是文件系统的元数据管理中心。负责管理自己所在集群的信息,维护dataserver的相关信息,实现dataserver的负载均衡。 (1) 负责对dataserver 的检查,通过dataserver发送的心跳消息,监控dataserver的加入或者退出,管理所在集群的dataserver信息列表; (2) 维护每个dataserver的状态信息(总容量,已用容量,当前负载,Block数量等),发起对Block的新建或删除等操作; (3) 维护dataserver上的Block元数据信息,包括Block是否可用,文件数等,读文件的时候负责定位dataserver的位置,写文件的时候负责分配某dataserver的可写block; (4) 管理所有block在dataserver中的分布,block的副本复制,以及均衡。
  • 90. TFS组件二dataserver是文件系统的最终存储设备。 最主要的功能就是维护自己拥有的BLOCK列表,及BLOCK中的文件列表,提供数据的读写。负责具体文件的创建,读写删改。具体有以下几个功能: (1) 维护和nameserver之间的消息通信,向nameserver发送心跳信息,报告自己的BLOCK列表及状态(如机器Load, 硬盘使用情况)。 (2) 提供dataserver上BLOCK的创建和删除,并更新nameserver上的block信息。 (3) 提供BLOCK上文件的创建、删除、读写、重命名等。 (4) 提供dataserver本身的信息查询,例如BLOCK及FILE的信息查询。 (5) 实现和镜像的数据同步,提供BLOCK复制和压缩功能。
  • 91. TFS组件三Client 客户端为用户使用分布式文件系统提供一层接口封装,提供tfs上文件打开,读写,删除,修改,状态查询,关闭等功能。 目前的客户端主要支持JAVA,C++两种。
  • 92. TFS组件四Adminserver 管理工具,可用于启动nameserver和dataserver,监控nameserver和dataserver的运行状态。当nameserver或dataserver挂掉时,自动重启。
  • 93. TFS的容错机制集群容错; 配置主辅集群 。 NameServer容错; 管理了DataServer和Block之间的关系 ; NameServer和DataServer之间也会有定时的heartbeat ; DataServer容错。 采用Block存储多份的方式来实现DataServer的容错 。
  • 94. TFS的文件命名