面向 Internet 的分布式海量 文件存储系统研究
-
Upload
idona-armstrong -
Category
Documents
-
view
110 -
download
1
description
Transcript of 面向 Internet 的分布式海量 文件存储系统研究
![Page 1: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/1.jpg)
面向 Internet 的分布式海量文件存储系统研究韩 华
北京大学计算机科学技术系网络与分布式系统实验室
2002-4-25
![Page 2: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/2.jpg)
提纲 引言 “ 燕星 1.0” 系统 Peer to Peer 基本问题 Peer to Peer 路由算法 – Emergint “燕星 2.0” 系统 相关工作 结论
![Page 3: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/3.jpg)
第一部分 引言
![Page 4: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/4.jpg)
研究背景 Internet 发展特征
规模(4:108) 56,带宽( k:10G),应用( email、 telnet: 电子商务、远程教育)
普及计算( Pervasive Computing) 服务,用户
网络存储 vs 本地存储 容量大、安全、可靠、方便
网络海量文件存储系统
![Page 5: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/5.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/6.jpg)
典型应用 手机 网络家电 个人网上文件夹 远程教育平台 SSP
![Page 7: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/7.jpg)
技术现状 FTP
单服务器 -> 存储容量有限 集中式 -> 性能低
xDrive Cluster -> 容量大 集中式 -> 性能低
![Page 8: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/8.jpg)
基本问题 高性能
设计和软件手段 vs 动态性和不可预知性 高可扩展性
Giga -> Peta (1,000,000G)-> Exa 吞吐率、访问性能
安全、可靠 易用
![Page 9: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/9.jpg)
基本思路 广域分布文件存储系统 Cache 和以“网络距离”为依据的服务策略 合理资源权限管理 冗余 化整为零 -> 多名字空间
![Page 10: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/10.jpg)
本文贡献 “ 星”型结构 - 中小范围网络文件存储系统 多名字空间和权限管理机制 Peer to Peer 路由问题形式化描述 Peer to Peer 路由算法 – Emergint Peer to Peer 海量文件系统设计方案 用户可控文件 Cache 机制
“ 燕星”系统:“燕星 1.0” 和“燕星2.0”
![Page 11: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/11.jpg)
第二部分 “燕星 1.0” 系统采用一种“星”型体系结构,将 Internet上大量分散的、独立的、异构的文件服务器组织成一个逻辑整体,使其共同对外提供服务。
![Page 12: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/12.jpg)
“ 星”型体系结构 名字服务器,文件服务器 逻辑文件名,物理文件名 特性
文件名位置无关 支持移动计算 良好的可扩展性
存储容量 网络服务 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/13.jpg)
多名字空间
单名字空间 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/14.jpg)
资源权限管理机制 适合多名字空间、扩展 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/15.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/16.jpg)
文件服务器选择策略 负载平衡
轮换、随机和空间最大优先 网络距离
三角原理 估测方法 [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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/17.jpg)
系统实现
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/18.jpg)
性能测试(一) “ 燕星 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/19.jpg)
性能测试(二)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/20.jpg)
性能测试(三)
“ 燕星 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/21.jpg)
性能测试(四)
“ 燕星 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/22.jpg)
“ 燕星 1.0”总结 “ 燕星 1.0” 系统对于中小范围网络用户具有良好的实用性 名字服务器是潜在的瓶颈,限制了系统规模 需要新的具有高可扩展性的体系结构
![Page 23: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/23.jpg)
第三部分Peer to Peer 基本问题Peer to Peer 网络是一种具有高可扩展性的分布式系统体系结构, Peer to Peer 网络的基本问题是 Peer to Peer 路由问题。
![Page 24: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/24.jpg)
分布对象定位机制 分布式系统重要组成部分
决定系统体系结构 发展过程
集中式 层次式 Peer to Peer 网络
![Page 25: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/25.jpg)
集中式对象定位机制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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/26.jpg)
层次式对象定位机制
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/27.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/28.jpg)
Peer to Peer 网络基本问题 p2p 网络概念
连接 (hop) :两个节点互知对方的 IP 地址 路由表:每个节点上都保存着一个邻居节点 IP列表 通讯:消息通过连接在 p2p 网络中的传递 消息延迟:消息传递经过的连接数
P2P 网络基本问题 Peer to Peer 网络路由(支持任意两个节点之间通讯 )
挑战 高可扩展性 : 每个节点的邻居节点 IP列表要小 高效:消息传递平均延迟要小 高可用性:每两个节点之间的不同通讯路径要多
路由方法 -> 路由表 -> 网络拓扑结构
![Page 29: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/29.jpg)
P2P 路由问题形式化描述 路由问题
针对 N 个节点,设计一个包含这 N 个节点的连通图G ,使得节点之间度的最大差值 (b) 尽量小,每个节点的度 (d) 尽量小, G 的直径 (r) 尽量小,使得边连通度 (e) 尽量大。
作用 指导研究新算法 评价现有算法性能
![Page 30: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/30.jpg)
现有的 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/31.jpg)
一个经典 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/32.jpg)
[Plaxton 1997] 路由方法
( b = 16,l = 4, n = 65536) x - ***8 - **98 - *598 – 4598 延迟 <= 4
![Page 33: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/33.jpg)
[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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/34.jpg)
[Plaxton 1997] 特性小结 路由表大小 O(log n) 通讯延迟 O(log n) 任意两个节点之间不同路径数 O(log n) 对象复制,最近定位 “燕星 2.0” 的文件定位基础
研究场景与“燕星”系统的应用需求吻合
![Page 35: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/35.jpg)
第四部分 Peer to Peer 路由算法 -
Emergint
[Plaxton 1997]还存在问题,不适于实用。 Emergint 的目标就是解决它存在的问题。
![Page 36: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/36.jpg)
[Plaxton 1997] 的两个问题 非饱和状态下的路由与对象定位
并非每个对象都能有根节点 Peer to Peer 网络的动态构建
无法掌握全局状态
![Page 37: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/37.jpg)
路由表构造方法 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/38.jpg)
非饱和状态路由与对象定位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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/39.jpg)
各节点上 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/40.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/41.jpg)
节点加入算法 随机生成节点 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/42.jpg)
节点退出算法
ndelete 将对象转移到较近的若干目标节点上 ndelete 负责根据 allocateOID(nleft , nright) 将对象指针转移到 nleft 和右邻居节点 nright 上 ndelete根据反向路由表通知所有的相关节点将 niddelete删除;然后, ndelete再根据路由表通知所有的相关节点,将 niddelete从各自的反向路由表中删除。
nidleftnidrightniddelete
![Page 43: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/43.jpg)
节点加入与退出过程分析 定理 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/44.jpg)
节点并发加入与退出分析
推论: nid处于不同区间的多个节点同时加入和退出系统时,加入和退出过程不会影响路由的正确性。 节点加入与退出算法 补充
出局
正常
加入
退出 邻居加入
邻居退出
加入系统
加入完成退出系统
退出完成 邻居节点加入系统
邻居节点加入完成邻居节点退出系统邻居节点退出完成
nidi nidi+1
nidnew1
niddelete nidi+2
nidnew2
![Page 45: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/45.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/46.jpg)
网络测试环境
GT-ITM 生成的 Transit Stub 拓扑结构
Emergint 测试用 Internet 拓扑结构( 6054 个节点)
![Page 47: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/47.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/48.jpg)
Emergint 性能测试(三)
增加一个节点的代价: O(logN) 常量图 4.11 :增加一个节点所需要通知的节点数
1
10
100
2 5 10 20 50 100 200 500 1000 2000 4096
节点数
通知节点数
通知节点数 通知节点数趋势值
![Page 49: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/49.jpg)
Emergint 性能测试(四)
退出一个节点的代价: O(log 2 N) 常量图 4.13 :一个节点退出需要通知的节点数
1
10
100
2 5 10 20 50 100 200 500 1000 2000 4096
系统节点数
通知节点数
通知节点数
![Page 50: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/50.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/51.jpg)
相关工作 CAN[ucb01]和 Chord[mit01]
Can 平面几何划分; Chord幂相邻关系 缺点: P2P 网络没有考虑物理网络距离 信息共享
Pastry[ms01] 直接定位对象 缺点:研究不彻底
Tapstry[ucb01] Root 冗余(优)、动态构建、对象复制 缺点: softstate ,路由失败,动态构建不彻底
Emergint 路由成功,网络开销小 研究动态构建过程中的路由的唯一算法
![Page 52: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/52.jpg)
第五部分 “燕星 2.0” 系统“ 燕星 2.0” 系统基于 Emergint ,将服务器组织成 Peer to Peer 网络。用户只需和其中任何一台服务器相连,就可接受整体服务。目前系统设计支持 16,777,216( 16 6 )个文件服务器和4,294, 967,296( 16 8 )个用户。
![Page 53: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/53.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/54.jpg)
节点数据结构
物理文件: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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/55.jpg)
用户可控文件 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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/56.jpg)
第六部分 相关的工作现有的系统和技术中,还没有一项能够安全满足海量文件存储服务的需要。目前国际上还有几个与“燕星 2.0”类似的、正在研制的分布式海量文件存储系统,它们是: Ocean
Store[UCB2002]、 Past [MS2001]和CFS[MIT2002]
![Page 57: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/57.jpg)
分布式文件系统 传统分布式文件系统
NFS, Sprite, Amoeba, Deceit 透明访问、数据一致性好;可扩展性差
Cluster 文件系统 xFS, frangipani, FarSite, Zebra, IFS 可靠、服务器协作;可扩展性较好
Global 文件系统 AFS, Coda, Prospero, Ficus 以文件共享为主;性能、易用性较差
Internet 文件系统 UFO, Jade, Alex, WebFS Internet透明访问;非海量系统
![Page 58: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/58.jpg)
Grid 和广域网应用 Grid
SRB, DataGrid, GASS 透明访问广域、异构海量数据;性能不足、技术缺乏创新
广域网应用 Akamai, Radar, ActiveName, Bayou 侧重单方面;缺乏整体解决方案
![Page 59: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/59.jpg)
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 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/60.jpg)
SAN和 NAS NAS
方便、快捷地扩展文件服务器 适用局域网
SAN 专用网络 扩展应用系统与存储系统连接距离 ISCSI (SCSI on TCP/IP) 数据块层;可以溶合
![Page 61: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/61.jpg)
第七部分 结论和将来的工作
![Page 62: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/62.jpg)
结论 “ 燕星 1.0”
“ 星”型体系结构,适于中小网络范围 多名字空间及其权限管理机制 文件服务器选择策略
Peer to Peer 路由问题形式化描述 Emergint 路由算法
P2P 网络的动态构建 “ 燕星 2.0”
基于 Emergint的 P2P 海量文件系统 用户可控 Cache 机制
![Page 63: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/63.jpg)
将来的工作 “ 燕星 1.0”
实用化:高性能 Java 网络服务器 Emergint
节点失效 “ 燕星 2.0”
节点失效 文件查找 协作型文件
![Page 64: 面向 Internet 的分布式海量 文件存储系统研究](https://reader033.fdocuments.net/reader033/viewer/2022052121/568137a8550346895d9f5209/html5/thumbnails/64.jpg)
谢 谢!