GlusterFS系统是一个可扩展的网络文件系统,相比其他分布式文件系统,GlusterFS具有高扩展性、高可用性、高性能、可横向扩展等特点,并且其没有元数据服务器的设计,让整个服务没有单点故障的隐患
一 环境准备
准备两台服务器
- 每台主机至少两块磁盘,一块用于安装OS,其它的用于GlusterFS storage;
- 安装CentOS7 操作系统(xfs文件系统);
- 主机名分别命名为server1和server2;
格式化并挂接存储块
假设/dev/sdb1分区为准备好的GlusterFS storage(安装时已分配)。第一步的格式化非必要,CentOS的磁盘已经被格式化未xfs格式。
#mkfs.xfs -i size=512 /dev/sdb1
#mkdir -p /data/brick1
#echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab
#mount -a && mount
二 源码编译&安装
以下四个步骤在两台服务器都需要运行。
epel库安装###
由于有几个依赖在系统自带的source源里面没有,所以先安装了一个epel源。
# wget https://mirrors.ustc.edu.cn/epel//7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
# rpm -ivh epel-release-7-11.noarch.rpm
# yum clean all
# yum update
依赖安装
GlusterFS源码编译所需要的依赖库。
yum install autoconf automake bison cmockery2-devel dos2unix flex fuse-devel glib2-devel libacl-devel libaio-devel libattr-devel libcurl-devel libibverbs-devel librdmacm-devel libtirpc-devel libtool libxml2-devel lvm2-devel make openssl-devel pkgconfig pyliblzma python-devel python-eventlet python-netifaces python-paste-deploy python-simplejson python-sphinx python-webob pyxattr readline-devel rpm-build sqlite-devel systemtap-sdt-devel tar userspace-rcu-devel
源码编译&安装
两台服务器都需要进行源码的编译和安装。
# wget https://download.gluster.org/pub/gluster/glusterfs/4.1/4.1.4/glusterfs-4.1.4.tar.gz
# tar -xzvf glusterfs-4.1.4.tar.gz
# cd glusterfs-4.1.4
# ./autogen.sh
# ./configure --without-libtirpc
# make && make install
启动gluster
# glusterd
GlusterFS 默认地把动态生成的配置数据存放于/var/lib/glusterd目录下,日志数据放于/var/log下。
三 卷设置
设置可信任的存储池
在两台服务器的/etc/hosts上做好相互之间的主机名和IP的解析映射:
10.19.85.150 server1
10.19.85.148 server2
在主机server1上:
#gluster peer probe server2
在主机server2上:
#gluster peer probe server1
建立一个GlusterFS 卷
GlusterFS 卷共有三基本类型,分别是Distributed(分布存储)、Striped(将一个文件分成多个固定长度的数据,分布存放在所有存储块,相当于RAID0)、Replicated(镜像存储,相当于RAID1)。基于striped和replicated,结合使用distributed后,又可以扩展出分布式分片存储卷和分布式镜像存储卷两种新的类型。而后两种扩展类型并没有新的命令格式,仅是通过设置数据冗余份数和添加进逻辑卷的bricks数量来动态定义的。Striped类型的卷可以在单台机器上设置成功,其他两个类型至少需要两台机器。详细内容参照Setting up GlusterFS Volumes。
设置Replicated类型的卷
在两台主机上:
# mkdir /data/brick1/gv0
在两台主机中的任一个上面执行以下命令:
#gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0 #gluster volume start gv0
查看存储卷的状态:
#gluster volume info
设置Striped类型的卷
在两台主机上:
# mkdir /data/brick1/gv1
在两台主机中的任一个上面执行以下命令:
# gluster volume create gv1 stripe 2 transport tcp server1:/data/brick1/gv1 server2:/data/brick1/gv1
设置Distributed类型的卷
在两台主机上:
# mkdir /data/brick1/gv2
在两台主机中的任一个上面执行以下命令:
#gluster volume create gv2 server1:/data/brick1/gv2 server2:/data/brick1/gv2
启动卷
设置完了之后需要启动卷
#gluster volume start gv0
四 使用方法
把已启动的卷挂载到指定目录下
#mount -t glusterfs server1:/gv0 /mnt
挂载成功后就可以尽情的玩耍了!
网友评论