如何在Gluster文件系统中执行自我修复和重新平衡操作 - 第2部分

我在以前的文章上“ 介绍GlusterFS(文件系统),并安装-第1部分 ”只是文件系统的简要概述,其优点描述了一些基本的命令。 值得一提的关于两个重要特征, 自我修复重新平衡 ,在这篇文章中没有解释其中的GlusterFS将是没有用的。 我们熟悉的术语自我修复 和再平衡

我们在复制卷上的自我修复是什么意思?

此功能适用于复制卷。 假设,我们有一个复制卷[ 最小副本数2]。 假设由于一些故障,一个或多个砖在复制砖中下来一段时间,用户碰巧从安装点删除一个文件,将只受到在线砖上的影响。

当离线砖在稍后时间上线时,必须从该砖中移除该文件,也就是说,必须在被称为修复的副本砖之间进行同步。 在离线积木上创建/修改文件的情况也是如此。 GlusterFS有一个内置的self-heal守护进程,以处理这些情况时,每当砖变成在线。

复制卷

我们的平衡是什么意思?

考虑一个只有一个砖的分布式卷。 例如,我们通过创建挂载点卷上的10个文件 现在所有的文件都驻留在同一个砖上,因为只有砖的体积。 在向卷添加一个砖块时,我们可能需要重新平衡两个砖块之间的文件总数。 如果在GlusterFS中扩展或缩小卷,则需要在卷中包含的各个块之间重新平衡数据。

分布式卷

在GlusterFS中执行自愈

1.使用以下命令创建一个复制卷。

$ gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b

注意 :用砖头在同一台服务器上复制卷的创建可以提高您拥有继续无视同样的警告。

2.启动并安装卷。

$ gluster volume start vol
$ mount -t glusterfs 192.168.1.16:/vol /mnt/

3.从装载点创建文件。

$ touch /mnt/foo

4.在两个复制砖上验证相同。

$ ls /home/a/
foo
$ ls /home/b/
foo

5.现在离线杀死使用PID从卷状态信息得到相应的glusterfs守护进程发送砖块之一。

$ gluster volume status vol
示例输出
Status of volume: vol
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	3810 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

:在服务器上看到自我修复守护进程的存在。

$ kill 3810
$ gluster volume status vol
示例输出
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			N/A	  N	N/A 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

现在第二块砖离线了。

6.删除从安装点的文件foo,并检查砖的内容。

$ rm -f /mnt/foo
$ ls /home/a
$ ls /home/b
foo

你看仍然存在第二砖。

7.现在带回砖在线。

$ gluster volume start force
$ gluster volume status vol
示例输出
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	4110 
NFS Server on localhost				2049	  Y	4122 
Self-heal Daemon on localhost			N/A	  Y	4129

现在砖头在线。

8.检查砖的内容。

$ ls /home/a/
$ ls /home/b/

文件已被自愈合守护进程从第二砖删除。

注意 :在大文件的情况下,可能需要一段时间才能成功完成自我修复操作。 您可以使用以下命令检查治疗状态。

$ gluster volume heal vol info

在GlusterFS中执行重新平衡

1.创建一个分布式的体积。

$ gluster create volume distribute 192.168.1.16:/home/c

2.启动并安装卷。

$ gluster volume start distribute
$ mount -t glusterfs 192.168.1.16:/distribute /mnt/

3.创建10个文件。

$ touch /mnt/file{1..10}
$ ls /mnt/
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
$ ls /home/c
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

4.添加另一块砖体积分布

$ gluster volume add-brick distribute 192.168.1.16:/home/d
$ ls /home/d

5.做再平衡。

$ gluster volume rebalance distribute start
volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.

6.检查内容。

$ ls /home/c
file1  file2  file5  file6  file8 
$ ls /home/d
file10  file3  file4  file7  file9

文件已重新平衡。

注意 :您可以通过发出以下命令来检查再平衡的状态。

$ gluster volume rebalance distribute status
示例输出
Node           Rebalanced-files     size          scanned    failures    skipped   status	run time in secs 
---------      -----------          ---------     --------   ---------   -------   --------     ----------------- 
localhost          5                0Bytes           15          0         0       completed         1.00 
volume rebalance: distribute: success:

有了这个,我计划结束关于GlusterFS的这个系列。 随意评论这里与你的自我修复和重新平衡的特点的怀疑。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