GlusterFS常用命令集

时间:2023-01-14 11:57:56

GlusterFS常用命令集

1.启动/关闭/查看glusterd服务

#启动:
systemctl daemon-reload
systemctl start glusterd

#开机自动启动glusterd服务:
systemctl enable glusterd

#关闭:
systemctl stop glusterd

#查看状态:
systemctl status glusterd

2.为存储池添加/移除服务器节点

在其中一个节点上操作即可:

gluster peer probe <SERVERNAME>
#eg: gluster peer probe gfs-6

#注意,移除节点时,需要提前将该节点上的Brick移除:
gluster peer detach <SERVERNAME>
#eg: gluster peer detach gfs-6

#查看当前gfs集群信任池(显示的时候不包括本节点):
gluster peer status

3.创建/启动/停止/删除卷

gluster volume create [stripe  | replica ] [transport [tcp | rdma | tcp,rdma]] ...
gluster volume start  <VOLNAME>
gluster volume stop  <VOLNAME>
gluster volume delete  <VOLNAME>

#eg: gluster volume [start | stop | delete] test-volume

注意,删除卷的前提是先停止卷,如果要删除卷下面的数据,现在客户端将卷下的数据删除完毕,再停止卷,再删除卷

4.查看卷信息

#列出集群中的所有卷:

gluster volume list

#查看集群中的卷信息:
gluster volume info <VOLNAME>  #查看指定卷信息
gluster volume info all  #查看所有卷信息

#查看集群中的卷状态:
gluster volume status <VOLNAME>
gluster volume status all

#带指标参数查看具体的指标信息
gluster volume status <VOLNAME> [detail | clients | mem | inode | fd | callpool]
gluster volume status all  [detail | clients | mem | inode | fd | callpool]

#eg: gluster volume status all  detail
#eg: gluster volume status test-volume detai
#eg: gluster volume status test-volume server4:/exp4  detail

5.配置卷参数

gluster volume set <VOLNAME> <OPTION> <PARAMETER>
#eg: gluster volume quota gfs-data enable #磁盘配额开关

gluster volume set <VOLNAME> cluster.nufa enable #开启NUFA(在卷中创建任何数据之前,应启用 NUFA)

6.配额限制

#启用配额(先启用配额,才能设置磁盘限制):
gluster volume quota <VOLNAME> enable
#eg: gluster volume quota test-volume enable

#禁用配额:
gluster volume quota <VOLNAME> disable
#eg:gluster volume quota test-volume disable

#设置磁盘限制:
gluster volume quota <VOLNAME> limit-usage <DIR> <HARD_LIMIT>
#eg: gluster volume quota test-volume limit-usage /data 10GB

#查看磁盘限制信息:
gluster volume quota <VOLNAME> list
#eg: gluster volume quota test-volume list
#eg: gluster volume quota test-volume list /dat

#删除磁盘限制:
gluster volume quota <VOLNAME> remove <DIR>
#eg: gluster volume quota test-volume remove /data

7.扩展/收缩卷

# 扩展卷:
gluster volume add-brick <VOLNAME> <NEW-BRICK>
#eg: gluster volume add-brick test-volume server4:/exp4

#收缩卷(先将数据迁移到其它可用的Brick,迁移结束后才将该Brick移除):
gluster volume remove-brick <VOLNAME> <BRICKNAME> start
#eg: gluster volume remove-brick test-volume server2:/exp2 start

#查看移除进度Brick的状态:
gluster volume remove-brick <VOLNAME> <BRICKNAME> status
#eg: gluster volume remove-brick test-volume server2:/exp2 status

#状态显示“已完成”后,提交删除砖操作:
gluster volume remove-brick <VOLNAME> <BRICKNAME> commit
#eg: gluster volume remove-brick test-volume server2:/exp2 commit

8.更改传输类型

#例如:要同时启用 tcp 和 rdma,请执行 followimg 命令:
gluster volume set test-volume config.transport tcp,rdma OR tcp OR rdma

9.挂载/卸载卷

