一、GlusterFS介绍及系统环境
1、GlusterFS简介
Gluster File System是一款自由软件,主要由ZRESEARCH公司负责开发,是一款分布式存储系统,分布式文件系统就是将固定于某个点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。通过网络进行节点间的通信和数据传输。GlusterFS上手也比较简单,它有几种工作模式,类似于我们常见的Raid组合,适用于大文件的共享存储,对小文件并不是太友好。
2、GlusterFS优缺点
-
优点
- 无元数据服务设计,弹性HASH
- 高性能:PB级容量、GB级吞吐量、数百集群规模
- 用户空间模块化堆栈式设计
- 高可用性,支持复制和自修复
- 适合大文件存储
-
缺点
- 小文件性能表现差
- 系统OPS表现差
- 复制存储利用率低(HA和纠删码方案)
3、系统环境
操作系统:Red Hat Enterprise Linux Server release 7.3 (Maipo)
server1(需要一块新磁盘):userspace-rcu、GlusterFS
server2(需要一块新磁盘):userspace-rcu、GlusterFS
二、userspace-rcu安装(server1、server2)
安装包百度网盘下载链接: https://pan.baidu.com/s/1F7koyA-PXlTY_miutoVdKw 提取码: pdx7
github安装链接:https://github.com/urcu/userspace-rcu
安装glusterfs需要依赖userspace-rcu!!!
1、安装依赖和下载userspace-rcu
[root@server1 ~]# yum install -y autoconf automake libtool
[root@server1 ~]# wget https://github.com/urcu/userspace-rcu/archive/v0.7.17.tar.gz
2、解压安装
[root@server1 ~]# tar xf v0.7.17.tar.gz
[root@server1 ~]# cd userspace-rcu-0.7.17/
[root@server1 userspace-rcu-0.7.17]# ./bootstrap
[root@server1 userspace-rcu-0.7.17]# ./configure
[root@server1 userspace-rcu-0.7.17]# make && make install
[root@server1 userspace-rcu-0.7.17]# ldconfig
三、GlusterFS安装(server1、server2)
1、安装依赖和下载
[root@server1 ~]# wget https://download.gluster.org/pub/gluster/glusterfs/old-releases/3.6/3.6.9/glusterfs-3.6.9.tar.gz
[root@server1 ~]# yum install -y flex openssl-devel bison libacl-devel sqlite-devel libxml2-devel python-devel
2、编译安装
[root@server1 ~]# tar xf glusterfs-3.6.9.tar.gz
[root@server1 ~]# cd glusterfs-3.6.9/
[root@server1 glusterfs-3.6.9]# ./configure --prefix=/usr/local/glusterfs
[root@server1 glusterfs-3.6.9]# make && make install
3、设置环境变量
[root@server1 ~]# echo "export PATH=\$PATH:/usr/local/glusterfs/sbin" >>/etc/profile
[root@server1 ~]# . /etc/profile 或 source /etc/profile ###声明环境变量
四、GlusterFS配置复制模式
复制模式,既AFR, 创建volume 时带 replica x 数量: 将文件复制到 replica x 个节点中。
配置官网文档:https://docs.gluster.org/en/latest/Install-Guide/Configure/
其他模式可以参考官网:https://docs.gluster.org/en/latest/Administrator Guide/Setting Up Volumes/
1、启动服务并添加server2
[root@server1 ~]# glusterd ###启动server1
[root@server2 ~]# glusterd ###启动server2
[root@server1 ~]# gluster peer probe server2 ###后面接主机名或IP
peer probe: success.
2、查看状态
[root@server1 ~]# gluster peer status
Number of Peers: 1
Hostname: 10.10.10.2
Uuid: e67ec36c-3a8d-4eb0-83e3-bfccfbf30ab2
State: Peer in Cluster (Connected)
Other names:
server2
3、创建卷并启动
### 这里我们把我们分号的盘格式化后挂载到/data/gluster
[root@server1 ~]# mkdir -p /data/gluster
[root@server2 ~]# mkdir -p /data/gluster
[root@server1 ~]# gluster volume create test-volume replica 2 transport tcp server1:/data/gluster/ server2:/data/gluster/ force
volume create: test-volume: success: please start the volume to access data
[root@server1 ~]# gluster volume start test-volume
volume start: test-volume: success
4、查看卷状态
[root@server1 ~]# gluster volume info
Volume Name: pub
Type: Replicate
Volume ID: d3616ceb-f8d1-4da8-8025-0aba5d5582be
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: server1:/data/gluster/
Brick2: server2:/data/gluster/
5、挂载卷并使用
这样我们便可以在server1中把数据写入到test目录中,会自动同步到server2中!!!
[root@server1 ~]# mkdir /test
[root@server2 ~]# mkdir /test
### 这里可以使用本机IP或主机名
[root@server1 ~]# mount.glusterfs server1:/test /data/gluster/
[root@server2 ~]# mount.glusterfs server2:/test /data/gluster/