GlusterFS的安装与使用

#######################################
#####   网络架构                      #
#######################################
两台服务器 M1 M2
M1 为GlusterFS 主服务器,ip为192.168.1.138
M2 为GlusterFS 热备服务器,ip为192.168.1.139
M1 也是client客户端

(一) IP设置

#######################################
####   服务环境安装                 ###
#######################################
(一) fuse的安装
1 检查fuse是否安装
[[email protected] ~]# modprobe -l | grep fuse #检查是否已经安装了fuse,执行这条命令如果有东西输出则直接跳到第二步,如果没有东西输出则说明fuse没有安装则安装fuse

kernel/fs/fuse/fuse.ko
kernel/fs/fuse/cuse.ko

2 安装fuse
#tar -zxvf fuse-2.7.4glfs11.tar.gz

#cd fuse-2.7.4glfs11
#./configure

#make
#checkinstall

(二) 安装glusterFS(M1,M2上执行相同的操作)
[[email protected] ~]# cd /data/software/
[[email protected] software]# tar -zxvf glusterfs-3.4.0.tar.gz
[[email protected] glusterfs-3.4.0]# cd glusterfs-3.4.0
[[email protected] glusterfs-3.4.0]# ./configure --prefix=/data/apps/glusterfs
# 如果出现下面错误
checking for flex... no
checking for lex... no
configure: error: Flex or lex required to build glusterfs.
解决方法 [[email protected] glusterfs-3.4.0]# yum -y install flex
# 如果出现下面错误
configure: error: GNU Bison required to build glusterfs.
解决方法 [[email protected] glusterfs-3.4.0]# yum -y install bison
[[email protected] glusterfs-3.4.0]# make
[[email protected] glusterfs-3.4.0]# make install

# 检验安装是否成功
[[email protected] glusterfs-3.4.0]# ldconfig
[[email protected] glusterfs-3.4.0]# /home/data/apps/glusterfs/sbin/glusterfs --version # 输出版本信息,则说明安装成功

################################################
####    glusterfs 环境配置与客户端挂载           #
################################################
一 glusterfs 启动
[[email protected] glusterfs-3.4.0]# service glusterd start (M1,M2上都执行相同的操作)

二 添加防火墙规则   (M1,M2都做相同的操作,注意防火墙规则顺序) 注:防火墙部分等下再做测试
[[email protected] glusterfs-3.4.0]# iptables -I INPUT -p tcp --dport 24007 -j ACCEPT

[[email protected] glusterfs-3.4.0]# service iptables save

三 添加节点
[[email protected] glusterfs-3.4.0]# /data/apps/glusterfs/sbin/gluster peer probe 192.168.1.139 (只要在在M1上)

四 创建副本卷
[[email protected] ~]# mkdir /data/share  (M1,M2上创建的存储数据的文件夹)
[[email protected] ~]# mkdir /data/share

[[email protected] ~]# chown -R www:www /data/share
[[email protected] ~]# chown -R www:www /data/share

[[email protected] ~]# /data/apps/glusterfs/sbin/gluster volume create bbs_img replica 2 192.168.1.{138,139}:/data/share
volume create: bbs_img: success: please start the volume to access data  # 创建名称为bbs_img的副本卷用于挂载,分别存储在192.168.1.138,192.168.1.139的/data/share的文件夹中

[[email protected] ~]# /data/apps/glusterfs/sbin/gluster volume start bbs_img
volume start: bbs_img: success (启动副本卷可以在M1或者M2上执行)

五 挂载
在M1上创建挂载点
[[email protected] ~]# mkdir /data/wwwroot/web/share
[[email protected] ~]# chown -R www:www /data/wwwroot/web/share
[[email protected] glusterfs]# mount.glusterfs 192.168.1.138:/bbs_img /data/wwwroot/web/share  # 这里客户端可以挂载任意ip地址,可以是192.168.1.139,所得到的数据都是一样的

# 我们切换到www用户创建文件
[[email protected] glusterfs]# su -l www
[[email protected] share]$ echo "111111111111111" > 1.txt
[[email protected] share]$ echo "222222222222222" > 2.txt
# 注意我们不要在服务器上添加内容,这样会导致内容紊乱,应该直接在挂载点添加内容
# 此时在m1和m2上都创建了文件说明挂载已经成功了
[[email protected] share]$ ll /data/share/  # 每次卸载挂载这个文件夹的所有者都会切换成root,应该注意这点
total 16
-rw-rw-r-- 2 www www 16 Mar  9 01:50 1.txt
-rw-rw-r-- 2 www www 16 Mar  9 01:50 2.txt
[[email protected] ~]# ll /data/share/
total 16
-rw-rw-r-- 2 www www 16 Mar  9 01:50 1.txt
-rw-rw-r-- 2 www www 16 Mar  9 01:50 2.txt

