安装GlusterFS
1
2
3
4
5
6
7
8
9
10
|
# 添加GlusterFS repository 到所有服务器
$ dnf install centos-release-gluster9 -y
# 确定repo已经被添加
$ dnf repolist | grep gluster
# 服务端每个机器安装glusterfs server必要组件
$ dnf install glusterfs glusterfs-libs glusterfs-server -y
# 启动glusterfsd 和配置自启动
$ systemctl enable glusterfsd.service --now
# 确定glusterfsd 这个service的运行状态
$ systemctl status glusterfsd.service
|
配置防火墙
直接节点间都放开就行
1
|
$ iptables -I INPUT -p all -s [ip-address] -j ACCEPT
|
配置
数据盘
1
2
3
4
5
6
7
|
# 假设数据盘是/dev/sdb1,格式化
$ 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
|
集群部署
随便选一个节点,依次把节点都加进来
1
|
$ cluster peer probe node{1...n}
|
确认下状态
正常状态是,加进去的节点都是连接状态
State: Peer in Cluster (Connected)
创建一个卷
在所有服务器上:
1
|
mkdir -p /data/brick1/gv0
|
从任何单个服务器:
1
|
$ gluster volume create gv0 replica 3 server1:/data/brick1/gv0 server2:/data/brick1/gv0 server3:/data/brick1/gv0
|
成功操作后,应该会看到类似这样的信息:
volume create: gv0: success: please start the volume to access data
然后启动新创建的卷:
1
|
$ gluster volume start gv0
|
应该会看到类似这样的信息:
volume start: gv0: success
确认卷显示为"已启动":
您应该会看到类似这样的信息(卷ID将有所不同):
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Volume Name: gv0
Type: Replicate
Volume ID: f25cc3d8-631f-41bd-96e1-3e22a4c6f71f
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: server1:/data/brick1/gv0
Brick2: server2:/data/brick1/gv0
Brick3: server3:/data/brick1/gv0
Options Reconfigured:
transport.address-family: inet
|
注意:如果卷未显示为"已启动",请检查/var/log/glusterfs/glusterd.log
文件中的日志,以便调试和诊断问题。这些日志可以在配置的一台或所有服务器上查看。
测试GlusterFS卷
对于这一步,我们将使用一台服务器来挂载卷。通常在一台外部机器(称为"客户端")上执行此操作。由于使用这种方法需要在客户端机器上安装其他软件包,我们将使用一台服务器作为简单的测试场所,就好像它是那个"客户端"一样。客户端需要安装
1
|
$ dnf install -y glusterfs glusterfs-fuse
|
挂载
1
2
|
$ mkdir /mnt/gluster-test mount -t glusterfs server1:/gv0 /mnt/gluster-test
for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/gluster-test/copy-test-$i; done
|
首先,检查客户端挂载点:
1
|
$ ls -lA /mnt/gluster-test/copy* | wc -l
|
应该看到返回100个文件。接下来,检查每台服务器上的GlusterFS brick挂载点,应该在每台服务器上看到100个文件。如果没有复制,在仅分布式卷(这里未详细介绍)中,应该在每台服务器上看到大约33个文件。
常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
gluster peer probe #添加节点
gluster peer detach #移除节点
gluster volume create #创建卷
gluster volume start $VOLUME_NAME #启动卷
gluster volume stop $VOLUME_NAME #停止卷
gluster volume delete $VOlUME_NAME #删除卷
gluster volume quota enable #开启卷配额
gluster volume quota disable #关闭卷配额
gluster volume quota limitusage #设定卷配额
gluster volume list #列出集群中的所有卷
gluster volume info [all] #查看集群中的卷信息
gluster volume status [all] #查看集群中的卷状态
gluster volume profile [name] start #开启性能采集
gluster volume profile [name] info #查看性能信息
gluster volume profile [name] stop #关闭性能采集
# 数据平衡
gluster volume rebalance [name] start #开始平衡
gluster volume rebalance [name] status #平衡状态
gluster volume rebalance [name] stop #停止平衡
# 文件修复
gluster volume heal [name] full #启动文件修复
gluster volume heal [name] info #文件修复状态
|