分布式文件系统设计

关键字

详细说明

分布式文件系统

研究point

1,性能,容量,可用性,安全性,可扩展性,可管理性

2,用户组件与数据管理组件的分离,

3key:服务客户的响应时间

分布式文件系统应该具有的特性

1,网络透明性:客户端使用访问本地资源的方法访问网络资源

2,容错性:网络错误,主机,存储设备故障发生时,系统仍能正常提供服务(可降级,更慢的响应)

3,可扩展性:系统规模扩大时,系统仍能正常工作(避免热点,单服务器瓶颈问题)

文件命名机制

位置透明性: 文件名跟文件所在的位置无关

位置独立性: 文件的迁移不会造成文件名的改变

1,主机名:文件名                 不透明 不独立

2,将远端文件树挂载到本地  透明    不独立(NFS)

3,将所有的文件组织到一个全局的命名空间(DNFS)     透明   独立

查询方式

如查询/a/b/c, am1上,bm2上,cm3

1,递归方式:m1->a->m2->b->m3->m2->m1

2,迭代方式:m1->a->m1, m2->b->m2, m3->c->m3

共享语义

1Immutable semantics:只读共享

2Unix semantics:每次写文件将立即生效,之后的读写操作都会受到本次写的影响

3Session(transaction like) semantics:逻辑语义,通常需要锁机制的配合下完成

远程访问方法

1,  Remote Sevice(RPC, iSCSI)

2,  Caching

实际应用通常是二者的折中方案,根据侧重点确定实际方案

缓存方案设计

需要考虑的四个问题

1,缓存数据的粒度

2,缓存的位置

3,  缓存数据修改方案

4,  缓存有效性检查

5,  缓存替换算法

 

关于缓存数据的粒度:

1,整个文件,部分文件或是一个块

2,缓存大小应根据网络数据包的大小,硬盘数据块的大小确定

3,大粒度缓存减少网络负载:包括启动传输进程的时间, 接收方多次确认时间

 

关于缓存位置:

1,  磁盘:强调可靠性,宕机时缓存数据仍存在

2,  内存:强调性能的提升,减少network access ,可工作在无盘工作站

 

 

关于修改方案:

1 write through:适合于unix semantics 造成写操作周期变长

2delayed-write

        write on close(适合于session semantics

        write on eject 在缓存被换出的时候写回

        折中--定时刷新  

 

关于cache有效性检查:

1 client initiated approach

        每次访问检查

        第一次访问检查

        折中定时检查

2server initiated approach

        server需维护文件读写着的信息

 

关于缓存替换算法

通用:LRU,LFU

       专用:semantics-awarepower-aware

有状态与无状态

 

1,  stateful

服务器维护文件及客户端状态,可方便的使用cache机制

        宕机的时候恢复很难恢复之前状态

        客户端宕机的发现机制难以实现

2stateless:宕机恢复简单

 

文件副本

主要涉及副本一致性的管理(active update lazy update trade-off

可扩展性

1,有限的资源(CPU, DiskMenmory

2,集中的资源易引发热点,瓶颈问题,不利于扩展

3,广播机制(网络延时,拥塞)随着系统规模增加也不利于扩展

4,轻量级进程(线程)的使用

5,动态容量扩展,节点动态加入

 

 

   

posted @ 2013-04-19 14:03  ydzhang  阅读(367)  评论(0编辑  收藏  举报