GlusterFS源码安装

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

挂载成功后就可以尽情的玩耍了!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,082评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,068评论 2 89
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,939评论 0 5
  • 今天我们的新电脑到啦,我们都非常兴奋,尤其是我,很久没有用电脑的人,哈哈哈,终于等到他晚上回来,我们一起设置电脑,...
    野败o_O阅读 232评论 0 1
  • 一滴水,如何才能不干涸?这要从我的三个梦想说起。 一、作家梦 我有了作家梦,大概是我进入中文系,开始看不起别人文章...
    名著阅读陈老师阅读 1,286评论 2 3