#客户端以glusterfs方式挂载
mount -t glusterfs <SERVER>:/<VOLNAME> <MOUNTDIR>

#带传输方式挂载
mount -t glusterfs -o transport=rdma <SERVER>:/<VOLNAME> <MOUNTDIR>
#例如:若要使用 rdma 传输进行挂载,请使用以下命令:
#eg: mount -t glusterfs -o transport=rdma server1:/test-volume /mnt/glusterfs

#卸载卷
umount <MOUNTDIR>

10.重新均衡卷

# 在任何 Gluster 服务器上启动重新平衡操作:
gluster volume rebalance <VOLNAME> fix-layout start
#eg: gluster volume rebalance test-volume fix-layout start

#在任一服务器上启动重新平衡操作:
gluster volume rebalance <VOLNAME> start
#eg: gluster volume rebalance test-volume start

#在任一服务器上强制启动迁移操作:
gluster volume rebalance <VOLNAME> start force
#eg: gluster volume rebalance test-volume start force

#检查重新平衡操作后的状态:
gluster volume rebalance <VOLNAME> status
#eg: gluster volume rebalance test-volume status
#当status栏显示“in progress”,则重新平衡操纵尚未完成
#当status栏显示“completed”,则已完成重新平衡操作

#停止重新平衡操作:
gluster volume rebalance <VOLNAME> stop
#eg: gluster volume rebalance test-volume stop

11.复制时触发自我修复

#仅在需要修复的文件上触发自我修复:
gluster volume heal
#eg: gluster volume heal test-volume

#在卷的所有文件上触发自我修复:
gluster volume heal <VOLNAME> full
#eg:gluster volume heal test-volume full

#查看需要修复的文件列表:
gluster volume heal <VOLNAME> info
#eg: gluster volume heal test-volume info

#查看自我修复的文件列表:
gluster volume heal <VOLNAME> info healed
#eg:gluster volume heal test-volume info healed

#查看特定卷的自我修复失败的文件列表:
gluster volume heal <VOLNAME> info failed
#eg: gluster volume heal test-volume info failed

#查看指定卷中处于脑裂状态的文件列表:
gluster volume heal <VOLNAME> info split-brain
#eg: gluster volume heal test-volume info split-brain

12.更换有故障的Brick

要替换仅分发卷上的Brick,先添加新Brick,然后删除要替换的Brick。这将触发重新平衡操作,该操作将从移除的Brick中移动数据。(注意:仅分布式复制卷或纯复制卷支持使用 gluster 中的“替换Brick”命令替换块。)

#步骤1-添加新的Brick:
gluster volume add-brick <VOLNAME> <NEW-BRICK>
#eg:gluster volume add-brick test-volume server4:/exp4

#步骤2-移除问题Brick:
gluster volume remove-brick <VOLNAME> <BRICKNAME> start
#eg:gluster volume remove-brick test-volume server2:/exp2 start

#步骤3-查看移除进度Brick的状态:
gluster volume remove-brick <VOLNAME> <BRICKNAME> status
#eg:gluster volume remove-brick test-volume server2:/exp2 status

#步4-状态显示“已完成”后,提交删除砖操作:
gluster volume remove-brick <VOLNAME> <BRICKNAME> commit
#eg:gluster volume remove-brick test-volume server2:/exp2 commit

13.监控命令

#开启监控命令,先启动监控命令,后面的命令才能执行:
gluster volume profile <VOLNAME>  start
#eg: gluster volume profile test-volume start

#显示I/O信息
gluster volume profile <VOLNAME> info
#eg: gluster volume profile test-volume info

#关闭监控命令:
gluster volume profile <VOLNAME>  stop
#eg: gluster volume profile test-volume stop

14.监控命令top

#完整命令
gluster volume top <VOLNAME> {open|read|write|opendir|readdir|clear} [nfs|brick <brick>] [list-cnt <value>] | {read-perf|write-perf} [bs <size> count <count>] [brick <brick>] [list-cnt <value>]