################################################
##     glusterfs管理                               #
################################################

一 节点管理
1 查看节点状态
[[email protected] glusterfs]# /data/apps/glusterfs/sbin/gluster peer status
Number of Peers: 1

Hostname: 192.168.1.139
Uuid: cd25b695-6266-4720-8f42-ffb34179b4fb
State: Peer in Cluster (Connected)
2 移除节点  # 现在我们在M1上把M2移除掉
[[email protected] glusterfs]# /data/apps/glusterfs/sbin/gluster peer detach 192.168.1.139
peer detach: failed: Brick(s) with the peer 192.168.1.139 exist in cluster
# 默认情况下节点是移除不了的,我们可以强制移除(不建议强制移除节点)

[[email protected] share]# /data/apps/glusterfs/sbin/gluster peer detach 192.168.1.139 force  # 强制移除节点(不建议)
peer detach: success
[[email protected] share]# /data/apps/glusterfs/sbin/gluster peer status # 再次查看状态
peer status: No peers present

3 添加节点
[[email protected] share]# /data/apps/glusterfs/sbin/gluster peer probe 192.168.1.139

二 卷管理
1 创建卷(这里我只介绍副本卷)
[[email protected] ~]# /data/apps/glusterfs/sbin/gluster volume create bbs_img replica 2 192.168.1.{138,139}:/data/share

2 查看卷信息
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume info

3 查看卷状态
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume status

4 启动/停止卷
//data/apps/glusterfs/sbin/gluster volume start/stop volumename
// 客户端挂载卷之前要先启动,在卷停止之前要先把客户端的挂载卸载
[[email protected] share]# umount /home/data/wwwroot/web/share
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume stop bbs_img

三 Brick管理
1 添加Brick
 若是副本卷,则一次添加的Bricks数是replica的整数倍
 # 现在我们为bbs_img添加2个Brick(前面我们的Brick数为2)
[[email protected] share]# mkdir /data/share2
[[email protected] share]# chown www:www /data/share2
[[email protected] share]# mkdir /data/share2
[[email protected] share]# chown www:www /data/share2
[[email protected] mnt]# /data/apps/glusterfs/sbin/gluster volume add-brick bbs_img 192.168.1.{138,139}:/data/share2
volume add-brick: success   # 这样就达到了扩容的作用

