glusterfs部署及应用tips

目标

在Linux集群上部署分布式文件系统glusterfs。构建出一个可以直接导出的NFS目录,可以在客户机上mount这个导出的目录,从而方便地提供文件存储服务。

关键词

gluster, glusterfs,分布式文件系统

测试平台

centOS 7

部署脚本

!/bin/bash

set -x
HOME=/home/hicode
cp $HOME/glusterfs.repo /etc/yum.repos.d/glusterfs.repo
yum install -y gluster glusterfs-server gluseterfs-libs
systemctl enable glusterd.service && systemctl start glusterd.service
systemctl status glusterd

centOS默认的repo里面没有gluster相关的包。需要先建立下面这个gluster repo信息

[rooeet@runrr2 ~]# cat /etc/yum.repos.d/glusterfs.repo
[myglusterfs]
name=glusterfs
baseurl=https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-5/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

安装与启动服务

yum install -y gluster glusterfs-server gluseterfs-libs
systemctl enable glusterd.service && systemctl start glusterd.service
systemctl status glusterd

集群内多机器的自动部署

#!/bin/bash

#Declare an array of string with type
#"192.168.129.2"

declare -a hostList=(
"192.168.129.3"
"192.168.129.5"
"192.168.129.7"
)

zz=deployFS.sh
repoCfg=/etc/yum.repos.d/glusterfs.repo
fProbe=peerProbe.sh
passwd=abcxxx


set -x

setSSH() {
for host in ${hostList[@]}; do
    echo "===========set ssh login without passwd on host $host ==========="
    echo ${passwd}  | ssh  -o StrictHostKeyChecking=no -tt hicode@$host  'mkdir -p ~/.ssh/ && touch ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'  && cat ~/.ssh/id_rsa.pub | ssh hicode@$host 'cat >> .ssh/authorized_keys'
done
}

#install glusterfs and start service
deployService() {
for host in ${hostList[@]}; do
    echo "===========set ssh login without passwd on host $host ==========="
    echo ${passwd}  | ssh -tt hicode@$host  'mkdir -p ~/.ssh/ && touch ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'  && cat ~/.ssh/id_rsa.pub | ssh hicode@$host 'cat >> .ssh/authorized_keys'
    scp ~/$zz hicode@$host:~/
    scp $repoCfg hicode@$host:~/
    echo ${passwd}  | ssh -tt hicode@$host 'sudo /bin/bash ~/deployFS.sh'
done
}

#peer probe
peerProbe() {
probeDone=0
for host in ${hostList[@]}; do
    scp $fProbe hicode@$host:~/
    if [[ probeDone == 0 ]];then
        echo ${passwd}  | ssh -tt hicode@$host 'sudo /bin/bash ~/peerProbe.sh'
        probeDone = 1
    fi
    rm -rf  /home/xqfs
    echo ${passwd}  | ssh -tt hicode@$host 'sudo rm -rf /home/xqfs/gluster/b0'
    echo ${passwd}  | ssh -tt hicode@$host 'sudo mkdir -p /home/xqfs/gluster/b0/'
    #ssh -tt hicode@$host 'mkdir -p /home/xqfs/gluster/b0'
done
}

cleanup() {
for host in ${hostList[@]}; do
        echo ${passwd}  | ssh -tt hicode@$host 'sudo rm -rf ~/peerProbe.sh'
        echo ${passwd}  | ssh -tt hicode@$host 'sudo rm -rf ~/deployFS.sh'
done
}

排错指南

Peer Rejected

Peer Rejected is a state a peer can be in. If you see a peer in this state when you run ‘gluster peer status’ that means volume configuration on that peer is out of sync with the rest of the cluster. Fixing this is pretty easy…
On the rejected peer:
Stop glusterd
In /var/lib/glusterd, delete everything except glusterd.info (the UUID file)
Start glusterd
Probe one of the good peers
Restart glusterd, check ‘gluster peer status’
You may need to restart glusterd another time or two, keep checking peer status.

Try the whole procedure a couple more times if it doesn’t work right away.

防火墙开启导致主机无法被probe

peer probe可以用对方主机的IP或者hostname去probe,如果使用hostname,那么请注意/etc/hosts文件里面一定要有相对应的表项,否则会出错。
如果被probe的机器启用了防火墙并且对应端口不允许访问,就会遇到Transport endpoint is not connected的问题,解决方法是关闭防火墙或者打开对应的端口。

(base) [root@run03 hicode]# gluster
gluster> peer probe  192.168.129.22
peer probe: success.
gluster> peer status
Number of Peers: 1

Hostname: 192.168.129.22
Uuid: 4db3992f-9f5c-439f-88d8-b5f0443a9400
State: Peer in Cluster (Connected)
gluster> volume status
No volumes present
gluster> peer probe  192.168.129.24
peer probe: failed: Probe returned with Transport endpoint is not connected

有防火墙情况下的端口操作

glusterfs的端口

Note: the brick ports have changed since version 3.4.
24007 – Gluster Daemon
24008 – Management
24009 and greater (GlusterFS versions less than 3.4) OR
49152 (GlusterFS versions 3.4 and later) – Each brick for every volume on your host requires it’s own port. For every new brick, one new port will be used starting at 24009 for GlusterFS versions below 3.4 and 49152 for version 3.4 and above. If you have one volume with two bricks, you will need to open 24009 – 24010 (or 49152 – 49153).
38465 – 38467 – this is required if you by the Gluster NFS service.

The following ports are TCP and UDP:
129 – portmapper

参考链接

guide book
https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Logging/

install steps
https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值