Skip to content
zydcom edited this page Jan 18, 2013 · 2 revisions

分布式文件系统(DNFS)由元数据服务器(MDS)、存储节点以及客户端组成。元数据服务器主要负责管理文件的元数据(基本属性及分条信息),存储节点实际存储文件数据,客户端提供文件系统的访问入口(POSIX接口)。

DNFS特性 架构图

  • DNFS中的节点采用廉价的PC,部署成本低;
  • DNFS将元数据与存储数据分离,实现计算与存储任务的分离,使得元数据服务器专注于计算,存储节点专注于存储。DNFS的元数据服务器多存储小文件,使用Reiserfs日志文件系统,其磁盘的利用率特别高,尤其是对小文件的支持特别好,Reiserfs文件系统对一些小文件并不分配inode,而是将这些文件打包,存放在同一个磁盘分块中;而存储节点通常使用较大(8M或64M)的数据块(以文件形式存储),故采用ext2/ext3即可。
  • DNFS通过元数据服务器提供统一的命名空间,元数据服务器负责文件的创建,删除,读写(包括存储节点的分配)等的控制;元数据服务器还负责统一的分布式锁管理,存储节点状态监控与管理等。因元数据服务器存在单点故障问题,其应使用性能较高的服务器,同时可采用ucarp等软件实现failover。
  • DNFS通过FUSE实现VFS接口,向用户提供标准的POSIX接口,用户可以像使用本地文件系统一样使用分布式文件系统;
  • DNFS的客户端可以并行的读写数据,多个存储节点可并行为客户端提供服务,但元数据服务是串行进行的;另外,为了保证文件数据的安全性,每个数据块都会被写入到多个存储节点中(副本数可根据业务需要进行配置)。
  • DNFS的存储节点周期性的向元数据服务器报告状态, 故当存储节点加入系统或发生故障时,元数据服务器都能感知,并更新节点的状态。对于发生故障的节点,元数据服务器将不会再分配它;对于新加入的存储节点,元数据服务器会优先选择它。
  • DNFS使用客户端缓存来缓存经常使用文件的元数据,避免每次访问元数据服务器;缓存的位置在客户端内存,粒度为文件元数据,每次open时检查缓存的有效性(强一致性),缓存在release的时候同步到元数据服务器,当cache容量达到阈值时,采用LRU算法进行替换。
Clone this wiki locally