1、第5章 分布式文件管理,中国科技大学软件学院丁箐,2,主要内容,5.1分布式文件设计5.2分布式文件系统的实现5.3分布式文件系统的趋势,3,主要内容,5.1分布式文件设计5.2分布式文件系统的实现5.3分布式文件系统的趋势,4,分布式文件系统设计,文件服务单个文件上的操作,例如读,写和追加 目录服务 创建和管理目录,在目录中增加和删除文件等,5,5.1 文件模型,文件:信息在磁盘或其它持久介质上的存储单位文件名:文件的标识,由字串组成(8-255)文件属性:描述信息,如大小、创建时间、授权目录:保存文件系统的结构路径:目录树上的一段路经,6,文件结构,1、二进制序列;2、记录序列;3、树,7
2、,文件类型举例,1、可执行文件2、归档文件不可变的(immutable),8,典型的文件扩展名,9,文件的属性,10,文件基本操作,CreateDeleteOpenCloseReadWrite,AppendSeekGet attributesSet AttributesRename,11,文件操作举例,12,文件操作举例,13,文件服务接口,文件服务:文件系统为客户提供的功能,如读、写文件服务器:实现文件服务的进程文件的保护:权能:用户对文件的访问权限存取控制表:每个文件上可访问它的用户列表 如:UNIX的mode, Windows的属性,14,远程文件服务,上载/下载模式,c,2.在客户端,
3、进行访问,客户机,服务器,老文件,新文件,1.文件移动,到客户端,3.当客户端工作完毕,后,文件又移回服务器,15,远程文件服务,远程访问模式,服务器,客户机,客户请求访问远程服务器上的文件,文件保存在,服务器上,16,目录服务器接口,目录服务创建、删除命名,重命名文件移动文件分层文件系统子目录,目录树,17,分层文件系统,(a) 包含在一台机器中的目录树 (b) 在两台机器中的目录图,18,目录图,目录的维护:引用计数:指向该目录的连接数仅当目录为空时或引用计数1时,才能删除指向该目录的连接。,19,文件服务器方式,相同系统不同系统(a)两文件服务器。方框是目录,圆圈是文件;(b)一个所有用
4、户有同样文件系统图的系统;(c) 一个不同的客户有不同的文件系统的系统,20,命名透明性,位置透明性:文件路径名与存储位置无关例:/server/dir1/dir2/x位置独立性:文件可移动到其它场地,而无需改变名字/server1/dir1/dir2/x变为/server2/dir1/dir2/x 分布式系统中文件和目录的命名方法:机器名+路径名,如/machine/path将远地文件安装到本地目录中全局统一的命名空间,21,两级命名法,符号名字:外部名字,供用户使用二进制名字:内部名字,供系统使用名字映射:由目录完成符号链接:一个路径名,映射到(服务器,文件名)字串上的目录项,22,文件共
5、享的语义,UNIX语义会话语义,在单处理机中,当READ操作紧跟WRITE操作执行时,READ操作返回刚刚写入的值; 在分布式系统中,可能返回已过时的值,23,共享文件的处理方式,24,主要内容,5.1分布式文件设计5.2分布式文件系统的实现5.3分布式文件系统的趋势,25,文件的使用,26,系统结构,客户和服务器不同吗? 文件和目录服务怎样构造?两者合并 保持独立,27,UNIX文件系统结构举例,28,查找,a/b/c迭代查找自动查找,29,是否应该保留客户的状态信息?,无状态服务器当客户发送一个请求给服务器,服务器完成请求,发送一个应答,然后从内部表中移出关于该请求的所有信息。在请求之间,
6、服务器不保存具体客户的信息。请求必须是独立的,为了使服务器能够工作,它必须包含全文件名和文件中的偏移量。不需要OPEN和CLOSE调用。 有状态服务器服务器保存两个请求之间的客户的状态信息。可以预读。,30,无状态服务器与有状态服务器,31,高速缓存(caching ),存储文件的四个位置,3,2,4,1,网络,客户内存,客户磁盘(可选),服务器内存,服务器磁盘,32,Cache位置 Disk vs. Main Memory,磁盘缓存的优点更可靠恢复时不需要再取主内存缓存的优点可以采用无盘工作站数据存取更快,33,在客户存储器中进行超高速高速缓存的不同方法,没有超高速缓存每个进程都有超高速缓存
7、内核中有速高速缓存超高速缓存管理作为一个用户进程,34,缓存的一致性,直接写(write_through)延迟写关闭时写(write_on_close),35,文件复制管理,复制透明性复制方式显性复制惰性复制组复制,36,文件更新协议,主拷贝复制法:主服务器:指定的一个服务器从服务器:除主服务器之外的其它服务器所有更新操作首先在主服务器上进行主服务器更新后,再更新各从服务器,37,文件更新协议,版本号:记录文件更新的版本表决法(voting) :读/写一个复制文件时需一定数量服务器的同意读法定数Nr:读一个已有N个复制存在时,客户需要获得一个读法定数(read quorum),它是任何Nr个或
8、更多服务器的任意集合。写法定数Nw:修改一个文件需要一个至少Nw个服务器的写法定数(write quorum). 满足约束条件:Nr+NwN,38,表决算法举例,读锁半数,写锁半数加1读锁一个,写锁全体,39,SUN NFS系统,虚拟文件系统(VFS)V-节点(虚拟i节点)远程安装程序,40,SUN NFS系统,NFS 协议客户协议处理安装(mounting)关于目录和文件访问 NFS 实现,41,分布式文件系统设计原则,42,主要内容,5.1分布式文件设计5.2分布式文件系统的实现5.3分布式文件系统的趋势,43,分布式文件系统的趋势,新的硬件,更新共享文件的硬件方案,44,分布式文件系统的趋势,规模 广域网 移动用户 容错多媒体,