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 上。