GlusterFS类型的StorageClass如何为?
摘要:GlusterFS在Kubernetes中的应用 GlusterFS服务简介 GlusterFS是一个可扩展,分布式文件系统,集成来自多台服务器上的磁盘存储资源到单一全局命名空间,以提供共享文件存储。 特点: 可以扩展到几PB容量 支持处理
GlusterFS在Kubernetes中的应用
GlusterFS服务简介
GlusterFS是一个可扩展,分布式文件系统,集成来自多台服务器上的磁盘存储资源到单一全局命名空间,以提供共享文件存储。
特点:
可以扩展到几PB容量
支持处理数千个客户端
兼容POSIX接口
使用通用硬件,普通服务器即可构建
能够使用支持扩展属性的文件系统,例如ext4,XFS
支持工业标准的协议,例如NFS,SMB
提供很多高级功能,例如副本,配额,跨地域复制,快照以及bitrot检测
支持根据不同工作负载进行调优
GFS存储的一些术语:
Brick:GlusterFS中的存储单元,通常是一个受信存储池中的服务器的一个目录。可以通过主机名和目录名来标识,如'SERVER:EXPORT'。
Node:一个拥有若干brick的设备。
Volume:一组bricks的逻辑集合。
Client:挂载了GlusterFS卷的设备。
GFID:GlusterFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,其用于模拟inode
Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点。
RDMA:远程直接内存访问,支持不通过双方的OS进行直接内存访问。
RRDNS:round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法
Self-heal:用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致。
Split-brain:脑裂
Volfile:Glusterfs进程的配置文件,通常位于/var/lib/glusterd/vols/volname
GFS卷(volume)的模式:
Volume是一组Brick的组合,一个gfs集群中可以有多个volume,可以供客户端挂载、存储数据等,它有很多种模式供选择:
分布式卷(默认模式):即DHT,文件通过hash算法分布存在不同的brick里,单个brick失效会带来数据丢失,无需额外元数据服务器。
条带卷:即Striped,文件切分成一个个的chunk,存放于不同的brick上,只建议在非常大的文件时使用。
复制卷:即AFR,同一份数据会同步在多个Brick中,单一节点故障时保持数据高可用,事务性操作,保持一致性。
分布式复制卷:即AFR和DHT的组合,最少需要4台服务器才能创建,读操作可以做到负载均衡。
条带复制卷:Striped与AFR 的组合,最少需要4台服务器才能创建。
分布式条带复制卷:至少需要8台服务器才能创建,每四台服务器一组。
GlusterFS服务搭建及进程解析
主机名
ip地址
角色
master
192.168.72.100
k8s-master、glusterfs、heketi
node1
192.168.72.101
k8s-work节点
node2
192.168.72.102
k8s-work节点
获取gluster rpm包,我这里是7.5版本的,需要下载以下几个rpm包:
# ls
glusterfs-7.5-1.el7.x86_64.rpm glusterfs-libs-7.5-1.el7.x86_64.rpm
glusterfs-api-7.5-1.el7.x86_64.rpm glusterfs-server-7.5-1.el7.x86_64.rpm
glusterfs-api-devel-7.5-1.el7.x86_64.rpm psmisc-22.20-15.el7.x86_64.rpm
glusterfs-cli-7.5-1.el7.x86_64.rpm userspace-rcu-0.10.0-3.el7.x86_64.rpm
glusterfs-client-xlators-7.5-1.el7.x86_64.rpm userspace-rcu-0.7.16-1.el7.x86_64.rpm
glusterfs-fuse-7.5-1.el7.x86_64.rpm
地址:https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-9/Packages/;如果有外网可以直接配置yum源安装需要的版本。
