在Centos上安装使用GlusterFS

最近接触了下GlusterFS,所以就想着在自己的笔记本上的虚拟机里安装个测试环境。起初想要从https://github.com/gluster/glusterfs/ 上下载一个build然后编译安装, 但是试了很多次,在make时总是失败,折腾了两天后,彻底死心了...

1. 先介绍下我的实验环境,由于笔记本配置不是很高,所以我就只开了两个CentOS7的虚拟机,网络选择NAT,以确保能够连接到外网,都做server,其中一台还要兼做client,没有单独的client端。还有两个server要能够相互解析hostname,而我这里又没有DNS服务器,所以要把下面的两行信息加入到/etc/hosts文件里。

192.168.133.145      node01.lab.example.com

192.168.133.135      node02.lab.exampe.com

2. 下载安装yum源头,非特殊说明,以下操作步骤在两台server上均要执行,贴出的命令以node01为例

[[email protected] ~]# wget -P /etc/yum.repos.d/ http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo

3. 安装glusterfs的主要组件:

[[email protected] ~]# yum install -y glusterfs glusterfs-server glusterfs-fuse

[[email protected] ~]# rpm -qa | grep gluster
glusterfs-fuse-3.11.1-1.el7.x86_64
glusterfs-3.11.1-1.el7.x86_64
glusterfs-cli-3.11.1-1.el7.x86_64
glusterfs-server-3.11.1-1.el7.x86_64
glusterfs-client-xlators-3.11.1-1.el7.x86_64
glusterfs-api-3.11.1-1.el7.x86_64
glusterfs-libs-3.11.1-1.el7.x86_64

4. 启动glusterfs service,并设置为开机自启动

[[email protected] ~]# systemctl start glusterd
[[email protected] ~]# systemctl enable glusterd
Created symlink from /etc/systemd/system/multi-user.target.wants/glusterd.service to /usr/lib/systemd/system/glusterd.service.

至此,glusterfs已经成功安装到两台server上了,接下来做一些简单使用测试

5. 创建trust storage pool(信任存储池?不知道这个翻译准不准确,暂且这样用吧)

1)如果开启了firewall或者iptables服务,我们需要先放开相应的服务,以firewall为例:

[[email protected] ~]# firewall-cmd --add-service=glusterfs

[[email protected] ~]# firewall-cmd --runtime-to-permanent

2)在node01上创建信任池,也可以在node02上执行,总之只需在一台服务器上执行以下命令即可:

[[email protected] ~]# gluster peer probe node02.lab.example.com

[[email protected] ~]# gluster peer status
Number of Peers: 1

Hostname: node02.lab.example.com
Uuid: 707099ff-5c39-467e-950c-9fef9ca7f701
State: Peer in Cluster (Connected)
[[email protected] ~]# gluster pool list
UUID                                    Hostname                State
707099ff-5c39-467e-950c-9fef9ca7f701    node02.lab.example.com  Connected
2be7bf8f-fba4-4b3f-a510-31d99c7c9ccf    localhost               Connected
[[email protected] ~]#

6. 创建Volume以便进行挂载测试,glusterfs上可以创建多种类型的volume,例如简单点的distributed volume, replicated volume,复杂点的dispersed volume,当然也可以创建复合volume,如distributed-replicated volume.今次我们先来个简单的,创建一个2副本的replicated volume.

---我这里使用的是瘦逻辑卷做的底层存储,所以开始前先把瘦逻辑卷做出来:

[[email protected] ~]# pvs
  PV         VG        Fmt  Attr PSize  PFree
  /dev/sdb   vg_bricks lvm2 a--  20.00g 17.99g
[[email protected] ~]# vgs
  VG        #PV #LV #SN Attr   VSize  VFree
  vg_bricks   1   2   0 wz--n- 20.00g 17.99g
[[email protected] ~]# lvs
  LV       VG        Attr       LSize  Pool  Origin Data%  Meta%  Move Log Cpy%Sync Convert
  pool1    vg_bricks twi-aotz--  2.00g              0.55   1.17                           
  thinvol1 vg_bricks Vwi-a-tz--  2.00g pool1        0.55                                  
[[email protected] ~]#

---格式化逻辑卷并进行挂载,在格式化时注意要加参数-i size=512,这个是glusterfs需要的

[[email protected] ~]# mkfs -t xfs -i size=512 /dev/mapper/vg_bricks-thinvol1

[[email protected] ~]# mkdir /bricks/thinvol1/

[[email protected] ~]# mount /dev/mapper/vg_bricks-thinvol1 /bricks/thinvol1/

建议将挂载步骤写入到/etc/fstab里,以确保实现开机自动挂载

glusterfs是基于brick的,而且我们的brick不能是mount point,所以还要创建一个brick目录在挂载目录下

[[email protected] ~]# mkdir /bricks/thinvol1/brick/

如果开启了selinux,还需要配置安全上下文

[[email protected] ~]# chcon -R -t glusterd_brick_t /bricks/thinvol1/

7. Create and start volume

准备工作到此可以告一段落了,现在我们可以创建volume了

[[email protected] ~]# gluster volume create RepVol replica 2 \
> node01.lab.example.com:/bricks/thinvol1/brick \
> node02.lab.example.com:/bricks/thinvol1/brick

创建完后,volume还不能立即使用,我们还需要start volume

[[email protected] ~]# gluster volume start RepVol

[[email protected] ~]# gluster volume info RepVol
 
