Glusterfs的常用命令

服务器节点

  • gluster peer status //查看所有节点信息,显示时不包括本节点

  • gluster peer probe NODE-NAME //添加节点

  • gluster peer detach NODE-NAME //移除节点,需要提前将该节点上的brick移除

卷管理

创建卷

  • 复制卷

语法: 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

  • 条带卷

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

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

  • 分布式卷

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

示例1:gluster volume create test-volume server1:/exp1/brick server2:/exp2/brick 示例2:gluster volume create test-volume transport rdma server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick

  • 分布式复制卷

语法: 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 NEW-VOLNAME [stripe COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK…

示例:gluster volume create test-volume stripe 2 transport tcp server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick

  • 条带复制卷

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

示例:gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick

启动卷

  • 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

扩展卷

  • gluster volume add-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 <1>开始替换

  • gluster volume replace-brick test-volume 192.168.1.:/mnt/brick0 ..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上。

<2>查看是否替换完

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

<4>在数据迁移结束之后,执行commit命令结束任务,则进行Brick替换。使用volume info命令可以查看到Brick已经被替换。

  • gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 .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 上。

文件系统扩展属性

获取文件扩展属性

getfattr -d -m . -e hex filename

getfattr -d -m “trusted.afr.*” -e hex filename