CentOS7下安装并使用GlusterFS过程记录

本文记录了centos7下安装并使用glusterfs的过程。

安装CentOS7

此次安装是采用的虚拟机镜像安装,centos7镜像名为CentOS-7-x86_64-DVD-1603-02.iso

安装过程基本都是采用默认点击下一步,选择的是最小安装

服务启停

我们使用一个linux系统一般首先想到的是用ssh登录。以前用redhat系统习惯了如下命令启停ssh服务:

1
2
3
/etc/init.d/sshd start #启动
/etc/init.d/sshd stop #停止
/etc/init.d/sshd status #查看运行状态

到了centos7下居然不行,搞得我还以为这个最小安装连ssh服务都省了。再试试用service命令:

1
2
3
service sshd start
service sshd stop
service sshd status

这样是可以的,说明ssh服务是安装了的。下面以启停防火墙的命令演示一下centos7下更常用的服务启停方式:

1
2
3
4
5
systemctl start firewalld #启动
systemctl stop firewalld #停止
systemctl status firewalld #状态
systemctl enable firewalld #开机启动
systemctl disable firewalld #开机关闭

既然说到防火墙了,有必要记录下linux下如何启停selinux:

1
2
3
4
getenforce #查看selinux状态
setenforce 0 #关闭selinux
setenforce 1 #启动selinux
vi /etc/selinux/config #永久关闭"SELINUX=disabled"

这里标注一下:在需要建网络连接的环境下最好把防火墙和selinux都关了,不然要设置防火墙规则还挺费劲。

设置镜像yum源

centos7安装完成后,登录系统,输入ifconfig居然提示命令不存在,看来最小安装把这个都省略了。再试试yum命令,这个有装,那就先用yum把ifconfig装上吧。

这时又面临另一个问题:当前系统根本没联网。那怎么用yum安装相关应用呢?这时就需要那个centos安装镜像了。linux下一切皆文件,设备也不例外,一般光驱设备对应的是/dev/sr0,挂载之:

1
mount -o loop /dev/sr0 /mnt

接着要修改yum配置使从本地源安装,修改/etc/yum.repos.d/CentOS-Media.repo文件内容如下:

1
2
3
4
5
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
gpgcheck=0
enabled=1

先把yum其他的配置都移走,执行yum update命令更新一下yum安装源。这时可以用yum安装ifconfig了,但是忘了ifconfig命令是哪个包的了,试试如下命令:

1
yum search ifconfig

这样能查出来ifconfig是属于net-tools包的,那就执行yum install net-tools安装之。安装后再执行ifconfig命令就可以看到网卡运行情况了。

设置ip

下面是设置连接互联网,修改/etc/sysconfig/network-scripts/ifcfg-enp0s3后重启系统。修改后的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=e027eb65-791a-48cc-bc6b-17a2fba58aae
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.51.184
GATEWAY=192.168.51.200
DNS1=114.114.114.114
DNS2=8.8.8.8

设置国内yum源

上面有的是配置文件中默认的,不用改。配置文件名也要根据实际网卡实际名称定。 重新登录系统后用ifconfig查看一下果然生效了,测试一下是否能连通外网ping www.163.com,连通后就可以设置163的yum源了,因为国外的太慢。设置过程如下:

1
2
3
4
5
cd /etc/yum.repos.d/
curl http://mirrors.163.com/.help/CentOS7-Base-163.repo -O
yum clean all
yum makecache
yum update

更新了一堆东西,不管了,能用就行。 为什么要添加yum源?因为要安装glusterfs服务,这是在centos镜像中没有的。设置yum源后再看看能否安装glusterfs不:

1
yum search centos-release-gluster

执行上面命令后如果出现相应结果,说明就可以进入glusterfs安装阶段了。

安装GlusterFS

环境准备

GlusterFS是一个分布式文件系统。所谓分布式文件系统,我的理解就是一份文件可以存到多台机器上,一个机器挂了只要还有正常的就不影响文件继续存储。既然是分布式就需要多台电脑才能看效果,这里直接粘上/etc/hosts的部分内容:

1
2
3
192.168.51.231 master1
192.168.51.233 master2
#192.168.51.184 client

其中master1和master2作为glusterfs的服务端负责创建分布式文件系统,client作为glusterfs的客户端只需要把glusterfs服务器上创建的存储卷挂载到本地,然后对文件操作者来说就是透明的了。注意每个机器上都要修改/etc/hosts添加上面的两行,client行是不需要加的,这里写上只是为了表示一下glusterfs的工作关系。

安装GlusterFS服务端

在master1和master2上分别执行命令:

1
2
yum install centos-release-gluster
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

启动GlusterFS服务

在master1和master2上分别执行命令:

1
2
3
4
systemctl start glusterd.service #启动gluster服务
systemctl enable glusterd.service #设置开机启动gluster服务
systemctl stop firewalld.service
systemctl disable firewalld.service

安装GlusterFS客户端

glusterfs客户端的安装就简单了,在client机器上运行yum install glusterfs glusterfs-fuse就可以了,后面看如何使用glusterfs。

使用GlusterFS

创建GlusterFS集群

在一台机器如master1上执行命令:

1
2
gluster peer probe master1
gluster peer probe master2

成功的话会输出peer probe: success。然后分别在master1和master2上执行命令查看一下集群状态:

1
gluster peer status

这时master1和master2已经互为主从节点了。

如果想卸载某个节点GlusterFS磁盘则执行命令gluster peer detach master2

创建存储卷volume

在master1和master2上分别执行命令:

1
2
mkdir -p /opt/gluster/data #创建数据存储目录
gluster volume create models replica 2 master1:/opt/gluster/data master2:/opt/gluster/data

执行上面的命令时要着重强解释一下modelsreplica,其中models是存储卷的名字,原则上可以随便起,而replica则代表存储卷的类型为复制模式,表示每个glusterfs服务节点上都保存一份文件(后面会演示)。可以创建其他类型的存储卷,可以参考AB这两篇文章。

存储卷的启停

在master1和master2上分别执行命令:

1
2
3
4
5
gluster volume list #列出glusterfs中的所有存储卷
gluster volume info #查看存储卷状态
gluster volume start models #启动名为models的存储卷
gluster volume stop models #停止名为models的存储卷
gluster volume delete models #删除名为models的存储卷

客户端挂载服务端存储卷

在client机器上执行命令:

1
2
3
mkdir -p /opt/gfsmnt #创建挂载存储卷的目录
mount -t glusterfs master1:models /opt/gfsmnt/ #挂载存储卷
umount -t glusterfs /opt/gfsmnt/ #卸载存储卷

挂载成功后使用df -h命令查看一下挂载情况。然后在/opt/gfsmnt目录下随便建立几个文件看看效果。反复挂载、卸载看是不是达到了分布式存储的目的。

总结

这篇就是个GlusterFS的入门操作记录,要想学习更高级的操作可以搜索glusterfs 安装 配置