[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume info
 
Volume Name: bbs_img
Type: Distributed-Replicate
Volume ID: cacb4587-c9b4-4d38-84d1-99dbe2c28477
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 192.168.1.138:/data/share
Brick2: 192.168.1.139:/data/share
Brick3: 192.168.1.138:/data/share2
Brick4: 192.168.1.139:/data/share2
# 扩容时,可以先增加系统节点,然后添加新增节点上的Brick即可。

2 移除Brick
若是副本卷,则移除的Bricks数是replica的整数倍。
# 现在我们移除刚刚添加的两个Brick
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume remove-brick bbs_img 192.168.1.{138,139}:/data/share2 start

# 在执行开始移除之后,可以使用status命令进行移除状态查看。
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume remove-brick bbs_img 192.168.1.{138,139}:/data/share2 status

# 使用commit命令执行Brick移除,则不会进行数据迁移而直接删除Brick,符合不需要数据迁移的用户需求。
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume remove-brick bbs_img 192.168.1.{138,139}:/data/share2 commit

3 替换Brick
我们把 192.168.1.139:/data/share 替换为 192.168.1.138:/data/share2
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume replace-brick bbs_img 192.168.1.139:/data/share 192.168.1.138:/data/share2 start
如果发生这个错组 volume replace-brick: failed: /data/share2 or a prefix of it is already part of a volume 说明 /data/share2 曾经是一个Brick。具体解决方法
[[email protected] share]# rm -rf /data/share2/.glusterfs
[[email protected] share]# setfattr -x  trusted.glusterfs.volume-id /data/share2
[[email protected] share]# setfattr -x trusted.gfid /data/share2
//如上,执行replcace-brick卷替换启动命令,使用start启动命令后,开始将原始Brick的数据迁移到即将需要替换的Brick上。

# 查看是否替换完
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume replace-brick bbs_img 192.168.1.139:/data/share 192.168.1.138:/data/share2 status

# 在数据迁移的过程中,可以执行abort命令终止Brick替换。
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume replace-brick bbs_img 192.168.1.139:/data/share 192.168.1.138:/data/share2 abort

# 在数据迁移结束之后,执行commit命令结束任务,则进行Brick替换。使用volume info命令可以查看到Brick已经被替换。

[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume replace-brick bbs_img 192.168.1.139:/data/share 192.168.1.138:/data/share2 commit

# 此时我们再往 /data/wwwroot/web/share 上添加数据的话,数据会同步到 192.168.1.138:/data/share 和 192.168.1.138:/data/share2 上。而不会同步到192.168.1.139:/data/share 上。

下面替换回来
这里我们在M2上执行
[[email protected] ~]# rm -rf /data/share/.glusterfs
[[email protected] share]# setfattr -x  trusted.glusterfs.volume-id /data/share
[[email protected] share]# setfattr -x trusted.gfid /data/share

[[email protected] data]# /data/apps/glusterfs/sbin/gluster volume replace-brick bbs_img 192.168.1.138:/data/share2 192.168.1.139:/data/share start
[[email protected] data]# /data/apps/glusterfs/sbin/gluster volume replace-brick bbs_img 192.168.1.138:/data/share2 192.168.1.139:/data/share status
[[email protected] data]# /data/apps/glusterfs/sbin/gluster volume replace-brick bbs_img 192.168.1.138:/data/share2 192.168.1.139:/data/share commit

[[email protected] data]# chown www:www /data/share
[[email protected] share]# chown www:www /data/share (有可能要更改)
此时再在服务器上创建文件,则又同步到 192.168.1.139:/data/share上面了

###################################
####    数据复制                 ##
###################################

一数据复制
我们同步一份数据到
192.168.1.138 /data/share3上
[[email protected] share]# mkdir /data/share3
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume geo-replication bbs_img /data/share3 start
Starting geo-replication session between bbs_img & /data/share3 has been successful
[[email protected] share]# ll /data/share3
total 28
-rw-rw-r-- 1 www www 16 Mar  9 01:50 1.txt
-rw-rw-r-- 1 www www 16 Mar  9 01:50 2.txt
..........................................
-rw-rw-r-- 1 www www 17 Mar  9 04:05 7.txt

[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume geo-replication bbs_img /data/share3 status  # 查看同步状态
NODE                 MASTER               SLAVE                                              STATUS    
---------------------------------------------------------------------------------------------------
M1                   bbs_img              /data/share3
                                      OK    
[[email protected] share]# /data/apps/glusterfs/sbin/gluster volume geo-replication bbs_img /data/share3 stop   # 停止同步,如果同步不停止则会一直增量同步
Stopping geo-replication session between bbs_img & /data/share3 has been successful

#####################################################
#          故障处理                                    #
#####################################################

一 挂载服务器故障:
我们使用的是 mount.glusterfs 192.168.1.138:/bbs_img /data/wwwroot/web/share  这种方式进行挂载。如果192.168.1.138(M1) 网络故障怎么办?
1 手动切换
步骤:
umount  /data/wwwroot/web/share
mount.glusterfs 192.168.1.139:/bbs_img /data/wwwroot/web/share # 重新挂载到192.168.1.139(M2)上
2 使用shell脚本每隔10s扫描一遍如果192.168.1.138服务器有问题则重新挂载并退出程序
[[email protected] data]# yum -y install nmap # 安装端口扫描工具
[[email protected] shell]# vim gfs_keepalive.sh

#!/bin/bash
# nmap 192.168.1.138 的 24007端口判断端口是否已经开启
flag=0
while [ "$flag" == "0" ]
do
hostup=$( /usr/bin/nmap -p 24007 192.168.1.138 | grep ‘Host is up‘ )
portup=$( /usr/bin/nmap -p 24007 192.168.1.138 | grep ‘tcp open‘ )
if [ "$hostup" == "" ] || [ "$portup" == "" ];then
# 先卸载服务在重新挂载到另一台服务器
/bin/umount /data/wwwroot/web/share
/sbin/mount.glusterfs 192.168.1.139:/bbs_img /data/wwwroot/web/share
flag=1
fi
/bin/sleep 10
done

二 数据紊乱问题
# 比如192.168.1.139:/data/share上数据紊乱。但客户端数据没紊乱,这时192.168.1.139:/data/share会自动同步客户端的数据

三 数据恢复
如果客户端误删数据
1 备份客户端数据
2 可以采用每天的备份直接替换掉客户端的数据

时间: 2024-10-31 01:23:37

GlusterFS的安装与使用的相关文章

Glusterfs部署安装(二)

Glusterfs部署安装 官网 https://www.gluster.org/ 安装前准备 安装VirtualBox 或VMWARE Workstation虚拟机软件. 安装好四台CentOS-6-x86_64(6.2-6.8都可以)的虚拟机. 基本系统:1VCPU+1024M内存+10G硬盘. 网络选择:网络地址转换(NAT). 软件包选择:Basic Server. 关闭iptables和SELinux. 备注:本次安装主机地址分别为192.168.137.13.192.168.137.

GlusterFS快速安装

GlusterFS快速安装 安装前准备 这边最少需要三台机器,所有机器关闭防火墙和Selinux,所有机器需要两块硬盘, systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config 添加hosts文件,其实通过IP地址也能做集群,但是不建议这种方式,因为我们通过域名你就是替换节点i

GlusterFS基本安装

环境介绍: 系统版本: Rhel6.5 内核版本:3.18.3-1.el6.elrepo.x86_64 Yum源:http://download.gluster.org/pub/gluster/glusterfs/3.6/3.6.9/RHEL/glusterfs-epel.repo 节点数量:3个,主机名分别为controller1.controller2.compute01 每个节点上有3个磁盘,都分别挂载到 /data/bric1,/data/brick2,/data/bric3上 采用xf

Ubuntu: GlusterFS+HBase安装教程

HBase通常安装在Hadoop HDFS上,但也可以安装在其他实现了Hadoop文件接口的分布式文件系统上,如KFS.glusterfs是一个集群文件系统可扩展到几peta-bytes.它集合了各种存储在infiniband rdma或互连成一个大型并行网络文件系统.存储可以由任何商品等硬件x86_64服务器和sata-ii和infiniband HBA.GlusterFS比Hadoop HDFS可以提供更高的性能,HBase也因此可以获得更高的性能.将HBase安装在GlusterFS上,是

Glusterfs 分布式存储安装部署

Glusterfs 分布式存储部署 是存储当中可以选择的一种 现在很多虚拟化 云计算都在用软件存储 例如 ceph Glusterfs 等等 今天我们部署一下Glusterfs环境 GlusterFs安装 环境信息:          Glusterfs-A                           10.20.0.200                                        Glusterfs-B                   10.20.0.201  

glusterfs搭建安装

GlusterFS主要应用在集群系统中,具有很好的可扩展性.软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配以得到针对性的解决方案.可解决以下问题:网络存储,联合存储(融合多个节点上的存储空间),冗余备份,大文件的负载均衡(分块). 由于缺乏一些关键特性,可靠性也未经过长时间考验,还不适合应用于需要提供 24 小时不间断服务的产品环境.目前适合应用于大数据量的离线应用,下面一起来看GlusterFS分布式文件系统的安装配置 GlusterFS是一个开源的分布式文件系统,用户可以使用多台

glusterfs的简介与安装

1.Glusterfs简介 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端.GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据. 说起glusterfs可能比较陌生,可能大家更多的听说和使用的是NFS,GFS,HDFS之类的,这之中的NFS应该是使用最为广泛的,简单易于管理,但是NFS以及后边

CentOS7配置本地镜像及安装gluster服务

[[[[[创建本地镜像及安装gluster操作手册]]]]]   1.sudo mkdir /home/ecp2/mirror         创建mirror目录,把镜像拷贝到mirror下     修改镜像有效路径   2. sudo mkdir -p /media/CentOS          创建CentOS目录,把磁盘.iso镜像mount到CentOS目录下 3.sudo mount /dev/sr0 /media/CentOS    把iso安装镜像挂在到/media/CentO

GlusterFs集群、卷的创建使用与管理

本博文将介绍glusterfs集群的创建过程:glusterfs的复制,条带,哈希等基本卷类型及实际生产中使用率最高的哈希复制卷类型的基本原理,数据存储方式及各种类型卷的创建和使用方法. glusterfs的安装方法见: http://wangziyin.blog.51cto.com/6948950/1649838 1.测试环境 192.168.21.18 rhel6.5 vmserver  server1 192.168.21.19 rhel6.5 vmserver  server2 192.