centos7下的glusterfs的安装与使用

时间:2022-03-16 18:24:41

环境说明:

两台虚拟主机,IP分别为192.168.1.222和192.168.1.233,分别装上glusterfs。

一、下载glusterfs源码包

https://download.gluster.org/pub/gluster/glusterfs/3.6/

如:glusterfs-3.6.9.tar.gz

二、编译安装

安装必要的依赖

> yum install flex bison openssl openssl-devel acl libacl libacl-devel sqlite-devel libxml2-devel python-devel

安装liburcu

https://github.com/urcu/userspace-rcu
> yum install autoconf automake libtool
> unzip userspace-rcu-master.zip
> cd userspace-rcu-master
> ./bootstrap
> ./configure
> make && make install
> ldconfig

解压并编译安装

> tar xf glusterfs-3.6.9.tar.gz
> cd glusterfs-3.6.9
> ./configure --prefix=/data/glusterfs
> make && make install

添加环境变量

> echo 'export PATH=/data/glusterfs/sbin:$PATH' >> /etc/profile
> source /etc/profile

  

三、使用glusterfs

分别启动两台主机上的glusterfs

> /data/glusterfs/sbin/glusterd

在222主机上配置可信池

> gluster peer probe 192.168.1.233

如果出现如下问题:
peer probe: failed: Probe returned with unknown errno 107
请查看防火墙是否关闭

查看可信池

> gluster peer status

要使用gluster必须要创建卷,卷有三种类型:
1、分布式卷,把数据写在不同的brick上。

在两台主机上分别创建exp1和exp2目录

> mkdir -p /data/exp1
> mkdir -p /data/exp2

创建分布式卷,exp-volume为卷名,可自定义

> gluster volume create exp-volume 192.168.1.222:/data/exp1 192.168.1.233:/data/exp2

查看卷信息

> gluster volume info

查看卷状态

> gluster volume status

  

2、复制卷

在两台主机上分别创建exp3和exp4目录

> mkdir -p /data/exp3
> mkdir -p /data/exp4

创建复制卷,复制两份,以tcp协议传输
注意brick数量与replica指定数相等

> gluster volume create rep-volume replica 2 transport tcp 192.168.1.222:/data/exp3 192.168.1.233:/data/exp4

  

3、条带卷,把一个文件分开存,像条带一样

在两台主机上分别创建exp5和exp6目录

> mkdir -p /data/exp5
> mkdir -p /data/exp6

创建条带卷
注意brick的数量与stripe指定数量相等

> gluster volume create str-volume stripe 2 transport tcp 192.168.1.222:/data/exp5 192.168.1.233:/data/exp6

分别启动我们上面创建的三种卷

> gluster volume start exp-volume
> gluster volume start rep-volume
> gluster volume start str-volume

安装gluster-clinet

> yum install glusterfs-client

挂载卷

> mkdir /mnt/m1 /mnt/m2 /mnt/m3
> mount.glusterfs 192.168.1.222:/exp-volume /mnt/m1
> mount.glusterfs 192.168.1.222:/rep-volume /mnt/m2
> mount.glusterfs 192.168.1.222:/str-volume /mnt/m3

我们创建几个文件写到/mnt/m1下

> echo '1' >> /mnt/m1/test1.txt
> echo '2' >> /mnt/m1/test2.txt
> echo '3' >> /mnt/m1/test3.txt

上面三个文件分别放在了222和233主机下的exp1和exp2目录。

我们创建文件到复制卷/mnt/m2下

> echo 'rep' >> /mnt/m2/rep.txt

rep.txt文件同时会存在222和233主机下的exp3和exp4目录下。

我们创建文件到条带卷/mnt/m3下

> echo '123456789' >> /mnt/m3/str.txt

str.txt文件会被折分成多个小文件保存在222和233主机下的exp5和exp6目录下。

三、分布式复制卷的创建与使用

分别在222和233主机上创建

> mkdir -p /data/t1 /data/t2

文件存放与这里的服务器顺序有关系
注意brick必须为replica指定数量K的N倍,brick以K个为一组,形成N个复制卷

> gluster volume create t-volume replica 2 transport tcp \
192.168.1.222:/data/t1 \
192.168.1.233:/data/t1 \
192.168.1.222:/data/t2 \
192.168.1.233:/data/t2

启动卷

> gluster volume start t-volume

挂载卷

> mkdir /mnt/m4
> mount.glusterfs 192.168.1.222:/t-volume /mnt/m4

创建文件测试

> echo '1' >> /mnt/m4/1.txt
> echo '1' >> /mnt/m4/2.txt
> echo '1' >> /mnt/m4/3.txt
> echo '1' >> /mnt/m4/4.txt

  

四、卷的设置

启用卷的配额

> gluster volume quota exp-volume enable

关闭卷的配额

> gluster volume quota exp-volume disable

设置配额大小,以系统挂载目录为根目录,即/mnt/m1/data

> gluster volume quota exp-volume limit-usage /data 10GB

查看卷的配额列表

> gluster volume quota exp-volume list

增加brick

> gluster volume add-brick exp-volume 192.168.1.222:/data/exp8

重新均衡一下卷,上面增加的卷才生效

> gluster volume rebalance exp-volume start

删除brick

> gluster volume remove-brick exp-volume 192.168.1.222:/data/exp8 force
> gluster volume rebalance exp-volume start