分布式文件系统 -...
-
Upload
truongcong -
Category
Documents
-
view
378 -
download
10
Transcript of 分布式文件系统 -...
报告内容
概述
发展简史
系统架构
共享语义
共享锁
访问接口
元数据服务模型
数据分布模式
系统扩展性
系统可用性
Cache一致性
典型案例
分布式文件系统一览
GPFS
PVFS
Lustre
AFS
NFS CIFS
Castor
OrangeFS Panasas
ISILON
CFS GFS2
FileStore GFS
MFS
HDFS
KFS
SFS
StorNext
IBRIX
OneFS
GirdFS GFarm
HPSS
Glusterfs BWFS
Loongstor
CZSS
YFS
PanaFS
FastDFS
TFS
Ceph
ZFS Btrfs
OCFS2
Coda
MogileFS
pNFS
Exanet
S3 DFS
InterMezzo
dCache TerraGrid
Sector
Ivy
文件系统层次
单处理器单用户本地文件系统
多处理器单用户本地文件系统
多处理器多用户本地文件系统
多处理器多用户分布式文件系统
什么是分布式文件系统?
• 分布式文件系统(Distributed File System) – 存储资源非本地直连,通过网络连接 – NFS, AFS,包括集群/并行文件系统
• 集群文件系统(Cluster File System) – 由多个服务器节点组成的DFS – ISLION, LoongStore, Lustre, Glusterfs, GFS, HDFS
• 并行文件系统(Parallel File System) – 所有客户端可以同时并发读写同一个文件 – 支持并行应用(如MPI) – GPFS, StorNext, BWFS, GFS, Lustre, Panasas
关键设计目标
• 名字空间与名字解析
• 资源可访问(协议、接口、性能)
• 透明性(访问、位置、迁移、重定位、复制、并发、故障)
• 开放性(标准、接口、互操作性、可移植性)
• 可扩展性(异步、分布、复制、缓存)
• 可用性(复制、RAIDx、纠删码)
• 一致性(复制、缓存、CAP理论)
• 安全性(实体认证、访问控制、安全传输、加密)
发展简史
• 大致分为三个发展阶段:
• 网络文件系统(1980s)
• 共享SAN文件系统(1990s)
• 面向对象的并行文件系统(2000s)
网络文件系统(1980s)
• 历史背景 – 以太网技术蓬勃发展
• 研究重点 – 实现网络环境下的文件共享 – 解决client与文件服务器的交互问题
• 主要成果 – 1981年,IBM发布第一款PC机; – 1982年,CMU和IBM合作,启动面向PC机资源共享的ITC(Information
Technology Center)项目,研制出了著名的网络文件系统AFS; – 1983年,Novell发布了网络操作系统Netware;同年,Berkeley发布了支持
TCP/IP的BSD4.2操作系统; – At&T推出RFS网络文件系统 [H. Chartock, “RFS in SunOS”, USENIX Conference
Proceedings, Summer 1987, 281-290.] – 1985年,Sun 发布了NFS文件系统 .
• 经典文献 – The ITC distributed file system: principles and design. – Scale and Performance in a Distributed File System – Design and Implementation of the Sun Network Filesystem (NFS).
共享SAN文件系统(1990s)
• 历史背景 – 存储系统开始独立于计算机
系统快速发展 – 存储区域网络SAN兴起
• 研究重点 – 解决存储系统的可扩展性 – 面向SAN的共享文件系统
• 主要成果 – IBM研制的GPFS(General Parallel File System) – 目前由Redhat支持的GFS(Global File System)
• 经典文献 – GPFS: A Shared-Disk File System for Large Computing Clusters.
面向对象并行文件系统(2000s)
• 历史背景 – 高速网络发展 – 存储系统扩展性需求 – 突破容量和性能瓶颈
• 研究重点 – 对象存储 – 并发访问 – 元数据管理
• 主要成果 – PVFS, Panasas, Lustre, Ceph, GFS
• 经典文献 – PVFS:Parallel Virtual File System – Scalable Performance of the Panasas Parallel File System. – Luster file system – Ceph: A Scalable, High-Performance Distributed File System – Google File System
系统架构
• C/S体系结构
• 共享存储SAN架构
• 基于集群的分布式架构
• P2P对称式体系结构
• 其他系统架构
– 带内 VS 带外
– 有状态 VS 无状态
– 专用服务器 VS 无专用服务器
C/S体系结构 • NFS是典型的客户-服务器体系结构
• 远程访问模型,有别于上传/下载模型
• 通过远程过程调用RPC实现
• 文件系统模型参考POSIX API实现
系统调用层
虚拟文件系统(VFS)层
本地文件系统接口 NFS客户端
NFS客户端存根
客户端
系统调用层
虚拟文件系统(VFS)层
NFS服务器 本地文件系统接口
NFS服务端存根
服务器
共享存储SAN架构
• 服务器共享存储SAN
• MDC管理元数据
• SAN共享文件系统
• 性能和容量可单独扩展
• 成本高,规模有限 SAN
基于集群的分布式架构
• 分布式文件系统
• 服务器直连各自存储
• MDS管理元数据
• RAID、卷管理、文件系统三者合一
• 性能和容量同时扩展
• 规模可以很大
P2P对称式体系结构
• 无中心结构
• 完全对等式结构
• P2P文件系统
• 基于Chord DHT构建
• 不需要元数据服务器
• 可基于块或文件
• 可用性面临巨大挑战
共享语义
语义 说明
UNIX语义 一个文件上的每个操作对所有进程是即时可见的
会话语义 在文件关闭前,所有改动对其他进程是不可见的
不可改变的文件 不允许更新文件,简化了共享和复制
事务 所有改动都以原子方式发生
共享锁 锁类型 说明
文件锁 对整个文件文件加锁,大锁简化设计
记录锁 对一定范围的字节加锁,提高并发性
无锁 Lock-free,锁开销影响并行程序扩展
性,避免死锁和性能下降。设计原则:采用类似事务机制、原子提交、无锁数据结构
当前文件区域状态 读锁 写锁
无锁 允许 允许
读锁 允许 拒绝
写锁 拒绝 拒绝
访问接口
接口类型 说明
POSIX VFS 按照POSIX标准实现的VFS接口,可以直
接挂载至本地文件系统上。语义丰富,采用私有协议 实现,需要在客户端机器上安装软件。
NFS/CIFS 采用标准的文件共享访问协议,具有非常好的互操作性,可以直接挂载至本地文件系统上。语义稍弱,性能有定一定损耗,不需要在客户端上安装软件。
REST API 面向对象存储接口,仅提供CRUD的编程
接口。语义弱,需要在客户端上安装软件,并修改应用程序。目前在互联网领域中应用广泛 。
元数据服务模型
• 元数据服务功能
– 提供名字空间
– 记录数据逻辑名字与物理信息的映射关系
– 记录文件属性和访问控制信息
• 三种主流模型
– 集中式元数据服务模型
– 分布式元数据服务模型
– 无元数据服务模型
集中式元数据服务模型
• 概念 – 由单一中央元数据服务器负责元数据服务
• 优点 – 设计实现简单,复杂性低 – 容易兼容整合遗留系统
• 缺点 – 性能瓶颈 – 单点故障问题
• 典型代表 – StorNext, BWFS, Lustre, PVFS
分布式元数据服务模型
• 概念 – 使用多台服务器构成集群协同为分布式文件系统提供元数据服务
– 分为全对等和全分布两种模型
• 优点 – 解决了性能瓶颈和单点故障问题 – 提高系统扩展性
• 缺点 – 增加系统设计复杂性 – 引入系统开销和元数据一致性问题
• 典型代表 – ISILON, LoongStore, CZSS, PanFS, GPFS, Ceph
无元数据服务模型
• 概念 – 摒弃元数据服务,使用在线算法替代
• 优点 – 消除专用元数据服务模型的不足 – 显著提高系统扩展性、并发性、性能
• 缺点 – 数据一致性更加复杂 – 文件目录遍历操作效率低下 – 缺乏全局监控管理功能
• 典型代表 – Ivy, Farsite, Glusterfs
数据分布模式
• 算法分布(Load, RR, Hash) – 负载优先算法 – RoundRobin算法 – Hash算法
• 复制(Replication) – RAID1镜像、多路复制
• 条带(Stripe) – RAID0
• RAIDx (X>=5) – RAID5、RAID6
• 纠删码(Erasure code) – 阵列纠删码、RS码、LDPC编码
系统扩展性
• 扩展性需求 – 规模:元数据管理、存储服务器数、客户端数
– 地域:LAN、MAN、WAN
– 性能:容量、IOPS/吞吐量、并发访问数
– 系统管理:资源记帐、安全、QoS
• 扩展技术 – 异步通信:隐藏通信等待时间、提高并发性
– 分布(Distribution):分而治之
– 复制/缓存:提高可用性和性能
系统可用性
• 可用性 – 系统处于正常功能状态的时间比例 – 可用性 = MTTF/(MTTF + MTTR)
• 提高可用性方法 – 避错、容错、除错、差错预测 – 以容错为主,冗余技术实现
• 可用性技术 – 复制:镜像RAID1、多路复制 – RAIDx:RAID5、RAID6 – 纠删码:阵列纠删码、RS码、LDPC编码
Cache一致性
• 进行缓存的原因 – 提高可用性和性能 – 问题:保证缓存一致性 – 强一致性难以实现
• 解决方法:放宽一致性限制 • 一致性模型
– 顺序一致性 – 读写一致性 – 会话一致性 – 最终一致性
• CAP/BASE理论 – CAP:一致性,可用性和分区容错性,最多只能同时满足两个 – BASE:Basically Availble(基本可用)、Soft-state (软状态)、
Eventual Consistency (最终一致性)
NoSQL系统中的CAP理论
安全性
• 安全性三要素CIA – 机密性(Confidentiality) – 完整性(Integrity) – 可用性(Availability)
• 安全机制 – 加密:实现机密性和完整性,DES、RSA – 身份认证:检验实体所声明的身份 – 授权:授予实体执行所请求操作的权限 – 审计:追踪实体的访问内容和访问行为 – 冗余:提供可用性
• 安全层次 – 安全通道:身份认证、消息的完整性和机密性 – 访问控制:访问授权、防火墙 – 安全管理:密钥管理、授权管理
典型案例
• 国外商业产品 – IBM GPFS, EMC ISILON, Panasas PanFS
• 国外开源系统 – WhamCloud Lustre, Redhat GFS, Gluster Glusterfs – Clemon PVFS, Sage Weil/Inktank Ceph, Apache HDFS
• 国内产品 – 中科蓝鲸BWFS – 龙存Loongstor – 余庆FastDFS – 淘宝TFS
IBM GPFS
EMC ISILON
Panasas PanFS
WhamCloud Lustre
Clemson PVFS
Redhat GFS
Gluster Glusterfs
Sage Weil/Inktank Ceph
Apache HDFS
中科蓝鲸BWFS
龙存Loongstor
余庆FastDFS
淘宝TFS
Q & A
Thanks