64
面面 Internet 面面面面面面 面面面面面 面面 面面面面面面面面面面面面 面面面面面面面 面面面 2002-4-25

面向 Internet 的分布式海量 文件存储系统研究

Embed Size (px)

DESCRIPTION

面向 Internet 的分布式海量 文件存储系统研究. 韩 华 北京大学计算机科学技术系 网络与分布式系统实验室 2002-4-25. 提纲. 引言 “ 燕星1.0 ” 系统 Peer to Peer 基本问题 Peer to Peer 路由算法 – Emergint “ 燕星2.0 ” 系统 相关工作 结论. 第一部分 引言. 研究背景. Internet 发展特征 规模(4:10 8 ),带宽(56 k:10G) , 应用( email、telnet: 电子商务、远程教育) 普及计算( Pervasive Computing) 服务,用户 - PowerPoint PPT Presentation

Citation preview

Page 1: 面向 Internet 的分布式海量 文件存储系统研究

面向 Internet 的分布式海量文件存储系统研究韩 华

北京大学计算机科学技术系网络与分布式系统实验室

2002-4-25

Page 2: 面向 Internet 的分布式海量 文件存储系统研究

提纲 引言 “ 燕星 1.0” 系统 Peer to Peer 基本问题 Peer to Peer 路由算法 – Emergint “燕星 2.0” 系统 相关工作 结论

Page 3: 面向 Internet 的分布式海量 文件存储系统研究

第一部分 引言

Page 4: 面向 Internet 的分布式海量 文件存储系统研究

研究背景 Internet 发展特征

规模(4:108) 56,带宽( k:10G),应用( email、 telnet: 电子商务、远程教育)

普及计算( Pervasive Computing) 服务,用户

网络存储 vs 本地存储 容量大、安全、可靠、方便

网络海量文件存储系统

Page 5: 面向 Internet 的分布式海量 文件存储系统研究

Internet 规模与带宽

接入 Internet 的节点数(来源于 Internet Software Consortium)

10,000

100,000

1,000,000

10,000,000

100,000,000

1,000,000,000

Jan-89

Jan-90

Jan-91

Jan-92

Jan-93

Jan-94

Jan-95

Jan-96

Jan-97

Jan-98

Jan-99

Jan-00

Jan-01

Jan-02

Jan-03

Jan-04

Jan-05

Jan-06

Jan-07

末端用户可用 Internet 带宽(Neilson 定律)

Page 6: 面向 Internet 的分布式海量 文件存储系统研究

典型应用 手机 网络家电 个人网上文件夹 远程教育平台 SSP

Page 7: 面向 Internet 的分布式海量 文件存储系统研究

技术现状 FTP

单服务器 -> 存储容量有限 集中式 -> 性能低

xDrive Cluster -> 容量大 集中式 -> 性能低

Page 8: 面向 Internet 的分布式海量 文件存储系统研究

基本问题 高性能

设计和软件手段 vs 动态性和不可预知性 高可扩展性

Giga -> Peta (1,000,000G)-> Exa 吞吐率、访问性能

安全、可靠 易用

Page 9: 面向 Internet 的分布式海量 文件存储系统研究

基本思路 广域分布文件存储系统 Cache 和以“网络距离”为依据的服务策略 合理资源权限管理 冗余 化整为零 -> 多名字空间

Page 10: 面向 Internet 的分布式海量 文件存储系统研究

本文贡献 “ 星”型结构 - 中小范围网络文件存储系统 多名字空间和权限管理机制 Peer to Peer 路由问题形式化描述 Peer to Peer 路由算法 – Emergint Peer to Peer 海量文件系统设计方案 用户可控文件 Cache 机制

“ 燕星”系统:“燕星 1.0” 和“燕星2.0”

Page 11: 面向 Internet 的分布式海量 文件存储系统研究

第二部分 “燕星 1.0” 系统采用一种“星”型体系结构,将 Internet上大量分散的、独立的、异构的文件服务器组织成一个逻辑整体,使其共同对外提供服务。

