一、此博客最终能够实现:
1.由于用的是虚拟云服务器,和GFS服务器在同一个局域网下的应用服务器可以通过内网ip(内网域名)挂载GFS,服务器就像操作自己本地磁盘一样操作GFS
此博客最终无法实现:
2.暂时无法通过GFS服务器的公网ip挂载,原因可能是云服务器商分配的公网ip网卡不在云虚拟机上,而是在云服务商的网关上。
3.生产环境中为了安全,应用服务器访问基础服务(redis、mysql、mongodb等等)都是通过内网ip或内网域名访问,基础服务不需要公网ip或公网域名,不对外暴露,所以上面发现的外网服务器无法通过公网ip挂载暂时不深究
二、安装GFS
1.环境准备:
3台云虚拟服务器 centos7,服务器内网ip如下:
172.16.0.6
172.16.0.4
172.16.0.5
3台云虚拟服务器需要内网ip互通,公网ip经试验有问题
2.在每台服务器上配置hosts
vim /etc/hosts
172.16.0.6 gluster1.idc.baiduyun.com
172.16.0.4 gluster2.idc.baiduyun.com
172.16.0.5 gluster3.idc.baiduyun.com
3.在每台服务器上运行下列命令安装gluster服务器
yum install centos-release-gluster -y
yum install glusterfs-server glusterfs glusterfs-fuse -y
4.运行
服务启动:
service glusterd start
设置开机启动:
chkconfig glusterd on
5.在第一台服务器上(172.16.0.6 gluster1.idc.baiduyun.com)上将另外两台服务器加入可信任存储池,另外两台不需要运行
gluster peer probe gluster2.idc.baiduyun.com
gluster peer probe gluster3.idc.baiduyun.com
6.可以在每台服务器上运行gluster peer status 查看集群,发现服务器都已经添加进去
7.创建GlusterFS逻辑卷(Volume),在每台服务器上运行下面命令
mkdir -p /data/gfsdata
8.在服务器(172.16.0.6 gluster1.idc.baiduyun.com)上运行:
gluster volume create gv0 replica 3 gluster1.idc.baiduyun.com:/data/gfsdata gluster2.idc.baiduyun.com:/data/gfsdata gluster3.idc.baiduyun.com:/data/gfsdata
这条命令的意思是使用Replicated的方式,建立一个名为gv0的卷(Volume),存储块(Brick)为3个(数据备份为3,也就是同一份数据会存在3台服务器上,数据冗余来防止数据丢失)
运行完发现报错了,这是因为我们创建的brick在系统盘,这个在gluster的默认情况下是不允许的,生产环境下也尽可能的与系统盘分开,如果必须这样请使用force
gluster volume create gv0 replica 3 gluster1.idc.baiduyun.com:/data/gfsdata gluster2.idc.baiduyun.com:/data/gfsdata gluster3.idc.baiduyun.com:/data/gfsdata force
9.启用gfs逻辑卷:
gluster volume start gv0
查看逻辑卷状态:
gluster volume info
10.查看gluster配置:
cat /etc/glusterfs/glusterd.vol
至此服务器端搭建完成
二、客户端挂载:
1.在能和gluster服务器内网ip互通的服务器上安装gluster客户端:
yum -y install glusterfs glusterfs-fuse
2.挂载
在需要挂载的服务器上创建挂载目录
mkdir /mnt/glusterfs
将gv0挂载到/mnt/glusterfs
mount -t glusterfs gluster1.idc.baiduyun.com:/gv0 /mnt/glusterfs
3.确认挂载结果:
mount -t fuse.glusterfs
4.配置开机自动挂载
vim /etc/fstab
添加:
gluster1.idc.baiduyun.com:/data/gfsdata /mnt/glusterfs glusterfs defaults 0 0
5.client端成功挂载逻辑卷之后,在挂载目录/mnt/glusterfs建立文件以测试GlusterFS是否正常工作
在客户端/mnt/glusterfs/挂载目录下创建三个文件:
touch file1 file2 file3
ls
在每一台gluster服务器的卷下查看文件是否存在
cd /data/gfsdata/
ls
还可以在其他客户端挂载gv0,同样能访问到这三个文件
----------------------------------------------------------------------------------------------------------------------------------------------------------
安装参考:https://docs.gluster.org/en/latest/Install-Guide/Configure/
https://www.cnblogs.com/terrycy/p/5915263.html
关于gluster文件存储的类型方式可以参考:
https://blog.csdn.net/yujin2010good/article/details/75268877