这里GlusterFS原理就不多说了,可以看GlusterFS官网
K8S也支持GlusterFS,POD也可以支持挂载。
说一下我的环境
centos 7 1611 3台 组成集群 另一台做客户端,也可以不使用单独一台做客户端
180.com 181.com 182.com
183.com 客户端
老规矩
关了
systemctl stop firewalld.service
systemctl disable firewalld.service
selinu disable
yum install -y bash-completion
添加hosts
下面就正式开始了
yum install centos-release-gluster
安装源
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
安装
启动 glusterFS
systemctl start glusterd.service
systemctl enable glusterd.service
加入集群命令
gluster peer probe hostname
把某台机器删除集群
gluster peer detach hostname
查看集群状态,可以看到集群已起来了
gluster peer status
创建盘
我自己加了一个盘 挂在/abcd下 三台都是
Mkdir /abcd/1
创建一个volume 默认模式 用嘻哈方式保存文件到某一台服务器上
gluster volume create textstorg 180.com:/abcd/1 181.com:/abcd/1 182.com:/abcd/1
我们可以看到glustfs NFS默认是没有开启的
创建一个用副本的盘
gluster volume create abcd1234 replica 2 180.com:/abcd/2 181.com:/abcd/2 182.com:/abcd/2
可以看到副本的数据一下要是服务器数据的倍数,不然搞不下去
因为我的服务器是3台 所以 要把副本改成3 就可以了
配置glusterfs NFS
安装
yum install -y glusterfs-server glusterfs-api glusterfs-ganesha
glusterfs-server 上面已经安装了
glusterfs-api glusterfs-ganesha
启动
o service nfs-ganesha start
开机启动
systemctl enable rpcbind.service
systemctl enable nfs-ganesha.service
gluster nfs
gluster nfs-ganesha enable
把某个卷开启 nfs
gluster volume set abcd1234 nfs.disable off
查看刚刚创建的卷
gluster volume info
GlusterFS客户端
yum install -y glusterfs glusterfs-fuse
df 查看 客户端本地卷
[root@183 ~]# mount -t glusterfs 180.com:abcd1234 /abcd/mountnfs/
[root@183 ~]# mount -t glusterfs 180.com:textstorg /abcd/textstorg
df查看一下
我这里就可以看到两个盘,两个盘的大小不一样大
说明:
在创建时abcd1234 是保存3个副本相于只有三分之一的有用空,我只有三台主机,也就是说只要有一台正常工作我的数据就不会丢失。有利也有弊吧。
创建textstorg 没有做设置默认通过嘻哈运算把文件保存到某一台主机中,没有备份功能。
当然GlusterFS 支持好几种文件保存的方式,请向官网查看,
在集群中断了180 主机 abcd1234上的数据还在,textstorg卷保存在180上的数据会丢失。
某一台断电后客户端会出现30秒左右的卡顿, 才能正常工作。客户端继续工作abcd1234上数据正常,等待180上线后 GlusterFS会把 其它主机的数据同步于180主机。