Page 12: 面向 Internet 的分布式海量 文件存储系统研究

“ 星”型体系结构 名字服务器,文件服务器 逻辑文件名,物理文件名 特性

文件名位置无关 支持移动计算 良好的可扩展性

存储容量 网络服务 1:100

root

doc misc

Name server

b

/doc/b fileserver1:/share/00211 fileserver2:/share/00032

f2 f3

fileserver1:/share/10321 /doc/a

f1

fileserver1 fileserver2

C1

C2

acreate(a)

open(b)

/share/00211

fileservern

……

Page 13: 面向 Internet 的分布式海量 文件存储系统研究

多名字空间

单名字空间 NTFS, UFS, NFS, AFS, xFS ;面向少量用户、文件共享

多名字空间 文件相关性 [Sollis 85][Neuman 92]

基于用户的多名字空间 方便文件管理 “联接”实现文件共享

root

binmaterial

java

privateshare

Namespace1

root

material misc

share account

Namespace2

root

pubdocument

item

C++java

Namespace3

Page 14: 面向 Internet 的分布式海量 文件存储系统研究

资源权限管理机制 适合多名字空间、扩展 UFS 模型 (U,G,P,A,L)

U: 系统管理员、高级用户和二级用户 G: 用户组 P: 权限集合 , P=R*O

O = {create, delete, modify, read, write, own}

A: 授权操作 a(ui , uj , p), a(u ,g , p) 满足 L

