GFS简介
- GlusterFS是一个开源的分布式文件系统。
- 它由存储服务器、客户端以及NFS/Samba存储网关组成。
- 没有元数据服务器组件。
- 配置方便,稳定性好。
- 可轻松达到PB级容量,数千个节点。
- 采用弹性哈希算法,没有中心节点,所有节点全部平等
GFS特点
- 高可扩展性。
- 高性能。
- 高可靠性和稳定性。
- 灵活的配置
GFS术语
- Brick:实际存储用户数据的服务器。
- Volume:多个Brick的逻辑集合。
- FUSE:用户空间的文件系统。
- VFS:内核态的虚拟文件系统。
- Glusterd:运行在存储节点的进程。
GFS工作流程
- 客户端或应用程序通过GlusterFS的挂载点访问数据。
- Linux系统内核通过VFS API收到请求并处理。
- VFS将数据递交给FUSE内核文件系统,FUSE文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS客户端。
- GlusterFS客户端收到数据后,根据配置文件的配置对数据进行处理。
- 通过网络将数据传递至远端的GlusterFS服务器,并且将数据写入到服务器存储设备上。
GFS卷类型
- 分布式卷:提高存储容量和扩展性,但不提供冗余保护。
- 复制卷:提供冗余保护,但会降低存储容量和扩展性。
- 条带卷:提高读写性能,但不提供冗余保护。
- 分布式复制卷:提供冗余保护和扩展性。
- 分布式条带卷:提供读写性能和扩展性。
部署GFS群集
创建卷 ----- 创建卷 -----
#根据规划创建如下卷:
卷名称 卷类型 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)
1,创建分布式卷
#创建分布式卷,没有指定类型,默认创建的是分布式卷
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
2.创建条带卷
#指定类型为 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
3.创建复制卷
#指定类型为 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
4.创建分布式条带卷
#指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷
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
5, 创建分布式复制卷
指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷
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
gluster volume list
----- 部署 Gluster 客户端 -----
1. 安装客户端软件
将gfsrepo 软件上传到/opt目下
cd /etc/yum.repos.d/
mkdir repo.bak
mv CentOS-* repo.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
2.创建挂载目录
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
ls /test
3.配置 /etc/hosts 文件
echo “192.168.10.20 node1” >> /etc/hosts
echo “192.168.10.21 node2” >> /etc/hosts
echo “192.168.10.30 node3” >> /etc/hosts
echo “192.168.10.31 node4” >> /etc/hosts
4.挂载 Gluster 文件系统
#临时挂载
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 -th