Volume Name: RepVol
Type: Replicate
Volume ID: 2ae04508-a5ec-47f6-a436-e3a87ee39ced
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node01.lab.example.com:/bricks/thinvol1/brick
Brick2: node02.lab.example.com:/bricks/thinvol1/brick

...

8. 在Client端使用Volume,这里我们假设我们的node02是一个Client节点

Glusterfs支持的挂载类型根据挂载方式不同可以分为以下三类:

1)Native mount,需要安装glusterfs-fuse,本身支持高可用

2)NFS 方便简单,在创建完 volume后,glusterfs会自动启动一个nfs共享进程,server端只需在firewall中打开nfs相关的access即可,无需其他配置

firewall-cmd --add-service=nfs

firewall-cmd --add-service=rpc-bind

3)Samba 配置较上面两种类型稍显复杂,但也有优点,就是可以支持Windows挂载,这里我们不做详细介绍了

---使用Native mount挂载gluster volume 到node02节点的/test目录下

[[email protected] glusterfs]# mount -t glusterfs node02.lab.example.com:RepVol /test/
[[email protected] glusterfs]# df -h | grep test
node02.lab.example.com:RepVol   2.0G   33M  2.0G   2% /test

[[email protected] ~]# cd /test
[[email protected] test]# touch file{1..100}.txt

[[email protected] test]# ls -l /test/ | grep -v total | wc -l
100

分别在node01 和node02 上验证下,发现在两个节点的brick里面都存在100个测试文件:

[[email protected] ~]# ls -l /bricks/thinvol1/brick/ | grep -v total | wc -l
100

[[email protected] test]# ls -l /bricks/thinvol1/brick/ | grep -v total | wc -l
100

时间: 2024-10-12 17:59:04

在Centos上安装使用GlusterFS的相关文章

Linux系统入门学习:在CentOS上安装phpMyAdmin

问题:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库.在CentOS上安装phpMyAdmin的最佳方法是什么? phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具.虽然已经存在着一些诸如Adminer的轻量级数据库管理工具, 但是phpMyAdmin还是更加广泛应用于网站管理员之中来进行各种MySQL/MariaDB的管理任务.它支持几乎所有MySQL数据库/表的相关操作,比如浏

CentOS上安装Hadoop2.7,添加数据节点,运行wordcount

安装hadoop的步骤比较繁琐,但是并不难. 在CentOS上安装Hadoop2.7 1. 安装 CentOS,注:图形界面并无必要 2. 在CentOS里设置静态IP,手工编辑如下4个文件 /etc/hosts /etc/sysconfig/netwok /etc/hostname /etc/sysconfig/network-scripts/ifcfg-eno1677773 3. 关闭防火墙 Close firewalld systemctl stop firewalld.service #

什么是EPEL 及 Centos上安装EPEL

RHEL以及他的衍生发行版如CentOS.Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安全稳定是重点,官方的rpm repository提供的rpm包也不够丰富,很多时候需要自己编译那太辛苦了,而EPEL恰恰可以解决这两方面的问题. 什么是EPEL? EPEL的全称叫 Extra Packages for Enterprise Linux .EPEL是由 Fedora 社区打造,为 R

NoSql1 在Linux(CentOS)上安装memcached及使用

前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看下这部分的基础知识,所以现在打算好好把这两部分的基础再看一看.我会把看到的东西努力记录下来,给自己以后留个参考,如果能帮助到大家,自然是更好了~. 1.在Linux(CentOS)上安装memcached及使用.http://www.cnblogs.com/PurpleDream/p/4298208

在Linux(CentOS)上安装MySql详细记录

前记:  毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业.之前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境.对于Linux+Tomcat(或其他容器)+Mysql这套之前没用用过.所以利用这周末的我在阿里云上49元搞了个linux(centos 64位)的服务器. 刚开始先装了JDK1.6,安装了Tomcat6.0.这过程中没有遇到太大的问题, 小问题也google一下就解决了.而周六晚上开始安装Mysql,于是到今天下午为

centos上安装git

按照这篇文章 安装依赖: yum install curl yum install curl-devel yum install zlib-devel yum install openssl-devel yum install perl yum install cpio yum install expat-devel yum install gettext-devel 下载git源码包: https://github.com/git/git/releases 安装: cd /git源码包解压路径

在centos上安装skyeye

中间遇到的问题:1,make的时候,提示gui/x.cc:42:22: error: X11/Xlib.h: No such file or direct解决:yum install libX11-devel2, error: X11/xpm.h: No such file or directory解决:yum install libXpm-devel 参考:1,SkyEye的使用(一)http://blog.csdn.net/htttw/article/details/72267542,sky

在Centos上安装RabbitMQ流程(转)

在Centos上安装RabbitMQ流程------------------------ 1. 需求 由于项目中要用到消息队列,经过ActiveMQ与RabbitMQ的比较,最终选择了RabbbitMQ做为我们的消息系统,但是ActiveMQ在效率和可扩展性上都不错,只是网上很多人反应它会时常崩溃,而且随着消息并发数的增加,时常会出现连接很慢的情况.   目前我测试的服务器系统信息如下: LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1

CentOS上安装MongoDB速记

测试环境版本CentOS 6.5 先创建安装目标文件夹并进入至该文件夹: mkdir /opt/mongodb cd /opt/mongodb 给mongodb创建用户及用户组: groupadd mongodb useradd -g mongodb mongodb 下载安装所需源文件: 这个下载很慢,我收藏mongodb 2.6.1版本 可以从这里下载:http://pan.baidu.com/s/1nfAA6 或者从mongodb.org下载(很慢) curl -O http://downl