1.gluster简介
名称解释:
Brick:GlusterFS中最基本的存储单元,表示为受信存储池(trusted storage pool)中输出的目录,供客户端挂载用,可以通过主机名与目录名来标识,如’SERVER:EXPORT’;
Volume:卷,逻辑上由N个brick组成;
FUSE:Unix-like OS上的可动态加载的模块,允许用户不用修改内核即可创建自己的文件系统;
Glusterd:Gluster management daemon,在trusted storage pool中所有的服务器上运行;
Volfile:Glusterfs进程的配置文件,通常是位于/var/lib/glusterd/vols/目录下的{volname}文件;
Self-heal:用于后台运行检测复本卷中文件与目录的不一致性并解决这些不一致;
Split-brain:脑裂;
GFID:GlusterFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,用于模拟inode;
Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点。
2. GFS安装
此处推荐rpm包安装,方法可操作我另外一篇博客:
https://blog.csdn.net/qq_40816848/article/details/104052469
2.1 程序启停
开机自启动:systemctl enable glusterd
启动:systemctl start glusterd
查看状态:systemctl status glusterd
2.2 配置可信池
设置hosts:
vi /etc/hosts
10.10.10.1 localhost hostname-test1
10.10.10.2 hostname-test2
#清空防火墙命令iptables -F(选)
#添加机器到集群
gluster peer probe 10.10.10.1
gluster peer probe 10.10.10.2
#查看集群信息
gluster peer status
2.3 设置ntp
Brick Server节点需要保持时钟同步(重要)
2.4 创建和启动volume
- 创建lv并挂载至/gfsdata,并在gfsdata下创建brick1,brick2目录
lv的创建参考:
https://blog.csdn.net/qq_40816848/article/details/104971205
- 创建volume
#创建名为gfsdata-1和gfsdata-2两个volume
gluster volume create volume-1 replica 2 transport tcp 10.10.10.1:/gfsdata/brick1 10.10.10.2:/gfsdata/brick1 force
- 启动volume
#启动
gluster volume start volume-1
#查看状态
gluster volume info
gluster volume status
- 挂载volume
- 先创建卷的挂载目录/home/bsjk/gfs
- 分别挂载.1和.2两台服务器的volume
在10.10.10.1上执行
#mount.glusterfs 10.10.10.1:/volume-1 /home/bsjk/gfs
在10.10.10.2上执行
#mount.glusterfs 10.10.10.2:/volume-1 /home/bsjk/gfs
- 修改目录所属用户和用户组
chown -R bsjk:bsjk /home/bsjk/gfs
3.GFS相关操作
- 卷操作
启动卷:gluster volume start <volume-name>
停止卷:gluster volume stop <volume-name>
删除卷:gluster volume delete <volume-name>
- 脑裂
#1. 查看脑裂
gluster volume heal volume-1 info split-brain
#2. 在脑裂节点的数据存储目录查找脑裂文件,删除
#3. 手动触发完整修复
gluster volume heal volume-1 full
4.遇到问题和解决办法
- volume的某台主机brick节点掉了,可通过下述命令,在任何一台节点服务器上拉起。
gluster volume start volume-1 force
- /home/bsjk/gfs无法被volume挂载,且文件属性显示???
cat /proc/mounts | grep “ftpbsjk”
umount /home/bsjk/ftpbsjk
umount /home/bsjk/ftpbsjk
执行umount /home/bsjk/ftpbsjk显示 target is busy
fuser -k /appdata/bsjk/gfs 查看proc后的进程号,kill 对应进程,然后再umount