设为首页收藏本站

超融合Server SAN

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ServerSAN
查看: 12069|回复: 0

GlusterFS文件系统功能扩展机制、Cluster、Debug、Encryption、Features、Mgmt、Mount

[复制链接]

9

主题

9

帖子

29

积分

新手上路

Rank: 1

积分
29
发表于 08:35 | 显示全部楼层 |阅读模式
     Translators
如前所述,Translators是GlusterFS提供的一种强大文件系统功能扩展机制,这一设计思想借鉴于GNU/Hurd微内核操作系统。GlusterFS中所有的功能都通过Translator机制实现,运行时以动态库方式进行加载,服务端和客户端相互兼容。GlusterFS 3.1.X中,主要包括以下几类Translator:
(1)  Cluster:存储集群分布,目前有AFR, DHT, Stripe三种方式
(2)  Debug:跟踪GlusterFS内部函数和系统调用
(3)  Encryption:简单的数据加密实现
(4)  Features:访问控制、锁、Mac兼容、静默、配额、只读、回收站等
(5)  Mgmt:弹性卷管理
(6)  Mount:FUSE接口实现
(7)  Nfs:内部NFS服务器
(8)  Performance:io-cache, io-threads, quick-read, read-ahead,stat-prefetch, sysmlink-cache, write-behind等性能优化
(9)  Protocol:服务器和客户端协议实现
(10)Storage:底层文件系统POSIX接口实现
这里我们重点介绍一下Cluster Translators,它是实现GlusterFS集群存储的核心,它包括AFR(Automatic File Replication)、DHT(Distributed Hash Table)和Stripe三种类型。
AFR相当于RAID1,同一文件在多个存储节点上保留多份,主要用于实现高可用性以及数据自动修复。AFR所有子卷上具有相同的名字空间,查找文件时从第一个节点开始,直到搜索成功或最后节点搜索完毕。读数据时,AFR会把所有请求调度到所有存储节点,进行负载均衡以提高系统性能。写数据时,首先需要在所有锁服务器上对文件加锁,默认第一个节点为锁服务器,可以指定多个。然后,AFR以日志事件方式对所有服务器进行写数据操作,成功后删除日志并解锁。AFR会自动检测并修复同一文件的数据不一致性,它使用更改日志来确定好的数据副本。自动修复在文件目录首次访问时触发,如果是目录将在所有子卷上复制正确数据,如果文件不存则创建,文件信息不匹配则修复,日志指示更新则进行更新。
DHT即上面所介绍的弹性哈希算法,它采用hash方式进行数据分布,名字空间分布在所有节点上。查找文件时,通过弹性哈希算法进行,不依赖名字空间。但遍历文件目录时,则实现较为复杂和低效,需要搜索所有的存储节点。单一文件只会调度到唯一的存储节点,一旦文件被定位后,读写模式相对简单。DHT不具备容错能力,需要借助AFR实现高可用性, 如图5所示应用案例。
Stripe相当于RAID0,即分片存储,文件被划分成固定长度的数据分片以Round-Robin轮转方式存储在所有存储节点。Stripe所有存储节点组成完整的名字空间,查找文件时需要询问所有节点,这点非常低效。读写数据时,Stripe涉及全部分片存储节点,操作可以在多个节点之间并发执行,性能非常高。Stripe通常与AFR组合使用,构成RAID10/RAID01,同时获得高性能和高可用性,当然存储利用率会低于50%。
image5.png
图5 GlusterFS应用案例:AFR+DHT

作者:刘爱贵


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表