如何使用 gluster self-heal 修复目录总大小

如何使用 gluster self-heal 修复目录总大小

我搭建了一个glusterfs集群,类型是条带复制卷,有4台服务器,如下图所示:

Volume Name: test-volume
Type: Striped-Replicate
Volume ID: bdb596e6-a7d2-44a4-8791-1b4fdc57469c
Status: Started
Number of Bricks: 1 x 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.90.245.18:/exp1
Brick2: 10.90.245.35:/exp2
Brick3: 10.90.245.36:/exp3
Brick4: 10.90.245.37:/exp4

我从客户端挂载它,同时将一个 100G 的文件上传到测试卷。服务器上的每个文件应该是 50G。当我将数据上传到集群时,我关闭了集群的一台服务器。当客户端完成文件上传后,启动服务器并启动服务 glusterd。然后 gluster 卷修复信息如下:

root@alyrokif:/exp1# gluster volume heal test-volume info
Gathering Heal info on volume test-volume has been successful

Brick 10.90.245.18:/exp1
Number of entries: 0

Brick 10.90.245.35:/exp2
Number of entries: 0

Brick 10.90.245.36:/exp3
Number of entries: 0

Brick 10.90.245.37:/exp4
Number of entries: 0

并在重新启动的服务器中存储目录如下:

root@xetvmcjg:/exp2# ll -h
total 742M
drwxr-xr-x  3 root root 4.0K Mar 28 16:37 ./
drwxr-xr-x 24 root root 4.0K Mar 27 16:30 ../
drw------- 72 root root 4.0K Mar 28 16:36 .glusterfs/
-rw-r--r--  2 root root 50G Mar 28 16:37 testfile

其他 3 台服务器有 50G。但重启后的服务器只有 742MB。那么我该如何将 742MB 变成 50G。

答案1

我假设你正在使用 Gluster 3.3

Gluster 会主动进行自我修复,但可能需要提醒它注意这一点。这可以通过从客户端访问文件来触发,这应该会导致它(在 10 分钟内)注意到同步不完整并开始修复。

您也可以强制治疗:

gluster volume heal testvol

并强制它修复卷上的所有内容,无论是否需要这样做(这可能需要极其如果你有很多文件的话,则需要很长时间)

gluster volume heal testvol full

您已经找到了跟踪修复进度的命令,尽管这也反映在 gluster 日志文件中。

相关内容