L: 授权规则 , L={l1, l2, … , l9}

)(1

n

iiDGUR

Page 15: 面向 Internet 的分布式海量 文件存储系统研究

su1 su2 su3 sun

sa

ju11 ju12 ju13 ju21 ju22 ju31 ju32 jun1

jun2

用户文件授权关系sa 向所有的 su 授权; su 只能向属于本名字空间的 ju、 ju 组、其他 su和 su 组授权; ju 只能向同在一个名字空间的 ju和 ju 组授权

授权规则

l1: a(ui , uj , p), a(u , g , p), p p (ui) …… l9: a(sui , suj , p), a(sui , sgj , p), p i

dp

Page 16: 面向 Internet 的分布式海量 文件存储系统研究

文件服务器选择策略 负载平衡

轮换、随机和空间最大优先 网络距离

三角原理 估测方法 [Hotz94]

( b1, b2, …, bm) -> ni: ( , , …, )

1il

2il

mil

|)||,...,||,max(|),( 2211 mj

mijijiji llllllnnMIN

))(),...,(),min((),( 2211 mj

mijijiji llllllnnMAX

2),(),(

),( jijiji

nnMINnnMAXnnl

b

n1 n2

网络距离三角原理|l(n1,b)-l(n2,b)|<=l(n1,n2)<=l(n1,b)+l(n2,b)

Page 17: 面向 Internet 的分布式海量 文件存储系统研究

系统实现

JDK1.3+XML 文件 Cache 目录 Cache

Client software

File ManagerApp

RMI

Local Interface

RMI

Name server

File server

File server …

TCP/IP

User host

App

“ 燕星 1.0” 系统软件体系结构public class Rfile { public RFile(String nameServerIP, String userName, String logicPath); public void openInputStream(); public void openOutputStream(); public bytebuf readbuf(int wantlen); public void writebuf(byte[] buf, int reallen); public void writeClose(); public boolean createNewFile(String ownerName) public boolean delete(); public boolean mkDir(String ownerName); public boolean isExist(); public long lastModified(); public long getLength(); public RFile[] list(); …}

Page 18: 面向 Internet 的分布式海量 文件存储系统研究

性能测试(一) “ 燕星 1.0” vs NFS GAB

GFS Andrew Benchmark GAB 结果

差将近一个数量级 原因:网络通讯、 Java 、应用层与核心层、优化 支持存储:实用

GAB+ 结果 读、写性能相当

1

10

100

1000

10000

100000

mkdir copy scandir read delete

时间

(ms)

NFS 1. 0燕星

NFS 与“燕星 1.0” 性能比较( GAB+)

110

1001000

10000100000

1000000

makedir copy scandir read delete

时间

(ms)

NFS 1. 0燕星

NFS 与“燕星 1.0” 性能比较( GAB)

Page 19: 面向 Internet 的分布式海量 文件存储系统研究

性能测试(二)

FTP 和“燕星 1.0” 上传文件性能

110

1001000

10000100000

1000000

1k 2k 5k

10k

20k

50k

100k

200k

500k 1M 2M 5M

10M

20M

50M

100M

ms

f tp 1. 0燕星

FTP 和“燕星 1.0” 下载文件性能

1

10

100

1000

10000

100000

1k 2k 5k

10k

20k

50k

100k

200k

500k 1M 2M 5M

10M

20M

50M

100M

ms

f tp 1. 0燕星

“ 燕星 1.0” vs FTP “ 燕星 1.0” 与FTP 文件上传、下载性能相当

Page 20: 面向 Internet 的分布式海量 文件存储系统研究

性能测试(三)

“ 燕星 1.0” 性能随文件服务器数变化规律 结果:性能几乎保持不变

名字服务器的文件服务器管理负载较小

“ 燕星 1.0” 性能随文件服务器数量变化的规律( GAB)

0

50000

100000

150000

200000

250000

300000

3 6 9 12 15 18文件服务器数

(ms)

时间

mkdi rwri tescandi rreaddel ete

Page 21: 面向 Internet 的分布式海量 文件存储系统研究

性能测试(四)

“ 燕星 1.0” 性能随同时上线用户数变化规律 结果:支持同时上线最大用户数 >450 (FTP60)

mkdir, write, delete :线性增加 scandir, read :下降、保持不变( Cache)

“ 燕星 1.0” 性能随上线用户数量变化的规律( GAB)

0

1000000

2000000

3000000

4000000

5000000

6000000

7000000

8000000

9000000

50 100 150 200 250 300 350 400 450用户数

时间

(ms)

: writ

e 和de

lete

0

100000

200000

时间(

ms)

: mkd

ir 、sc

andi

r 和re

ad

wri tedel etemkdi rscandi rread

Page 22: 面向 Internet 的分布式海量 文件存储系统研究

“ 燕星 1.0”总结 “ 燕星 1.0” 系统对于中小范围网络用户具有良好的实用性 名字服务器是潜在的瓶颈,限制了系统规模 需要新的具有高可扩展性的体系结构

Page 23: 面向 Internet 的分布式海量 文件存储系统研究

第三部分Peer to Peer 基本问题Peer to Peer 网络是一种具有高可扩展性的分布式系统体系结构, Peer to Peer 网络的基本问题是 Peer to Peer 路由问题。

Page 24: 面向 Internet 的分布式海量 文件存储系统研究

分布对象定位机制 分布式系统重要组成部分

决定系统体系结构 发展过程

集中式 层次式 Peer to Peer 网络

Page 25: 面向 Internet 的分布式海量 文件存储系统研究

集中式对象定位机制N1

名字服务器

P1

N2 P2

Nn Pn

Server

对象 1

Client

客户程序

1: bind2: resolve

……

分布对象名字列表

对象名 远程指针

3: access

定位 : <OID, P> 实例

名字服务: CORBA, DCOM, RMI

目录服务: X.500, LDAP, NIS, CORBA Trading Service

应用系统: Napster, “ 燕星 1.0”

缺点: 规模、性能

Page 26: 面向 Internet 的分布式海量 文件存储系统研究

层次式对象定位机制

NS NS

NS

NS

NSNS

NSNS

NSNS

NS

NSNS

NS

NS NS

root

com edu org

IBM sun MIT edu

cn

globus

lcs pku tsinghua

cs

层次结构 – 对应于语义层的层次结构 实例

DNS, Globe[Vrije98], Globus[Argonne99],Radar[AT&T99] 《一种基于分布式 LDAP 的分布对象定位机制》 (Dec.00)

缺点: 父节点瓶颈 – 可扩展性、可用性

Page 27: 面向 Internet 的分布式海量 文件存储系统研究

Peer to Peer 对象定位机制

特征 节点与节点是平等关系(相对于层次结构) 负载相同 (性能) 重要性相同(功能) 两两能通讯(通过节点转发)

优势 无瓶颈 – 可扩展性好、可用性高

p2p 的对象定位 将对象的定位信息<oid,p> 分散到各节点上 ,分配方案: nid=hash(oid)

ns

ns ns

ns

ns

ns

ns

ns

ns

ns

ns

ns

nsns

Page 28: 面向 Internet 的分布式海量 文件存储系统研究

Peer to Peer 网络基本问题 p2p 网络概念

连接 (hop) :两个节点互知对方的 IP 地址 路由表:每个节点上都保存着一个邻居节点 IP列表 通讯:消息通过连接在 p2p 网络中的传递 消息延迟:消息传递经过的连接数

P2P 网络基本问题 Peer to Peer 网络路由(支持任意两个节点之间通讯 )

挑战 高可扩展性 : 每个节点的邻居节点 IP列表要小 高效:消息传递平均延迟要小 高可用性:每两个节点之间的不同通讯路径要多

路由方法 -> 路由表 -> 网络拓扑结构

Page 29: 面向 Internet 的分布式海量 文件存储系统研究

P2P 路由问题形式化描述 路由问题

针对 N 个节点,设计一个包含这 N 个节点的连通图G ,使得节点之间度的最大差值 (b) 尽量小,每个节点的度 (d) 尽量小, G 的直径 (r) 尽量小,使得边连通度 (e) 尽量大。

作用 指导研究新算法 评价现有算法性能

Page 30: 面向 Internet 的分布式海量 文件存储系统研究

现有的 P2P 路由算法 直接手段 1 :完全图

b: 0 --- P2P d: O(N) --- 可扩展性差 r: 1 --- 高效 e: O(N) --- 高可用 实例: Afs, xFS, Farsite,

ethernet 直接手段 2 :环

b: 0 --- P2P d: 2 --- 可扩展性好 r:O(N) --- 效率低 e: 2 --- 低可用 实例: Token Ring

改进型:树 b: C --- P2P d: O(C) --- 可扩展性好 r: O(logN) --- 高效 e: O(1) --- 低可用 实例: INS(99mit),

Arrow(98brown), Gnutella(98)

经典算法 b: C --- P2P d:O(logN) --- 可扩展性好 m:O(logN) --- 效率高 r: O(logN) --- 高可用 实例: CAN, Pastry, Chord,

Tapstry

Page 31: 面向 Internet 的分布式海量 文件存储系统研究

一个经典 P2P 路由算法 [Plaxton 1997]

nid b进制的 l 位随机生成的整数( b=8, l =

4) l=logbn 路由表

l * b * c 个表项( c=3) 若 fi,j,k(x)= y ,则:

nidy与 nidx具有相同 i 位后缀(左为前) nidy 的倒数第 i+1 位为 j y是满足上述两个条件且与 x节点距离第 k 近的

反向路由表 所有指向该节点的路由表项的源节点

Page 32: 面向 Internet 的分布式海量 文件存储系统研究

[Plaxton 1997] 路由方法

( b = 16,l = 4, n = 65536) x - ***8 - **98 - *598 – 4598 延迟 <= 4

Page 33: 面向 Internet 的分布式海量 文件存储系统研究

[Plaxton 1997] 对象定位 拓扑结构

N 棵树 oid: 随机生成 (6) oid与 nid

end(oid,4)与nid 一一对应

根节点 性质

定位最近的对象

4598

0598

1598

F598

*098

*F98

**08

**F8

***0

***F ……

c1 c2 c3c1 c1 c3 c3

p1 p2

p1

p1

p1p3

p3

p3

p3

p3

p1 p2

Page 34: 面向 Internet 的分布式海量 文件存储系统研究

[Plaxton 1997] 特性小结 路由表大小 O(log n) 通讯延迟 O(log n) 任意两个节点之间不同路径数 O(log n) 对象复制,最近定位 “燕星 2.0” 的文件定位基础

研究场景与“燕星”系统的应用需求吻合

Page 35: 面向 Internet 的分布式海量 文件存储系统研究

第四部分 Peer to Peer 路由算法 -

Emergint

[Plaxton 1997]还存在问题,不适于实用。 Emergint 的目标就是解决它存在的问题。

Page 36: 面向 Internet 的分布式海量 文件存储系统研究

[Plaxton 1997] 的两个问题 非饱和状态下的路由与对象定位

并非每个对象都能有根节点 Peer to Peer 网络的动态构建

无法掌握全局状态

Page 37: 面向 Internet 的分布式海量 文件存储系统研究

路由表构造方法 nid

b进制的 l 位随机生成的整数( b=8, l = 6) l=logbn 路由表

l * b * c 个表项( c=3) 若 fi,j,k(x)= y ,则:

nidy与 nidx具有相同 i 位前缀(左为前) nidy 的第 i+1 位为 j y是满足上述两个条件且与 x节点距离第 k 近的

反向路由表 所有指向该节点的路由表项的源节点

Page 38: 面向 Internet 的分布式海量 文件存储系统研究

非饱和状态路由与对象定位Routing(m){Case m 为 1 型:if (路由表项不为空) { 按 [Plaxton 1997] 路由 }else{寻找路由表本行中距离最近的路由表项 (大:m为 2 型;小:m为 3型),向其转发 m}Case m 为 2 型:寻找路由表相应行中纵坐标最小的路由表项,向其转发 m;Case m 为 3型:寻找路由表相应行中纵坐标最大的路由表项,向其转发 m;}

nid0 nid1 nid4 nid5nid2 nid30000 FFFF

0000 FFFFnid

begin(oid,4)

Page 39: 面向 Internet 的分布式海量 文件存储系统研究

各节点上 oid 分布情况allocateOID(nid x, nid y){

if (nid x< 0) {p x= NULL, p y= [0, nid y],返回 }

if(nid y >= N ){p x= [nid x, N-1], p y= NULL,返回 }

if (nid y -nid x等于 1) {p x=nid x; p y= nid y; 返回 }

从左往右寻找 nid x 和 nid y 的第一个不同位 (i) ,值分别为 b和 e;

if(e-b>1) {

px=[nidx, (begin(nidy,i)*B+(b+e)/2)* ], py=[(begin(nidy,I)*B+(b+e)/2)* , nidx]

}else{

从第 i 位开始,寻找 nid x, 的第一个不为 B-1 的位( j),寻找 nid y 的第一个不为 0 的位( k) ;

if(j<=k){ , }else{ , }

}}

)*),(,[ iLyxx

nBinidbeginnidp ],*),([ yiL

yy nidBinidbeginp n )*)1),((,[ iL

xxxnBinidbeginnidp ],*)1),([( y

iLxy nidBinidbeginp n

1 iLnB 1 iLnB

已知 nidx和 nidy ,求得 px和 py 每个节点掌握邻居节点 oid 分布情况

nidx nidy

px py

Page 40: 面向 Internet 的分布式海量 文件存储系统研究

Peer to Peer 网络的动态构建 第一阶段:保证路由正确

定理 1 (空表项定理): 如果系统一个节点的路由表项 it i,j,0 为空,则系统中所有 nid 与该节点 nid具有相同

i 位前缀的节点的路由表项 it i,j,0也为空 定理 2 (最大相同前缀定理):

在针对对象 oid 的路由过程中,设在所有的路由路径上,从第一次碰到空表项到根所经过的节点集合为 S ,则 S 中所有节点的 nid都与 niddst(oid)具有最大长度的相同前缀。 定理 3 (路由表项复用定理):

对一个节点 n而言,设系统其他节点中与其 nid有 l 位相同前缀的节点集合为S( 0<=l<L n)。如果 n x∈S, 则将节点 n x 的路由表项 it i,j,k( 0<=i<=l, 0<=j<B且 j <> at(nid, i), 0<=k<C )作为节点 n 的路由表项 it i,j,k ,也同样是正确的。

第二阶段:提高路由效率

Page 41: 面向 Internet 的分布式海量 文件存储系统研究

节点加入算法 随机生成节点 nnew的 nid: nidnew

nnew向 nclosest 发送增加节点请求,目标为 nidnew 路由过程中,所有处理非空表项节点将 0-i行路由表项拷贝到

nnew处 ( nnew 路由表生成完成) root(nidnew) 根据 allocate(nidnew, nidroot) 算法将一部分对象指针转移到 nnew 上;然后, root(nidnew) 通知邻居节点 nleft (或 nright )计算 allocate(nidleft, nidnew) (或 allocate(nidroot, nidnew) ) 将其上属于 nnew 的一部分对象指针转移到 nnew (对象指针重新分配完成)

root(nidnew)根据反向路由表扩散 nnew加入消息 depth步 (系统路由表更改完成)

nidleftrootoldnidnew

Page 42: 面向 Internet 的分布式海量 文件存储系统研究

节点退出算法

ndelete 将对象转移到较近的若干目标节点上 ndelete 负责根据 allocateOID(nleft , nright) 将对象指针转移到 nleft 和右邻居节点 nright 上 ndelete根据反向路由表通知所有的相关节点将 niddelete删除;然后, ndelete再根据路由表通知所有的相关节点,将 niddelete从各自的反向路由表中删除。

nidleftnidrightniddelete

Page 43: 面向 Internet 的分布式海量 文件存储系统研究

节点加入与退出过程分析 定理 4 :

设 nx和 ny是系统现有节点中两个具有相邻 nid 的节点,且 nidx<nidy ;新加入节点nnew的 nid为 nidnew ,且 nidnew (nidx, nidy)。 nnew 的加入过程只会对 niddst (oid) (nidx, nidy) 的对象的路由过程有影响,对 niddst (oid) (nidx, nidy) 的对象的路由过程不会产生任何影响。

定理 5 : 设退出节点 ndelete 的左、右邻居节点分别为 nx和 ny ,且 nidx<nidy。 ndelete 的退出过程只会对 niddst (oid) (nidx, nidy) 的对象的路由过程有影响,对 niddst (oid) (nidx,

nidy) 的对象的路由过程不会产生任何影响。 路由算法 补充

保存 nleft 和 nright 的 nid和 IP ,当接收到不属于自己的定位请求时,根据allocateOID 将其发送到 nleft 或 nright 的上。

nidi nidi+1nidnewnidi-1 nidi+2… …

Page 44: 面向 Internet 的分布式海量 文件存储系统研究

节点并发加入与退出分析

推论: nid处于不同区间的多个节点同时加入和退出系统时,加入和退出过程不会影响路由的正确性。 节点加入与退出算法 补充

出局

正常

加入

退出 邻居加入

邻居退出

加入系统

加入完成退出系统

退出完成 邻居节点加入系统

邻居节点加入完成邻居节点退出系统邻居节点退出完成

nidi nidi+1

nidnew1

niddelete nidi+2

nidnew2

Page 45: 面向 Internet 的分布式海量 文件存储系统研究

Emergint 性能测试(一)

B = 16, L = 4, N = 4096 oid 在各节点分布情况 – 满足 P2P 原则

图 4.5 :节点 oid 数量分布

1

10

100

1000

10000

1 2 5

10 20 50

100

200

500

1000

2000

4000

4096

节点数

oid数量

最大值 平均值 最小值

图 4.6 :节点 oid 数量分布方差

0%20%40%60%80%

100%

1 2 5 10 20 50 100

200

500

1000

2000

4000

4096

节点数

平均值 方差

Page 46: 面向 Internet 的分布式海量 文件存储系统研究

网络测试环境

GT-ITM 生成的 Transit Stub 拓扑结构

Emergint 测试用 Internet 拓扑结构( 6054 个节点)

Page 47: 面向 Internet 的分布式海量 文件存储系统研究

Emergint 性能(二)

RDP = hopp2p/hopdirect ;平均 RDP (1,2)

图 4.9: Emergint的 RDP

0

1

2

3

4

5

2 5 10 20 50 100 200 500 1000 2000 4096

节点数

RD

P

RDP最小 RDP平均 RDP最大

图 4.10: 消息转发 hop 数

00.5

11.5

22.5

33.5

2 5 10 20 50 100 200 500 1000 2000 4096

节点数

Hop数

hop平均 数

Page 48: 面向 Internet 的分布式海量 文件存储系统研究

Emergint 性能测试(三)

增加一个节点的代价: O(logN) 常量图 4.11 :增加一个节点所需要通知的节点数

1

10

100

2 5 10 20 50 100 200 500 1000 2000 4096

节点数

通知节点数

通知节点数 通知节点数趋势值

Page 49: 面向 Internet 的分布式海量 文件存储系统研究

Emergint 性能测试(四)

退出一个节点的代价: O(log 2 N) 常量图 4.13 :一个节点退出需要通知的节点数

1

10

100

2 5 10 20 50 100 200 500 1000 2000 4096

系统节点数

通知节点数

通知节点数

Page 50: 面向 Internet 的分布式海量 文件存储系统研究

Emergint 性能测试(五)

节点优化过程 RDP: 2图 4.15: Emergint 优化过程中的 RDP

02468

1012141618

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%优化比例

RDP

RDP最大 RDP平均 RDP最小

Page 51: 面向 Internet 的分布式海量 文件存储系统研究

相关工作 CAN[ucb01]和 Chord[mit01]

Can 平面几何划分; Chord幂相邻关系 缺点: P2P 网络没有考虑物理网络距离 信息共享

Pastry[ms01] 直接定位对象 缺点:研究不彻底

Tapstry[ucb01] Root 冗余(优)、动态构建、对象复制 缺点: softstate ,路由失败,动态构建不彻底

Emergint 路由成功,网络开销小 研究动态构建过程中的路由的唯一算法

Page 52: 面向 Internet 的分布式海量 文件存储系统研究

第五部分 “燕星 2.0” 系统“ 燕星 2.0” 系统基于 Emergint ,将服务器组织成 Peer to Peer 网络。用户只需和其中任何一台服务器相连,就可接受整体服务。目前系统设计支持 16,777,216( 16 6 )个文件服务器和4,294, 967,296( 16 8 )个用户。

Page 53: 面向 Internet 的分布式海量 文件存储系统研究

root

doc

a

系统体系结构 用户的唯一标识

UID ,随机生成 用户文件

任何节点 用户目录信息

根结点 中间节点 Cache

文件定位标识 <UID, 逻辑文件名 >

4598

0598

1598

F598

*098

*F98

**08

**F8

***0

***F ……

f1 f2 f3

root

doc

a b

misc

c

root

misc

c

b

root

doc

a

root

doc

b

f2Open(/doc/b) =

Page 54: 面向 Internet 的分布式海量 文件存储系统研究

节点数据结构

物理文件:f1 f2 f4f3

0***1***2***3***4***5***6***7***

60**61**62**63**64**65**66**67**

640*641*642*643*644*645*646*647*

64506451645264536454645564566457

路由表(节点 6453 ):

第 0 组 第 1 组 第 2 组 第 3 组反向路由表:

横坐标纵坐标

文件目录:<用户 ID, 逻辑文件名 , 物理文件名 >……

<用户 ID, 逻辑文件名 , 物理文件名 ><用户 ID, 逻辑文件名 , 物理文件名 >

文件目录 Cache:< 用户 ID, 逻辑文件名 , 物理文件名 >

……< 用户 ID, 逻辑文件名 , 物理文件名 >

< 用户 ID, 逻辑文件名 , 物理文件名 >

左邻居 nid、 IP 右邻居 nid、 IP邻居信息表:物理文件 Cache:

f5 f6 f8f7

Page 55: 面向 Internet 的分布式海量 文件存储系统研究

用户可控文件 Cache 数据一致性

Pcons[0,1], T = - ln(Pcons) [0, ] T = 0 :一致性高; T = :只读; Tdefault = 10% :类似

Jade 访问性能

Pperf [0,1], S = - ln(Pperf)[0, ] S = 0: Cache; S = :无 Cache; Sdefault = 1

访问性能和数据一致性的折衷 Cdefault = f(Tdefault , Sdefault) Pcons= f’(Cdefault , Pperf)或 Pperf = f’’(Cdefault , Pcons)

Page 56: 面向 Internet 的分布式海量 文件存储系统研究

第六部分 相关的工作现有的系统和技术中,还没有一项能够安全满足海量文件存储服务的需要。目前国际上还有几个与“燕星 2.0”类似的、正在研制的分布式海量文件存储系统,它们是: Ocean

Store[UCB2002]、 Past [MS2001]和CFS[MIT2002]

Page 57: 面向 Internet 的分布式海量 文件存储系统研究

分布式文件系统 传统分布式文件系统

NFS, Sprite, Amoeba, Deceit 透明访问、数据一致性好;可扩展性差

Cluster 文件系统 xFS, frangipani, FarSite, Zebra, IFS 可靠、服务器协作;可扩展性较好

Global 文件系统 AFS, Coda, Prospero, Ficus 以文件共享为主;性能、易用性较差

Internet 文件系统 UFO, Jade, Alex, WebFS Internet透明访问;非海量系统

Page 58: 面向 Internet 的分布式海量 文件存储系统研究

Grid 和广域网应用 Grid

SRB, DataGrid, GASS 透明访问广域、异构海量数据;性能不足、技术缺乏创新

广域网应用 Akamai, Radar, ActiveName, Bayou 侧重单方面;缺乏整体解决方案

Page 59: 面向 Internet 的分布式海量 文件存储系统研究

Peer to Peer 网络 Overlay 网络

Narada[ucb01], RON[mit01], SRON[uw01] Peer to Peer 实用系统

Napster, Gnutella, FreeNet, Ohaha, KaZaA, JXTA 信息共享为主,实证;简单、效率和可靠性较低

Peer to Peer 海量文件系统 OceanStore[ucb02]

优:归档、复制、流动;劣: Emergint 、文件查找 Past[ms01]

“ 最近”的意义不同、操作不便(无 delete) CFS[mit02]

基于 Chord ,没有考虑物理网络,适于共享

Page 60: 面向 Internet 的分布式海量 文件存储系统研究

SAN和 NAS NAS

方便、快捷地扩展文件服务器 适用局域网

SAN 专用网络 扩展应用系统与存储系统连接距离 ISCSI (SCSI on TCP/IP) 数据块层;可以溶合

Page 61: 面向 Internet 的分布式海量 文件存储系统研究

第七部分 结论和将来的工作

Page 62: 面向 Internet 的分布式海量 文件存储系统研究

结论 “ 燕星 1.0”

“ 星”型体系结构,适于中小网络范围 多名字空间及其权限管理机制 文件服务器选择策略

Peer to Peer 路由问题形式化描述 Emergint 路由算法

P2P 网络的动态构建 “ 燕星 2.0”

基于 Emergint的 P2P 海量文件系统 用户可控 Cache 机制

Page 63: 面向 Internet 的分布式海量 文件存储系统研究

将来的工作 “ 燕星 1.0”

实用化:高性能 Java 网络服务器 Emergint

节点失效 “ 燕星 2.0”

节点失效 文件查找 协作型文件

Page 64: 面向 Internet 的分布式海量 文件存储系统研究

谢 谢!