关于glusterfs

开源gluster安装部署文档

前奏

该文档所有机器上的防火墙和selinux都为开启状态


# 服务器介绍
node1:192.168.3.118/2U/2核/60G/30G/服务端
node2:192.168.3.119/2U/2核/60G/30G/服务端
node3:192.168.3.120/2U/2核/60G/客户端


# 配置hosts(所有机器上执行)
[root@node1 ~]# vim /etc/hosts
192.168.3.118   node1.lab.example.com   node1
192.168.3.119   node2.lab.example.com   node2
192.168.3.120   node3.lab.example.com   node3


配置yum源(所有服务端机器上执行)
[root@node1 ~]# yum -y install epel-release centos-release-gluster 


# 配置免密(这次我只在node1上执行)
[root@node1 ~]# ssh-keygen -t rsa -P ''
[root@node1 ~]# ssh-copy-id node2

在node1和node2上做LVM(两台机都操作)

这2台机器上做出来的lv,当做brick来用

1、格式化并安装brick
[root@node1 ~]# fdisk /dev/sdb
创建2个分区,一个14G,剩余的所有给另一个分区

注: 在创建 XFS 文件系统时不要忘记将 inode 大小设置为 512 字节
[root@node1 ~]# for i in 1 2;do mkfs.xfs -i size=512 /dev/sdb$i;done

[root@node1 ~]# partprobe
[root@node1 ~]# mkdir -p /bricks/brick1       # 将sdb1挂载到这里
[root@node1 ~]# blkid /dev/sdb{1..2}
/dev/sdb1: UUID="4909dfee-2cab-46f5-a0ba-0965757c2c06" TYPE="xfs" 
/dev/sdb2: UUID="ea77ab92-551f-45ac-acb1-04b498b523ae" TYPE="xfs"

[root@node1 ~]# vim /etc/fstab
UUID=4909dfee-2cab-46f5-a0ba-0965757c2c06   /bricks/brick1    xfs    defaults    1 2

[root@node1 ~]# mount -a
[root@node1 ~]# df -h /dev/sdb1


# 配置selinux(所有节点都操作)
yum -y install policycoreutils-python
semanage fcontext -a -t glusterd_brick_t /bricks/brick1/gv0/
restorecon -Rv /bricks/

安装gluster(两台机都操作)

[root@node1 ~]# yum -y install glusterfs-server
[root@node1 ~]# systemctl start glusterd && systemctl enable glusterd && systemctl status glusterd


# 配置防火墙(两台机都操作)
[root@node1 ~]# firewall-cmd --add-service=glusterfs --permanent 
[root@node1 ~]# firewall-cmd --reload
[root@node1 ~]# firewall-cmd --list-all


# 配置可信池(任意一台上执行)
> 在node1上
[root@node1 ~]# gluster peer probe node2.lab.example.com        
注1: gluster peer detach node2 从池中删除主机,可强制
注2: 单台添加后可在2台上都能查看到

=============================================================
[root@node1 ~]# gluster help | grep peer
volume sync <HOSTNAME> [all|<VOLNAME>] 			 # 从对等点同步卷信息
peer probe { <HOSTNAME> | <IP-address> } 		 # 往池中添加主机
peer detach { <HOSTNAME> | <IP-address> } [force]        # 从池中删除主机,可强制
peer status 						 # 列出池的状态
=============================================================

> 在node1上(在node1上能看到node2)
[root@node1 ~]# gluster peer status
Number of Peers: 1

Hostname: node2.lab.example.com
Uuid: 23836994-11e1-47c6-8ea2-01a41ff8407f
State: Peer in Cluster (Connected)


> 在node2上(在node2上能看到node1)
[root@node2 ~]# gluster peer status
Number of Peers: 1

Hostname: node1.lab.example.com
Uuid: 70e3b8fc-745a-46ff-b042-a7792296a5e2
State: Peer in Cluster (Connected)


# 设置GlusterFS卷(两台机都操作)
[root@node1 ~]# mkdir /bricks/brick1/gv0
[root@node1 ~]# gluster volume create gv0 replica 2 node1:/bricks/brick1/gv0  node2:/bricks/brick1/gv0
[root@node1 ~]# gluster volume start gv0
[root@node1 ~]# gluster volume info
 
Volume Name: gv0
Type: Replicate
Volume ID: e0494265-1a5b-4679-8c1f-ab6011501f5c
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/bricks/brick1/gv0
Brick2: node2:/bricks/brick1/gv0
Options Reconfigured:
cluster.granular-entry-heal: on
storage.fips-mode-rchecksum: on
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off


# 在客户端挂载GlusterFS卷并测试
[root@node3 ~]# mount -t glusterfs node1:/gv0 /mnt
[root@node3 ~]# for i in `seq -w 1 5`; do cp -rp /var/log/messages /mnt/copy-test-$i; done


# 检查每台服务端上的 GlusterFS 挂载点
[root@node1 ~]# ls -lA /bricks/brick1/gv0/
[root@node1 ~]# ssh node2 ls -lA /bricks/brick1/gv0/

注: 如客户端删除文件则服务端所有节点上将相继被删除,如下图

RedHat Gluster Storage


该部分为红帽RHCA中的部分,课程代码是RH236,需要考试环境或购买其服务后才能使用
国内购买:https://www.redhat.com/zh/technologies/storage/gluster
国外购买:https://www.redhat.com/en/technologies/storage/gluster

posted @ 2022-04-11 17:59  Linux大魔王  阅读(124)  评论(0编辑  收藏  举报