中科大分布式课件
文件操作举例
11
文件操作举例
12
文件服务接口
文件服务:文件系统为客户提供的功能,如读、
写 文件服务器:实现文件服务的进程 文件的保护:
– –
权能:用户对文件的访问权限
存取控制表:每个文件上可访问它的用户列表
如:UNIX的mode, Windows的属性
13
远程文件服务
上载/下载模式
–
子目录,目录树
16
分层文件系统
计算指向这 个目录的目 录数量
A
A
0
机器2
B
C
B
2
C
1
D
E
D
1
E
1
机器2
(a)
(b)
(a) 包含在一台机器中的目录树
(b) 在两台机器中的目录图
17
目录图
目录的维护:
•
引用计数:指向该目 录的连接数 仅当目录为空时或引 用计数>1时,才能删 除指向该目录的连接。
•
目录服务
–
4
5.1 文件模型
文件:信息在磁盘或其它持久介质上的存储单位
文件名:文件的标识,由字串组成(8-255) 文件属性:描述信息,如大小、创建时间、授权 目录:保存文件系统的结构 路径:目录树上的一段路经
5
文件结构
1、二进制序列;2、记录序列;3、树
6
文件类型举例
1、可执行文件 2、归档文件
– –
客户协议处理安装(mounting) 关于目录和文件访问
NFS 实现
40
分布式文件系统设计原则
尽可能利用工作站处理能力 使用缓存技术 利用文件使用特性 减少全局知识和变化 ,使用分层控制 信任最少的实体,提高安全性 尽可能运用批处理方式
41
主要内容
5.1分布式文件设计 5.2分布式文件系统的实现
用户空间 内核
cache命中
cache命中
用户 进程
cache管理 进程 cache命中
内核 内核中的 cache cache未命中 cache未命中
cache未命中
服务器
服务器
服务器
服务器
(a)
(b)
(c)
(d)
33
缓存的一致性
• • •
直接写(write_through) 延迟写 关闭时写(write_on_close)
不可变的 (immutable)
7
典型的文件扩展名
8
文件的属性
9
文件基本操作
1. Create 2. Delete 3. Open 4. Close 5. Read 6. Write
10
7. Append 8. Seek 9. Get attributes 10.Set Attributes 11.Rename
方
法
描
述
直接写 延迟写 关闭时写 集中控制
有效,但不影响写流量 效率较高,但可能语义 与会话语义相配 UNIX语义,但不健壮,不能规模化
34
文件复制管理
复制透明性
1 C 3 2 S1 S2 (b) 服务器 文件 1.14 2.16 3.19 prog.c 1.21 2.43 3.41 符号名 S1,S2,S3地址 (a) C (c) S1 S2 S3 客户 现在 S1 以后 S2 以后 S3 组
有状态服务器
– –
29
无状态服务器与有状态服务器
无状态服务器优点 有状态服务器优点
容错
短小的请求消息
无需open/close调用
不浪费服务器空间 无打开文件个数限制 客户崩溃不会导致问题
好的性能
可以预读 容易有等幂性 可对文件加锁
30
高速缓存(caching )
存储文件的四个位置
客户内存 3 4 客户磁盘(可选)
规模 广域网 移动用户 容错 多媒体
44
第5章 分布式文件管理
中国科技大学软件学院
丁箐
主要内容
5.1分布式文件设计 5.2分布式文件系统的实现
5.3分布式文件系统的趋势
2
主要内容
5.1分布式文件设计 5.2分布式文件系统的实现
5.3分布式文件系统的趋势
3
分布式文件系统设计
文件服务
–
单个文件上的操作,例如读,写和追加 创建和管理目录,在目录中增加和删除文件等
18
文件服务器方式
相同系统 不同系统
文件服务器1
客户1 Root
客户1 Root
A A B C B
D
A
D
(a)两文件服务器。方
框是目录,圆圈是 文件; 文件服务器2 (b)一个所有用户有同 D 样文件系统图的系 E F 统; (c) 一个不同的客户有 不同的文件系统的 (a) 系统
C
E
F
B
C
共享文件的处理方式
方法
UNIX语义
说明
文件上的每个操作对所有进程来 说,立即可见
会话语义
不可更改文件
在文件关闭之前,对文件的修改 对其它进程是不可见的
不能修改。简化了共享和复制控 制
事务
所有的更改要么都完成,要么都 不能完成
23
主要内容
5.1分布式文件设计 5.2分布式文件系统的实现
5.3分布式文件系统的趋势
读锁一个,写锁全体
38
SUN NFS系统
虚拟文件系统(VFS)
– –
V-节点(虚拟i节点) 远程安装程序
客户 系统调用层 虚拟文件系统层
服务器
虚拟文件系统层
本地操 作系统
NFS客户
NFS服务 器
本地操 作系统
本地磁 盘
发往服务 器的消息
客户端发 来的消息
本地磁 盘
网络
39
SUN NFS系统
NFS 协议
UNIX文件系统结构举例
27
查找
a/b/c迭代查找 自动查找
a 查找 a/b/c 服务器1上的 目录
客户
查找b/c b
查找c 带着c 响应 c
查找 a/b/服务器3上的 目录 查找c 带着c 响应
b
c
(a)
文件
(b)
文件
28
是否应该保留客户的状态信息?
复制方式
1. 2. 3.
C
显性复制 惰性复制 组复制
S3
35
文件更新协议
主拷贝复制法:
– – – –
主服务器:指定的一个服务器 从服务器:除主服务器之外的其它服务器 所有更新操作首先在主服务器上进行 主服务器更新后,再更新各从服务器
36
文件更新协议
版本号:记录文件更新的版本 表决法(voting) :读/写一个复制文件时需一定数量服务器的 同意
5.3分布式文件系统的趋势
42
分布式文件系统的趋势
新的硬件
光纤环 网络接口中 的硬件位 图,每一位 对应一个被 缓冲的文件
这个文 件现在 被加锁 10000010
10000010
文件cache
文件cache
表给出了被缓冲文 件的位置
更新共享文件的硬件方案
43
分布式文件系统的趋势
服务器内存 2 1
服务器磁盘 网络
31
Cache位置 – Disk vs. Main Memory
磁盘缓存的优点
– –
更可靠 恢复时不需要再取
主内存缓存的优点
– –
可以采用无盘工作站 数据存取更快
32
在客户存储器中进行超高速高速缓存的不同方法
(a) (b)
(c)
(d)
没有超高速缓存 每个进程都有超 高速缓存 进程本身的内 内核中有速高速 部cache 缓存 超高速缓存管理 作为一个用户进 cache未命中 程
无状态服务器
–
– –
当客户发送一个请求给服务器,服务器完成请求,发送一个 应答,然后从内部表中移出关于该请求的所有信息。在请求 之间,服务器不保存具体客户的信息。 请求必须是独立的,为了使服务器能够工作,它必须包含全 文件名和文件中的偏移量。 不需要OPEN和CLOSE调用。 服务器保存两个请求之间的客户的状态信息。 可以预读。
分布式系统中文件和目录的命名方法:
– – –
20
两级命名法
符号名字:外部名字,供用户使用 二进制名字:内部名字,供系统使用 名字映射:由目录完成 符号链接:一个路径名,映射到(服务器,文件名) 字串上的目录项
21
文件共享的语义
UNIX语义 会话语义
单处理器 2.写 “c” 1.写“c” 初始文件
客户1
A
a b
1.读“ab”
22
(a) 在单处理机 中,当 READ操作 紧跟 WRITE操 作执行时, READ操作 返回刚刚写 入的值; (b) 在分布式 系统中,可 能返回已过 时的值
a b c
文件服务器
A
a b a b c B a b
2.读出“abc” (a)
客户2
3.读出“ab”
B
a b
(b)
1.文件移动 到客户端
服务器
客户机
老文件
c
2.在客户端 进行访问
3.当客户端工作完毕 后,文件又移回服务器
新文件
14
远程文件服务
远程访问模式
客户机 服务器
客户请求访问远程 服务器上的文件