一、背景简介
最近在学习性能测试,首先想到如果能真是搭建个基础网站架构,肯定对进一步的学习有帮助,肯定比lordrunner自带的那个网站程序更有帮助。在搭建的过程中,因为是要建立个远程文件服务器,glusterfs是个不错的选择,搭建glusterfs服务器费了不少周折,折腾了一个多星期才搞定,在这里有必要总结下。
二、系统环境
环境中共3台服务器,IP分别是172.17.1.135 172.17.1.134 172.17.1.133,其中133和134作为glusterfs服务器端,135作为客户端挂载服务器端的卷。
三个服务器172.17.1.135 172.17.1.134 172.17.1.133的信息依次如下图所示,
三、编译安装
三台服务器上均执行以下安装步骤
# 添加 epel 软件源
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# 安装必要的依赖包
yum install -y aclocal autoconf aotuheader automake libtool
yum install -y automake autoconf libtool flex bison openssl-devel libxml2-devel python-devel libaio-devel libibverbs-devel librdmacm-devel readline-devel lvm2-devel glib2-devel userspace-rcu-devel libcmocka-devel
# 扫描整个磁盘,发现有以前安装过的glusterfs版本文件即删除,请酌情使用,本人就在这一点被坑了一个多星期,原因是反复安装了好多次glusterfs多个版本,多余的版本文件未清除,导致后来的glusterfs挂载出现版本不一致的问题。
find / | grep -i gluster | grep -Ei -v '/home|/tmp' | xargs rm -rf
yum -y remove `rpm -qa | grep -i gluster` 2>/dev/null
四、glusterfs文件系统的挂载使用
# 两个glusterfs服务器均添加两块硬盘,这里是/dev/sdb,然后在两台服务器上分别创建lv卷饼格式化为xfs文件系统饼挂载
parted -s -- /dev/sdb mktable gpt
parted -s -- /dev/sdb mkpart primary 2048s 100%
parted -s -- /dev/sdb set 1 lvm on
partx -a /dev/sdb
pvcreate /dev/sdb1
vgcreate vgglus1 /dev/sdb1
lvcreate -l 100%VG -n gbrick1 vgglus1
mkfs.xfs -i size=512 /dev/vgglus1/gbrick1
echo -e '/dev/vgglus1/gbrick1\t/data/gluster\txfs\tinode64,nobarrier\t0 0' >> /etc/fstab
mkdir -p /data/gluster/v1
mount /data/gluster
# 两个glusterfs服务器组成一个存储池,在172.17.1.134上执行以下命令,
gluster peer probe 172.17.1.133
# 创建glusterfs卷并启动,这里使用replica
gluster volume create gvol0 replica 2 172.17.1.133:/data/gluster/v1 172.17.1.134:/data/gluster/v1
gluster volume start gvol0
gluster volume info
# 客户端172.17.1.135挂载glusterfs卷
mkdir -p /data/gvol0
mount -t glusterfs 172.17.1.134:/gvol0 /data/gvol0