GlusterFS系统原理剖析
2020-02-27 201浏览
- 1.101-5 GlusterFS系统原理剖析
- 2.讲师介绍 刘爱贵,博士 毕业于中科院高能物理研究所 主要研究方向:分布式存储、 高性能计算、数据挖掘 专注于存储技术的研究与开发,GlusterFS等 分布式文件系统资深理论研究与实践者 博客:http://blog.csdn.net/liuaigui微博:http://weibo.com/liuagEmail:aigui.liu@gmail.com QQ:9187434
- 3.培训提纲 GlusterFS架构特点 GlusterFS核心工作原理 GlusterFS典型功能剖析
- 4.GlusterFS是什么? 分布式 文件系 统 集群 NAS 无中心 架构 标准 硬件 POSIX 高性能 自修复 自动 复制 ScaleOut 高可用 全局统 一命名 空间 Infin iband
- 5.GlusterFS架构设计目标
- 6.GlusterFS架构特点 软件定义 无中心架构 全局命名空间 高性能 用户空间实现 堆栈式设计 弹性横向扩展 高速网络通信 数据自动修复
- 7.GlusterFS总体架构
- 8.模块化/堆栈式存储OS架构
- 9.全局统一命名空间 通过分布式文件系统将物理分散的存储资源虚拟化成统一的存储池 文件系统 卷管理 GlusterFS RAID
- 10.无集中元数据服务
- 11.GlusterFS堆栈式软件架构
- 12.GlusterFS基本概念 Brick ● ● A filesystem mountpoint A unit of storage used as a GlusterFS building block Translator ● ● Logic between the bits and the Global Namespace Layered to provide GlusterFS functionality Volume ● Bricks combined and passed through translators Node / Peer ● Server running the gluster daemon and sharing volumes
- 13.Translators
- 14.弹性hash算法
- 15.弹性Hash算法流程 file1 /data1/file1 file2 /data2/file2 file3 hash hash hash hash GlusterFS volume brcik1 brick2 brick3 brick4 /data3/file3 1、使用Davies-Meyer算法计算32 位hash值,输入参数为文件名; 2、根据hash值在集群中选择子卷 (存储服务器),进行文件定位; 3、对所选择的子卷进行数据访问。 Brick Hash range Brick1 00000000 ~ 3FFFFFFF Brick2 4FFFFFFF ~ 7FFFFFFF Brick3 8FFFFFFF ~ BFFFFFFF Brick4 CFFFFFFF ~ FFFFFFFF
- 16.GlusterFS卷类型 基本卷 哈希卷(Distributed Volume) 复制卷(Replicated Volume) 条带卷(Striped Volumes) 复合卷 哈希复制卷(Distributed Replicated Volume) 哈希条带卷(Distributed Striped Volume) 复制条带卷(Replicated Striped Volume) 哈希复制条带卷(Distributed Replicated Striped Volume)
- 17.哈希卷(Distributed Volume) 文件通过hash算法在所有brick上分布 ● 文件级RAID 0,不具有容错能力 ●
- 18.哈希卷工作原理
- 19.复制卷(Replicated Volume) 文件同步复制到多个brick上 ● 文件级RAID 1,具有容错能力 ● 写性能下降,读性能提升 ●
- 20.复制卷工作原理
- 21.复合卷:哈希+复制 哈希卷和复制卷的复合方式 ● 同时具有哈希卷和复制卷的特点 ●
- 22.条带卷(Striped Volumes) 单个文件分布到多个brick上,支持超大文件 ● 类似RAID 0,以Round-Robin方式 ● 通常用于HPC中的超大文件高并发访问 ●
- 23.复合卷:哈希+条带 哈希卷和条带卷的复合方式 ● 同时具有哈希卷和条带卷的特点 ●
- 24.复合卷:条带+复制 类似RAID 10 ● ● 同时具有条带卷和复制卷的特点
- 25.复合卷:哈希+条带+复制 三种基本卷的复合卷 ● 通常用于类Map Reduce应用 ●
- 26.GlusterFS访问接口
- 27.GlusterFS – FUSE Architecture TCP, RDMA IB / 10GigE / 1GigE Applications Glibc GlusterFS GlusterFS Userland Userland Kernel Kernel VFS FUSE Disk FS (ZFS / Ext3 / XFS)
- 28.GlusterFS数据流
- 29.FUSE访问
- 30.NFS/CIFS访问
- 31.写入一个文件 服务器 NFS, CIFS,FTP HTTP,iFS 服务器 服务器 GlusterFS集群
- 32.读取一个文件 服务器 NFS, CIFS,FTP HTTP,iFS 服务器 服务器 GlusterFS集群
- 33.FUSE w/ Libgfapi 访问
- 34.libgfapi访问
- 35.REST API访问
- 36.Hadoop访问
- 37.数据自修复 Self-heal file1 file1 Self-heal发展 第一代:按需同步进行 第二代:完全人工扫描 第三代:并发自动修复(3.3) 第四代:基于日志 file1 file2 file3 file4 镜像卷文件副本保持一致性 触发时机:访问文件目录时 判断依据:扩展属性 脑裂问题:报错或按规则处理
- 38.Distributed Hash Table (DHT) Server A File X Server C Server B File Y ● ● GlusterFS弹性扩展的基础 确定目标hash和brick之间的映射关系
- 39.添加节点 Server D Server A File X Server C Server B File Y ● 添加新节点,最小化数据重新分配 ● 老数据分布模式不变,新数据分布到所有节点上 ● 执行rebalance,数据重新分布
- 40.容量负载均衡 ● Hash范围均衡分布,节点一变动全局 ● 目标:优化数据分布,最小化数据迁移 ● 数据迁移自动化、智能化、并行化
- 41.文件更名 Brick1 Brick2 FileA FileB FileB ● 文件更名:FileA FileB ● 原先的hash映射关系失效,大文件难以实时迁移 ● 采用文件符号链接,访问时解析重定向
- 42.容量负载优先 FooBar Brick1 Brick2 FooBar FooBar Brick3 ● 设置容量阈值,优先选择可用容量充足brick ● Hash目标brick上创建文件符号链接 ● 访问时解析重定向
- 43.Split Brain Client 1 Client 2 write “foo” write “bar” Server A Server B network partition ● 裂脑如何产生的? ● 解决方法:1、报错处理;2、Quorum方法(N=2?);3、仲裁机制
- 44.Q&A