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