分布式网络文件系统(分布式网络文件系统)是一个Linux集群的可扩展的分布式文件系统。
资 源 简 介
DNFS是“Distributed Network File System”的简称。它是一种运行于Linux集群之上的可扩展分布式文件系统。
系统架构
DNFS是一个3方架构,包括了元数据服务器(MDS)、对象存储设备(OSD)和客户端(CLIENT)。其中元数据服务器负责系统中文件的元数据管理及对客户端请求的调度;对象存储设备负责文件数据的保存;客户端是用户访问DNFS的入口,在这里,用户看到的DNFS就是一个文件系统。
MDS是系统的核心。所有来自CLIENT的请求都要通过MDS,MDS把CLIENT端写入的文件的元数据写入本地(同名的)元数据文件中,并且把该文件分条,并根据调度算法让CLIENT把分条分布上传到指定的OSD上,分条信息也保存在元数据文件中。MDS本地采用Reiserfs文件系统来保存元数据文件,这主要是考虑到元数据文件都是小文件(一般小于1KB),而Reiserfs处理小文件的性能比较强的。
OSD上存储CLIENT上传的文件的数据分条。CLIENT的所有文件数据读写都是与OSD进行的。OSD上采用了Ext3文件系统。
CLIENT是所有I/O请求的发起者。由于CLIENT上通过FUSE提供了一个VFS接口,所以CLIENT上的本地文件系统是不受限制的。
目前,DNFS只具备基本的文件分条功能,还在不断地完善中。
PS:本文件系统代码是作者研究生阶段在华中科技大学信息存储教育部重点实验室编写。
文 件 列 表
dnfs
dnfs-client.conf
dnfs_svc.c
dnfs.h
server_func.c
server.c
.svn
dnfs_clnt.c
server_svc.c
common.h
client.c
node.c
dnfs-node.conf
dnfs-server.conf
dnfs_xdr.c
nodeip
node_svc.c
makefile
dnfs.x