GlusterFs教程第12章:GlusterFs存储卷管理(1)

由于GlusterFs存储卷管理涉及到的内容较多,我们将分为多个章节来进行讲解,请各位小伙伴一定坚持看完哦!

本节介绍如何执行常见的GlusterFS存储卷管理操作,包括以下内容:

  • 配置存储卷传输方式
  • 扩容存储卷
  • 缩小存储卷

配置存储卷传输方式

一个存储卷可以支持一种或多种传输类型,在客户端和GlusterFs系统模块流程之间进行通信。

常见的传输类型有三种,分别是tcp、rdma、tcp和rdma(同时使用)。

更改卷支持的传输类型,有以下操作方式:

  • 所有客户端取消挂载存储卷,命令如下:
# umount mount-point
  • 停止存储卷,命令如下
# gluster volume stop <VOLNAME>
  • 更改传输类型。 例如:要同时启用tcp和rdma,请执行以下命令:
# gluster volume set test-volume config.transport tcp,rdma OR tcp OR rdma
  • 在所有客户端上安装存储卷。 例如:要使用rdma传输进行安装,请使用以下命令:
# mount -t glusterfs -o transport=rdma server1:/test-volume /mnt/glusterfs

扩容存储卷

当使用GlusterFs集群,您可以根据自己实际使用需求扩展存储卷,例如:您可能想要在集群中添加磁盘块,从而增加GlusterFs集群存储卷的容量

注意: 在扩展分部署复制和分部署分散型存储卷时,您需要添加多个副本或分散数量的存储卷,例如,当扩展副本数为2的分布式复制卷时,您需要添加2的倍数的磁盘块(例如4、6、8等)。

  • 如果它们还不是TSP(信任池)的一部分,请使用以下命令探测需要扩展存储卷的服务器:
# gluster peer probe <SERVERNAME>

例如:

# gluster peer probe server4

Probe successful
  • 使用以下命令添加磁盘块:
# gluster volume add-brick <VOLNAME> <NEW-BRICK>

例如:

# gluster volume add-brick test-volume server4:/exp4

Add Brick successful
  • 使用以下命令检查存储卷信息:
# gluster volume info <VOLNAME>

执行该命令后应该会显示以下信息:

Volume Name: test-volume
Type: Distribute
Status: Started
Number of Bricks: 4
Bricks:
Brick1: server1:/exp1
Brick2: server2:/exp2
Brick3: server3:/exp3
Brick4: server4:/exp4
  • 重新平衡存储卷,以确保将文件分发到新磁盘块上,您可以使用存储卷重新平衡命令rebalance(见下一章)来进行存储卷的平衡。

缩小存储卷

当使用GlusterFs集群,您可以根据自己实际使用需求收缩存储卷,例如:您可能需要删除由于硬件或网络故障而无法在分布式卷中访问的模块。

注意:收缩后,GlusterFs挂载的服务器将无法访问存储卷中的数据,需要注意的是这里仅仅是删除了配置信息,存储卷中的数据仍然保留,如有需要可直接从磁盘块存储卷中读取数据

在收缩分布式复制和分散的卷时,需要删除大量带数据的磁盘块。 例如,要缩小副本数量为2的分布式副本卷,您需要删除2的倍数的砖(例如4、6、8等)。

此外,您要删除的存储卷必须来自相同的子卷(相同的副本或分散集)。

使用start选项运行remove-brick时将自动触发重新平衡操作,以将数据从remove-bricks迁移到其余的卷。

  • 删除磁盘块使用以下命令:
# gluster volume remove-brick <VOLNAME> <BRICKNAME> start

例如, 移除server2:/exp2:

# gluster volume remove-brick test-volume server2:/exp2 start

volume remove-brick start: success
  • 使用以下命令查看remove brick操作的状态:
# gluster volume remove-brick <VOLNAME> <BRICKNAME> status

例如,查看server2:/exp2块移除操作的状态:

# gluster volume remove-brick test-volume server2:/exp2 status

 Node  Rebalanced-files  size  scanned       status
---------  ----------------  ----  -------  -----------
617c923e-6450-4065-8e33-865e28d9428f               34   340      162   in progress
  • 状态显示为“完成”后,请执行remove-brick操作
# gluster volume remove-brick <VOLNAME> <BRICKNAME> commit

对应此处的示例:

# gluster volume remove-brick test-volume server2:/exp2 commit

Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit: success
Check the removed bricks to ensure all files are migrated.
If files with data are found on the brick path, copy them via a gluster mount point before re-purposing the removed brick.
  • 使用以下命令检查存储卷信息:
# gluster volume info

此命令执行完成后会显示以下内容:

# gluster volume info
Volume Name: test-volume
Type: Distribute
Status: Started
Number of Bricks: 3
Bricks:
Brick1: server1:/exp1
Brick3: server3:/exp3
Brick4: server4:/exp4

致读者

更多GlusterFs存储卷管理操作精彩内容,见下一章节!