GFS分布式文件系统
一.文件系统
1.组成
①文件系统接口
②对对象管理的软件集合
③对象及属性
2.作用
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体的说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取。
3.挂载使用
除根文件系统以外的文件系统创建后要使用需要先挂载至挂载点后才可以被访问,挂载点即分区设备文件关联的某个目录文件。
二、gfs
1.组成
- 存储服务器
- 客户端
- NFS/SAMBA存储网关组成
2.特点
- 扩展性和高性能
- 高可用性
- 全局统一命名空间
- 弹性卷管理
- 基于标准协议
3.工作流程
(1) 客户端或应用程序通过 GlusterFS 的挂载点访问数据。
(2) Linux 系统内核通过 VFS API 收到请求并处理。
(3) VFS 将数据递交给 FUSE 内核文件系统,并向系统注册一个实际的文件系统 FUSE, 而 FUSE 文件系统则是将数据通过/dev/fuse 设备文件递交给了 GlusterFS client 端。可以 将 FUSE 文件系统理解为一个代理。
(4) GlusterFS client 收到数据后,client 根据配置文件对数据进行处理。
(5) 经过 GlusterFS client 处理后,通过网络将数据传递至远端的 GlusterFS Server, 并且将数据写入服务器存储设备。
4.支持卷类型
- 分布式卷
- 条带卷
- 复制卷
- 分布式条带卷
- 分布式复制卷
- 条带复制卷
- 分布式条带复制卷
三、部署
四个node节点都需要给四块盘
都关闭防火墙
脚本做磁盘分区并挂载
#配置各个节点的/etc/hosts文件(所有节点操作)
echo "192.168.9.159 node1" >> /etc/hosts
echo "192.168.9.149 node2" >> /etc/hosts
echo "192.168.9.139 node3" >> /etc/hosts
echo "192.168.9.129 node4" >> /etc/hosts
#安装、启动GFS(所有节点操作)
unzip gfsrepo.zip
cd /etc/yum.repos.d/
mkdir repos.bak
mv * repos.bak/
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1
yum clean all && yum makecache
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service
#添加DNS,进行时间同步
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
ntpdate ntp1.aliyun.com
#添加节点到存储信任池中(在任意一个node中操作)
gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
#在每个node节点上查看群集状态
gluster peer status
========根据以下规划创建卷=========
卷名称 卷类型 Brick
dis-volume 分布式卷 node1(/data/sdb1)、node2(/data/sdb1)
stripe-volume 条带卷 node1(/data/sdc1)、node2(/data/sdc1)
rep-volume 复制卷 node3(/data/sdb1)、node4(/data/sdb1)
dis-stripe 分布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
dis-rep 分布式复制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)
#创建分布式卷,没有指定类型,默认创建的是分布式卷
gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force
gluster volume list
gluster volume start dis-volume
gluster volume info dis-volume
#指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷
gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
gluster volume start stripe-volume
gluster volume info stripe-volume
#指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷
gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force
gluster volume start rep-volume
gluster volume info rep-volume
#创建分布式条带卷
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
gluster volume start dis-stripe
gluster volume info dis-stripe
#创建分布式复制卷
gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
gluster volume start dis-rep
gluster volume info dis-rep
client端配置
cd /opt
unzip gfsrepo.zip
cd /etc/yum.repos.d/
mkdir repos.bak
mv * repos.bak
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1
yum clean all && yum makecache
yum -y install glusterfs glusterfs-fuse
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
echo "192.168.9.159 node1" >> /etc/hosts
echo "192.168.9.149 node2" >> /etc/hosts
echo "192.168.9.139 node3" >> /etc/hosts
echo "192.168.9.129 node4" >> /etc/hosts
mount.glusterfs node1:dis-volume /test/dis
mount.glusterfs node1:stripe-volume /test/stripe
mount.glusterfs node1:rep-volume /test/rep
mount.glusterfs node1:dis-stripe /test/dis_stripe
mount.glusterfs node1:dis-rep /test/dis_rep
df -h
查看卷
1.查看GlusterFS卷
[root@node1 ~]# gluster volume list
2.查看所有卷的信息
[root@node1 ~]# gluster volume info
3.查看所有卷状态
[root@node1 ~]# gluster volume status
4. ####停止一个卷
[root@node1 ~]# gluster volume stop dis-stripe
5. 删除一个卷
[root@node1 ~]# gluster volume delete dis-stripe
6.黑白名单
[root@node1 ~]# gluster volume set dis-rep auth.allow 192.168.255.*
##设置192.168.255.0网段的所有IP地址 都能访问dis-rep卷(分布式复制卷)
volume set: success