glusterfs基本命令
5 min read

glusterfs基本命令

服务器节点

# gluster peer status            查看所有节点信息,显示时不包括本节点
# gluster peer probe NODE-NAME   添加节点
# gluster peer detach NODE-NAME  移除节点,需要提前将该节点上的brick移除

glusterd服务

# systemctl start glusterd  启动glusterd服务
# systemctl stop glusterd   关闭glusterd服务
# systemctl status glusterd   查看glusterd服务

卷管理

创建卷

卷类型参考文档:https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/

复制卷

语法:gluster volume create NEW-VOLNAME [replica COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK

示例1:gluster volume create test-volume replica 2 transport tcp server1:/exp1/brick server2:/exp2/brick

复制卷的仲裁器配置:假如我们的复制卷是有三个节点的话,我们使用第3个节点作为仲裁节点,此配置具有防止发生裂脑的机制。

# gluster volume create  <VOLNAME> replica 3 arbiter 1 host1:brick1 host2:brick2 host3:brick3

注意:3副本的仲裁器配置也可以用于创建分布式副本卷。

分散卷

语法:# gluster volume create test-volume [disperse [<COUNT>]] [disperse-data <COUNT>] [redundancy <COUNT>] [transport tcp | rdma | tcp,rdma] <NEW-BRICK>
例如:3个brick创建一个分散卷,一个冗余。
示例:# gluster volume create test-volume disperse 3 redundancy 1 server1:/exp1 server2:/exp2 server3:/exp3
volume create: test-volume: success: please start the volume to access data

分布式卷

语法:# gluster volume create [transport tcp | rdma | tcp,rdma]

示例1:gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
Creation of test-volume has been successful
Please start the volume to access data.
示例2:# gluster volume create test-volume transport rdma server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
Creation of test-volume has been successful
Please start the volume to access data.

注意:如果未指定传输类型,则默认使用tcp。如果需要,您还可以设置其他选项,例如auth.allow或auth.reject。

分布式复制卷

语法: gluster volume create NEW-VOLNAME [replica COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK...
例如:带有两向镜像的四节点分布式(复制)卷
示例: gluster volume create test-volume replica 2 transport tcp server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick

分布式分散卷

语法:# gluster volume create [disperse [<COUNT>]] [disperse-data <COUNT>] [redundancy <COUNT>] [transport tcp | rdma | tcp,rdma] <NEW-BRICK>
例如:6个分布式分散卷包含一个冗余
示例:# gluster volume create test-volume disperse 3 redundancy 1 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6
volume create: test-volume: success: please start the volume to access data

启动卷

# gluster volume start test-volume

停止卷

# gluster volume stop test-volume

删除卷

# gluster volume delete test-volume   先停止卷后才能删除

查看卷

# gluster volume list             列出集群中的所有卷
# gluster volume info [all]       查看集群中的卷信息
# gluster volume status [all]     查看集群中的卷状态

# gluster volume status  [detail| clients | mem | inode | fd] 

配置卷

# gluster volume set <VOLNAME> <OPTION> <PARAMETER>

扩展卷

# gluster volume add-brick <VOLNAME> <NEW-BRICK>
注意,如果是复制卷或者条带卷,则每次添加的Brick数必须是replica或者stripe的整数倍。

收缩卷

先将数据迁移到其它可用的Brick,迁移结束后才将该Brick移除: 
# gluster volume remove-brick  start 
在执行了start之后,可以使用status命令查看移除进度: 
# gluster volume remove-brick  status 
不进行数据迁移,直接删除该Brick: 
# gluster volume remove-brick  commit 
注意,如果是复制卷或者条带卷,则每次移除的Brick数必须是replica或者stripe的整数倍。

迁移卷

使用start命令开始进行迁移: 
# gluster volume replace-brick  start 
在数据迁移过程中,可以使用pause命令暂停迁移: 
# gluster volume replace-brick  pause 
在数据迁移过程中,可以使用abort命令终止迁移: 
# gluster volume replace-brick  abort 
在数据迁移过程中,可以使用status命令查看迁移进度: 
# gluster volume replace-brick  status 
在数据迁移结束后,执行commit命令来进行Brick替换: 
# gluster volume replace-brick  commit 

重新均衡卷

不迁移数据: 
# gluster volume rebalance  lay-outstart 
# gluster volume rebalance  start 
# gluster volume rebalance  startforce 
# gluster volume rebalance  status 
# gluster volume rebalance  stop 

Brick管理

添加Brick

# gluster volume add-brick test-volume 192.168.1.{151,152}:/mnt/brick2

删除Brick

若是副本卷,则移除的Bricks数是replica的整数倍
#gluster volume remove-brick test-volume 192.168.1.{151,152}:/mnt/brick2 start
在执行开始移除之后,可以使用status命令进行移除状态查看。

#gluster volume remove-brick test-volume 192.168.1.{151,152}:/mnt/brick2 status

使用commit命令执行Brick移除,则不会进行数据迁移而直接删除Brick,符合不需要数据迁移的用户需求。
#gluster volume remove-brick test-volume 192.168.1.{151,152}:/mnt/brick2 commit

替换Brick

任务:把192.168.1.151:/mnt/brick0 替换为192.168.1.151:/mnt/brick2
①、开始替换
# gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 192.168.1.152:/mnt/brick2 start
异常信息:volume replace-brick: failed: /data/share2 or a prefix of it is already part of a volume 

说明 /mnt/brick2 曾经是一个Brick。具体解决方法
# rm -rf /mnt/brick2/.glusterfs

# setfattr -x trusted.glusterfs.volume-id /mnt/brick2
# setfattr -x trusted.gfid  /mnt/brick2
如上,执行replcace-brick卷替换启动命令,使用start启动命令后,开始将原始Brick的数据迁移到即将需要替换的Brick上。

②、查看是否替换完
# gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 ..152:/mnt/brick2 status

③、在数据迁移的过程中,可以执行abort命令终止Brick替换。
# gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 ..152:/mnt/brick2 abort

④、在数据迁移结束之后,执行commit命令结束任务,则进行Brick替换。使用volume info命令可以查看到Brick已经被替换。
# gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 192.168.1.152:/mnt/brick2 commit
# 此时我们再往 /sf/data/vs/gfs/rep2上添加数据的话,数据会同步到 192.168.1.152:/mnt/brick0和192.168.1.152:/mnt/brick2上。而不会同步到
192.168.1.151:/mnt/brick0 上。 
京ICP备19055754号