1 理论知识
1.1 概念
1.1.1 全局统一命名空间的定义
全局统一命名空间将磁盘和内存资源集成一个单一的虚拟存储池,对上层用户屏蔽了底层的物理硬件。
1.1.2 GlusterFS的定义
GlusterFS是一套可扩展的开源群集文件系统,并能够轻松地为客户提供全局命名空间、分布式前端以及高达数百PB级别的扩展性。
1.1.3 元数据的定义
元数据,是用来描述一个给定的文件或是区块在分布式文件系统中所处的位置。
注:元数据时网络附加存储解决方案在规模化方面的致命弱点,因其所有节点都必须不断与服务器(或集群组)保持联系以延续真个群集的元数据,故增加了额外的开销,致使硬件在等待响应元数据请求过程中而效率低下。
1.2 数据定位技术
Gluster通过其自有的弹性Hash算法可计算出文件在群集中每个节点的位置,而无需联系群集内的其他节点,从而降低了追踪元数据的变化而带来额外的开销。
1.2.1 数据访问流程
- 根据输入的文件路径和文件名计算hash值
- 根据hash值在群集中选择子卷(存储服务器),进行文件定位
- 对所选择的子卷进行数据访问
1.2.2 Davies-Meyer算法
Gluster使用Davies-Meyer算法计算文件名的hash值,获得一个32位整数,算法特点如下:
- 非常好的hash分布性
- 高效率的计算
1.3 Gluster的架构
1.3.1 存储服务器(Brick Server)
- 存储服务器主要提供基本的数据存储功能
- 最终通过统一调度策略分布在不同的存储服务器上(通过Glusterfsd来处理数据服务请求)
- 数据以原始格式直接存储于服务器本地文件系统(EXT3/EXT4/XFS/ZFS等)
1.3.2 客户端和存储网关(NFS/Samba)
- 客户端的Glusterfs进程负责数据卷管理、I/O调度、文件定位、数据缓存等功能
- 客户端利用FUSE(File System in User Space)模块将GlusterFS挂载到本地文件系统上
- GlusterFS存储网关提供弹性卷管理和NFS/GIFS访问代理功能
1.3.3 节点间互联
GlusterFS支持一下网络互联
- TCP/IP
- InfiniBand RDMA
1.4 Gluster的优点
1.4.1 弹性存储
Gluster群集可根据业务需求灵活地增加或缩减数据存储以及增删存储池中的资源,而不会中断系统的运行。
1.4.2 横向扩展
Gluster群集可通过增加存储节点来提升整个系统的容量或性能
1.4.3 高可靠性
Gluster群集通过自动复制与自动修复来保证数据的可靠性(利用EXT3/ZFS等磁盘文件系统日志)
1.5 Cluster的后端部署
1.5.1 兼容性
1)Cluster工作于Linux系统上层,其通过操作系统去解决与硬件的兼容性问题
2)可被部署与任何品牌的Linux系统(主要是RHEL和CentOS)
注:以上使得用户可自由选择硬件
1.5.2 数据存储方式
- 只分布型,模拟了RAID0分布情况,文件只存储于Gluster群集的单个节点,但性能表现优良。
- 分布式副本型,类似于RAID10,文件通过两个节点(镜像节点)同步使得单点故障不影响数据存取。
- 分段模型,执行上接近于标准化区块层RAID0模式,该模式将文件拆分且分布于多个节点上。
1.5.3 跨站点备份
Cluster群集允许不同群集键的多线路跨地域备份。
注:该方案用于避免群集整体故障或数据迁移、异地备份。
1.5.4 跨站点延伸
Cluster群集允许内部节点跨物理站点。
注:跨站点的带宽或延迟可能会影响群集的性能表现
1.6 客户端部署
1.6.1 支持的客户端
Cluster可通过多种不同的协议实现客户端访问,如:
- Gluster客户端
- NFS
- CIFS
- WebDAV
- HTTP
- 其他
注:只有本地的Gluster客户端才正常支持高可用性、大规模的并行文件访问或使用循环域名服务、UCARP(虚拟路由冗余协议的简化版)、CTDB(用于群集存储的Samba项目)相结合的硬件负载群衡器。
1.6.2 客户端高可用原理
- 客户端主动联系群集中的所有节点
- 客户端使用Hash算法计算出自己位于拓扑结构中的位置
- 客户端从所需求的托管节点处接收数据
- 应用程序可通过Gluster分卷获知镜像节点单点故障
1.7 Gluster群集管理工具
- Web GUI
- 命令行工具(管理非常简单便捷)
---------------------------------------------------------
官方的参阅文档
--------------
官方主页:
官方快速安装文档:
http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Quickstart/
官方安装指南:
http://gluster.readthedocs.io/en/latest/Install-Guide/Overview/
管理员手册:
http://gluster.readthedocs.io/en/latest/Administrator%20Guide/
YUM源地址:
http://download.gluster.org/pub/gluster/
非官方参阅文档
--------------
CentOS的配置文档:
https://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart
系统架构:
架构解读:
http://os.51cto.com/art/201110/299072.htm
http://blog.youkuaiyun.com/zonelan/article/details/8468383
本文出自 “老谭linux集群博客” 博客,请务必保留此出处http://cmdschool.blog.51cto.com/2420395/182845