如何在Linux上的复制GlusterFS卷中添加新块

时间:2020-01-09 10:39:59  来源:igfitidea点击:

如何在Debian或Ubuntu/CentOS Linux上的现有复制卷中添加新的brick?
本教程说明如何添加新的节点/服务器,并将其平衡到现有阵列中。
我假设您已经按照此处所述设置了两台服务器/三台服务器的GlusterFS阵列。

我将假定此节点名称为gfs04,并且您更新了/etc/hosts文件以包括IP地址到主机的映射。
我现有的gluster卷名为gvol0。

步骤1安装glusterfs

在Debian/Ubuntu Linux上执行以下apt-get命令/apt命令:

$ sudo add-apt-repository ppa:gluster/glusterfs-3.11
$ sudo apt-get update
$ sudo apt-get install glusterfs-server
$ sudo apt-mark hold glusterfs*

步骤2格式化和设置服务器中的磁盘

执行以下命令:

$ sudo fdisk /dev/vdb
$ sudo mkfs.ext4 /dev/vdb1
$ sudo mkdir -p /nodirectwritedata/brick4
$ sudo echo '/dev/vdb1 /nodirectwritedata/brick4 ext4 defaults 1 2' >> /etc/fstab
$ mount -a
$ sudo mkdir /nodirectwritedata/brick4/gvol0
$ df -H

步骤3配置可信池

从任一节点运行以下命令:

$ gluster peer probe gfs04

输出示例:

peer probe: success.

步骤4获取有关名为gvol0的当前卷的信息

执行以下命令:

# gluster vol status

输出示例:

Status of volume: gvol0
Gluster process                             TCP Port  RDMA Port  Online  Pid
-----------------------------------------------------------------------------
Brick gfs01:/nodirectwritedata/brick1/gvol0 49152     0          Y       3994 
Brick gfs02:/nodirectwritedata/brick2/gvol0 49152     0          Y       3956 
Brick gfs03:/nodirectwritedata/brick3/gvol0 49152     0          Y       4069 
Self-heal Daemon on localhost               N/A       N/A        Y       18938
Self-heal Daemon on gfs03                   N/A       N/A        Y       13273
Self-heal Daemon on gfs04                   N/A       N/A        Y       3128 
Self-heal Daemon on gfs02                   N/A       N/A        Y       13144
 
Task Status of Volume gvol0
-----------------------------------------------------------------------------
There are no active volume tasks

步骤5将新砖添加到现有复制卷

执行以下命令:

# gluster volume add-brick gvol0 replica 4 gfs04:/nodirectwritedata/brick4/gvol0

输出示例:

volume add-brick: success

其中:

  • gluster命令名称。
  • volume该命令与音量有关。
  • add-brick我要在该卷中添加一个brick。
  • gvol0这是卷的名称。
  • 副本4添加此brick后,该卷将至少保留每个文件的3个副本。
  • gfs04:/nodirectwritedata/brick4/gvol0这是Gluster服务器的IP地址/主机名gfs04,其后是存储砖块数据的绝对路径。

步骤6验证新设置

执行以下命令:

# gluster vol status

输出示例:

Status of volume: gvol0
Gluster process                             TCP Port  RDMA Port  Online  Pid
-----------------------------------------------------------------------------
Brick gfs01:/nodirectwritedata/brick1/gvol0 49152     0          Y       3994 
Brick gfs02:/nodirectwritedata/brick2/gvol0 49152     0          Y       3956 
Brick gfs03:/nodirectwritedata/brick3/gvol0 49152     0          Y       4069 
Brick gfs04:/nodirectwritedata/brick4/gvol0 49152     0          Y       3172 
Self-heal Daemon on localhost               N/A       N/A        Y       21424
Self-heal Daemon on gfs03                   N/A       N/A        Y       19593
Self-heal Daemon on gfs02                   N/A       N/A        Y       20088
Self-heal Daemon on gfs04                   N/A       N/A        Y       3192 
 
Task Status of Volume gvol0
-----------------------------------------------------------------------------
There are no active volume tasks

要查看对等状态,请执行:

# gluster peer status
Number of Peers: 3

Hostname: gfs03
Uuid: 569a9fd1-3de8-470e-932b-fb903ca925cf
State: Peer in Cluster (Connected)

Hostname: gfs02
Uuid: d13c68f8-b00f-4615-98f1-1d7c4138a6bd
State: Peer in Cluster (Connected)

Hostname: gfs04
Uuid: 9ccfb748-d4d6-45de-8b7a-3dcf7d5efb67
State: Peer in Cluster (Connected)