#查看打开的 fd数量和最大的fd数量,并列出前10条
gluster volume top <VOLNAME> open [brick <BRICK>] [list-cnt <COUNT>]
#eg: gluster volume top test-volume open brick server2:/exp2 list-cnt 10

#查看最高文件读取调用
gluster volume top <VOLNAME> read [brick <BRICK>] [list-cnt <COUNT>]
#eg: gluster volume top test-volume read brick server2:/exp2 list-cnt 10

#查看最高文件写入调用
gluster volume top <VOLNAME> write [brick <BRICK>] [list-cnt <COUNT>]
#eg: gluster volume top test-volume write brick server2:/exp2 list-cnt 10

#查看目录上的最高打开调用数
gluster volume top <VOLNAME> opendir [brick <BRICK>] [list-cnt <COUNT>]
#eg: gluster volume top test-volume opendir brick server2:/exp2 list-cnt 10

#查看目录上的最高读取调用
gluster volume top <VOLNAME> test-volume readdir [brick BRICK] [list-cnt {0..100}]
#eg: gluster volume top test-volume readdir brick server2:/exp2 list-cnt 10

#查看每个块上的读取性能列表
gluster volume top <VOLNAME> read-perf [bs <BLOCK-SIZE> count <COUNT>] [brick <BRICK>] [list-cnt <COUNT>]
#eg: gluster volume top test-volume read-perf bs 256 count 1  brick server2:/exp2  list-cnt 10

#查看每个块上的写入性能列表
gluster volume top <VOLNAME> write-perf [bs <BLOCK-SIZE> count <COUNT>] [brick <BRICK>] [list-cnt <COUNT>]
#eg: gluster volume top test-volume write-perf bs 256 count 1  brick server2:/exp2  list-cnt 10

15. 更新内存缓存大小

#在软超时的情况下,每N秒刷新一次volume的内存缓存大小
gluster volume set <VOLNAME> features.soft-timeout <time>

#在硬超时的情况下,每N秒刷新一次volume的内存缓存大小
gluster volume set <VOLNAME> features.hard-timeout <time>

# eg:在硬超时的情况下每 5 秒更新一次volume的内存缓存大小
# gluster volume set test-volume features.hard-timeout 5

16.设置警报时间

警报时间是您希望在达到软限制后记录使用情况信息的频率。

#设置警报时间(默认警报时间为一周):
gluster volume quota <VOLNAME> alert-time <time>

#要将警报时间设置为一天:
# eg: gluster volume quota test-volume alert-time 1d

17.快照命令

GlusterFS 卷快照功能基于精简配置的 LVM 快照。

官网要求,要使用快照功能,GlusterFS 卷应满足以下要求先决条件:

  • 每个块都应位于独立的精简配置的 LVM 上。
  • Brick LVM 不应包含除Brick以外的任何其他数据。
  • 任何Brick都不应该放在厚重的 LVM 上。
  • Gluster 版本应为 3.6 及以上。
#创建快照:
gluster snapshot create <snapname> <volname> [no-timestamp] [description <description>]

#快照克隆
gluster snapshot clone <clonename> <snapname>

#恢复快照
gluster snapshot restore <snapname>

#删除快照
gluster snapshot delete (all | <snapname> | volume <volname>)

#查看快照列表:
gluster snapshot list [volname]

#查看快照信息:
gluster snapshot info [(snapname | volume <volname>)]

#查看快照状态:
gluster snapshot status [(snapname | volume <volname>)]

#配置快照
snapshot config [volname] ([snap-max-hard-limit <count>] [snap-max-soft-limit <percent>])
                            | ([auto-delete <enable|disable>])
                            | ([activate-on-create <enable|disable>])

#激活快照
gluster snapshot activate <snapname>

#停用快照
gluster snapshot deactivate <snapname>

#访问快照的2种方式:
mount -t glusterfs <hostname>:/snaps/<snap-name>/<volume-name> <mount-path>
#eg: mount -t glusterfs host1:/snaps/my-snap/vol /mnt/snapshot

#设置用户可用性,默认从隐藏目录.snaps访问快照
gluster volume set <volname> snapshot-directory <new-name>