一、GlusterFS概述
1.GlusterFS是一个开源的分布式文件系统
Brick (存储块) :
指存储池中服务器上对外提供的存储目录,是GlusterFS中的基本存储单元
Volume (逻辑卷) :
即挂载卷,一个逻辑卷是一组Brick 的集合,类似于LVM中的逻辑卷
2.GlusterFs的卷类型
分布式卷:文件级的RAIDO,不具有容错能力
条带卷(stripe):类似RAIDO,文件被分成数据块并以轮询的方式分布到多个BrickServer.上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高,但是不具备冗余性
复制卷(replica):文件级RAID 1,具有容错能力,两台gfs一主一备,可以使用复制卷
分布式条带卷:兼具分布式卷和条带卷的特点,创建一个分布式条带卷最少需要4台服务器
分布式复制卷:兼具分布式卷和复制卷的特点,主要用于需要冗余的情况下
条带复制卷:同时具有条带卷和复制卷的特点
分布式条带复制卷:三种基本卷的复合卷
---------------------------------------------------------------------------
二、服务端部署
1、环境准备(主从,配置相同,使用复制卷)
主节点:172.16.99.51 node1
从节点:172.16.99.52 node2
2、关闭防火墙和selinux(主从节点)
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/conf
SELINUX=disabled
3、更改节点名称(主从节点)
#hostnamectl set-hostname node1/2
#su
4、主机名与IP映射,修改hosts(主从节点)
#echo "172.16.99.51 node1" >> /etc/hosts
#echo "172.16.99.52 node2" >> /etc/hosts
5、磁盘分区并挂载(主从节点:挂载卷不能使用跟分区所在磁盘)
#yum -y install xfsprogs
#pvcreate /dev/sdb
#vgcreate vg_gfs /dev/sdb
#lvcreate -l100%free -n lv_gfs /dev/vg_gfs
#mkfs.xfs /dev/vg_gfs/lv_gfs
#mount /dev/vg_gfs/lv_gfs /data
#echo "/dev/vg_gfs/lv_gfs /data xfs defaults 0 0" >> /etc/fstab
6、创建挂载目录(主从节点)
挂载目录数量和名称根据实际情况确定
#mkdir -p /data/mnt1
#mkdir -p /data/mnt2
7、安装yum源(主从节点)
#yum -y install centos-release-gluster
8、安装GlusterFS(主从节点)
#yum -y install glusterfs glusterfs-fuse glusterfs-server
9、启动GlusterFS(主从节点)
#systemctl start glusterd
#systemctl enable glusterd
10、组建集群(只在主节点上增加从节点即可)
#gluster peer probe node2
11、查看集群状态(主从节点)
#gluster peer status
12、创建复制卷(只在主节点上创建即可)
#gluster volume create gfs_mnt1 replica 2 node1:/data/mnt1 node2:/data/mnt1
#gluster volume create gfs_mnt2 replica 2 node1:/data/mnt2 node2:/data/mnt2
13、启动复制卷(只在主节点上启动即可)
#gluster volume start gfs_mnt1
#gluster volume start gfs_mnt2
14、查看复制卷信息(主从节点都可)
#gluster volume info gfs_mnt1
#gluster volume info gfs_mnt2
-------------------------------------------------------------------------
三、客户端挂载
1、准备挂载客户端:172.16.99.53
2、主机名与IP映射,修改hosts
#echo "172.16.99.51 node1" >> /etc/hosts
#echo "172.16.99.52 node2" >> /etc/hosts
3、创建挂载目录
挂载目录数量和名称根据实际情况确定
#mkdir -p /data/mnt1
#mkdir -p /data/mnt2
4、安装yum源
#yum -y install centos-release-gluster
5、安装GlusterFS客户端
正常只需要安装:yum -y install glusterfs glusterfs-fuse
若无法挂载则安装:yum -y install glusterfs-client
6、#modprobe fuse //将FUSE可加载内核模块(LKM)添加到Linux内核
#dmesg | grep -i fuse //验证是否已加载FUSE模块
[ 569.630373] fuse init (API version 7.22)
7、挂载
#mount -t glusterfs node1:gfs_mnt1 /data/mnt1
#mount -t glusterfs node1:gfs_mnt2 /data/mnt2
8、检查挂载
#df -h
---------------------------------------------------------------------------
四、常用命令
#gluster peer status //查看集群状态
#gluster volume list //查看所有卷
#gluster volume info //查看所有卷信息
#gluster volume info gfs_mnt1 //查看单个卷信息
#gluster volume status //查看所有卷状态
#gluster volume start/stop gfs_mnt1 //启动或停止一个卷
#gluster volume delete gfs_mnt2 //删除一个卷
#gluster volume set gfs_mnt1 auth.allow 172.16.99.* //仅允许99段挂载gfs_mnt1卷
---------------------------------------------------------------------------
五、磁盘限额quota:对挂载点根目录或某个目录进行空间限额
命令格式:
# gluster volume quota VOLNAME limit-usage PATH HARD_LIMIT SOFT_LIMIT
HARD_LIMIT:目录限额(多少GB或TB)
SOFT_LIMIT:默认是80%,当使用率超过时,系统将会记录日志到/var/log/glusterfs/bricks/中
具体命令:
#gluster volume quota gfs_mnt1 enable 激活quota功能
#gluster volume quota gfs_mnt1 disable 关闭quota功能
#gluster volume quota gfs_mnt1 limit-usage / 10GB 90% 对挂载点根目录限制
#gluster volume quota gfs_mnt1 list 信息列表
#gluster volume set gfs_mnt1 features.quota-timeout 5 设定客户端5秒重读一次quota的配置信息
#gluster volume quota gfs_mnt1 remove / 删除目录的quota设置
备注:若修改配额大小,直接再执行一次限额命令即可
---------------------------------------------------------------------------
六、单节点
单节点正常安装和启动gfs
启动后直接创建分布式卷:
#gluster volume create dis_volume 节点ip:/本地目录
#gluster volume start dis_volume
dis_volume为自定义卷名称