分布式文件系统 -...

43
分布式文件系统 刘爱贵 [email protected] 2012-05-18

Transcript of 分布式文件系统 -...

Page 1: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

分布式文件系统

刘爱贵

[email protected]

2012-05-18

Page 2: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

报告内容

概述

发展简史

系统架构

共享语义

共享锁

访问接口

元数据服务模型

数据分布模式

系统扩展性

系统可用性

Cache一致性

典型案例

Page 3: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

分布式文件系统一览

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

Page 4: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

文件系统层次

单处理器单用户本地文件系统

多处理器单用户本地文件系统

多处理器多用户本地文件系统

多处理器多用户分布式文件系统

Page 5: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

什么是分布式文件系统?

• 分布式文件系统(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

Page 6: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

关键设计目标

• 名字空间与名字解析

• 资源可访问(协议、接口、性能)

• 透明性(访问、位置、迁移、重定位、复制、并发、故障)

• 开放性(标准、接口、互操作性、可移植性)

• 可扩展性(异步、分布、复制、缓存)

• 可用性(复制、RAIDx、纠删码)

• 一致性(复制、缓存、CAP理论)

• 安全性(实体认证、访问控制、安全传输、加密)

Page 7: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

发展简史

• 大致分为三个发展阶段:

• 网络文件系统(1980s)

• 共享SAN文件系统(1990s)

• 面向对象的并行文件系统(2000s)

Page 8: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

网络文件系统(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).

Page 9: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

共享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.

Page 10: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

面向对象并行文件系统(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

Page 11: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

系统架构

• C/S体系结构

• 共享存储SAN架构

• 基于集群的分布式架构

• P2P对称式体系结构

• 其他系统架构

– 带内 VS 带外

– 有状态 VS 无状态

– 专用服务器 VS 无专用服务器

Page 12: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

C/S体系结构 • NFS是典型的客户-服务器体系结构

• 远程访问模型,有别于上传/下载模型

• 通过远程过程调用RPC实现

• 文件系统模型参考POSIX API实现

系统调用层

虚拟文件系统(VFS)层

本地文件系统接口 NFS客户端

NFS客户端存根

客户端

系统调用层

虚拟文件系统(VFS)层

NFS服务器 本地文件系统接口

NFS服务端存根

服务器

Page 13: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

共享存储SAN架构

• 服务器共享存储SAN

• MDC管理元数据

• SAN共享文件系统

• 性能和容量可单独扩展

• 成本高,规模有限 SAN

Page 14: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

基于集群的分布式架构

• 分布式文件系统

• 服务器直连各自存储

• MDS管理元数据

• RAID、卷管理、文件系统三者合一

• 性能和容量同时扩展

• 规模可以很大

Page 15: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

P2P对称式体系结构

• 无中心结构

• 完全对等式结构

• P2P文件系统

• 基于Chord DHT构建

• 不需要元数据服务器

• 可基于块或文件

• 可用性面临巨大挑战

Page 16: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

共享语义

语义 说明

UNIX语义 一个文件上的每个操作对所有进程是即时可见的

会话语义 在文件关闭前,所有改动对其他进程是不可见的

不可改变的文件 不允许更新文件,简化了共享和复制

事务 所有改动都以原子方式发生

Page 17: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

共享锁 锁类型 说明

文件锁 对整个文件文件加锁,大锁简化设计

记录锁 对一定范围的字节加锁,提高并发性

无锁 Lock-free,锁开销影响并行程序扩展

性,避免死锁和性能下降。设计原则:采用类似事务机制、原子提交、无锁数据结构

当前文件区域状态 读锁 写锁

无锁 允许 允许

读锁 允许 拒绝

写锁 拒绝 拒绝

Page 18: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

访问接口

接口类型 说明

POSIX VFS 按照POSIX标准实现的VFS接口,可以直

接挂载至本地文件系统上。语义丰富,采用私有协议 实现,需要在客户端机器上安装软件。

NFS/CIFS 采用标准的文件共享访问协议,具有非常好的互操作性,可以直接挂载至本地文件系统上。语义稍弱,性能有定一定损耗,不需要在客户端上安装软件。

REST API 面向对象存储接口,仅提供CRUD的编程

接口。语义弱,需要在客户端上安装软件,并修改应用程序。目前在互联网领域中应用广泛 。

Page 19: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

元数据服务模型

• 元数据服务功能

– 提供名字空间

– 记录数据逻辑名字与物理信息的映射关系

– 记录文件属性和访问控制信息

• 三种主流模型

– 集中式元数据服务模型

– 分布式元数据服务模型

– 无元数据服务模型

Page 20: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

集中式元数据服务模型

• 概念 – 由单一中央元数据服务器负责元数据服务

• 优点 – 设计实现简单,复杂性低 – 容易兼容整合遗留系统

• 缺点 – 性能瓶颈 – 单点故障问题

• 典型代表 – StorNext, BWFS, Lustre, PVFS

Page 21: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

分布式元数据服务模型

• 概念 – 使用多台服务器构成集群协同为分布式文件系统提供元数据服务

– 分为全对等和全分布两种模型

• 优点 – 解决了性能瓶颈和单点故障问题 – 提高系统扩展性

• 缺点 – 增加系统设计复杂性 – 引入系统开销和元数据一致性问题

• 典型代表 – ISILON, LoongStore, CZSS, PanFS, GPFS, Ceph

Page 22: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

无元数据服务模型

• 概念 – 摒弃元数据服务,使用在线算法替代

• 优点 – 消除专用元数据服务模型的不足 – 显著提高系统扩展性、并发性、性能

• 缺点 – 数据一致性更加复杂 – 文件目录遍历操作效率低下 – 缺乏全局监控管理功能

• 典型代表 – Ivy, Farsite, Glusterfs

Page 23: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

数据分布模式

• 算法分布(Load, RR, Hash) – 负载优先算法 – RoundRobin算法 – Hash算法

• 复制(Replication) – RAID1镜像、多路复制

• 条带(Stripe) – RAID0

• RAIDx (X>=5) – RAID5、RAID6

• 纠删码(Erasure code) – 阵列纠删码、RS码、LDPC编码

Page 24: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

系统扩展性

• 扩展性需求 – 规模:元数据管理、存储服务器数、客户端数

– 地域:LAN、MAN、WAN

– 性能:容量、IOPS/吞吐量、并发访问数

– 系统管理:资源记帐、安全、QoS

• 扩展技术 – 异步通信:隐藏通信等待时间、提高并发性

– 分布(Distribution):分而治之

– 复制/缓存:提高可用性和性能

Page 25: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

系统可用性

• 可用性 – 系统处于正常功能状态的时间比例 – 可用性 = MTTF/(MTTF + MTTR)

• 提高可用性方法 – 避错、容错、除错、差错预测 – 以容错为主,冗余技术实现

• 可用性技术 – 复制:镜像RAID1、多路复制 – RAIDx:RAID5、RAID6 – 纠删码:阵列纠删码、RS码、LDPC编码

Page 26: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Cache一致性

• 进行缓存的原因 – 提高可用性和性能 – 问题:保证缓存一致性 – 强一致性难以实现

• 解决方法:放宽一致性限制 • 一致性模型

– 顺序一致性 – 读写一致性 – 会话一致性 – 最终一致性

• CAP/BASE理论 – CAP:一致性,可用性和分区容错性,最多只能同时满足两个 – BASE:Basically Availble(基本可用)、Soft-state (软状态)、

Eventual Consistency (最终一致性)

Page 27: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

NoSQL系统中的CAP理论

Page 28: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

安全性

• 安全性三要素CIA – 机密性(Confidentiality) – 完整性(Integrity) – 可用性(Availability)

• 安全机制 – 加密:实现机密性和完整性,DES、RSA – 身份认证:检验实体所声明的身份 – 授权:授予实体执行所请求操作的权限 – 审计:追踪实体的访问内容和访问行为 – 冗余:提供可用性

• 安全层次 – 安全通道:身份认证、消息的完整性和机密性 – 访问控制:访问授权、防火墙 – 安全管理:密钥管理、授权管理

Page 29: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

典型案例

• 国外商业产品 – IBM GPFS, EMC ISILON, Panasas PanFS

• 国外开源系统 – WhamCloud Lustre, Redhat GFS, Gluster Glusterfs – Clemon PVFS, Sage Weil/Inktank Ceph, Apache HDFS

• 国内产品 – 中科蓝鲸BWFS – 龙存Loongstor – 余庆FastDFS – 淘宝TFS

Page 30: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

IBM GPFS

Page 31: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

EMC ISILON

Page 32: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Panasas PanFS

Page 33: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

WhamCloud Lustre

Page 34: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Clemson PVFS

Page 35: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Redhat GFS

Page 36: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Gluster Glusterfs

Page 37: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Sage Weil/Inktank Ceph

Page 38: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Apache HDFS

Page 39: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

中科蓝鲸BWFS

Page 40: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

龙存Loongstor

Page 41: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

余庆FastDFS

Page 42: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

淘宝TFS

Page 43: 分布式文件系统 - fingerliu.qiniudn.comfingerliu.qiniudn.com/files/分布式文件系统.pdf · GFS2 FileStore GFS MFS HDFS KFS SFS StorNext IBRIX OneFS GirdFS GFarm HPSS Glusterfs

Q & A

Thanks