Glusterfs环境搭建和常规操作

时间:2024-03-19 12:11:14

注释:本次创建的卷名称为nfs,glusterfs的版本为4.1.5版本

服务器列表:

  1. 10.237.44.178
  2. 10.237.44.144
  3. 10.237.44.47

硬件要求:

  1. 建议所有机器做Raid5,而非直连盘
    1. 减少单块硬盘故障的维护成本
    2. 减少集群的维护成本,因为gluster会为每个挂载点启动一个服务进程
    3. 减少成本,如果是Raid1,加上至少2副本,则使用率仅为25%
    4. 单盘启动一个进程,会偶发单机个别进程停掉的问题
  2. 所有的机器不要放在一个交换机下

服务安装,所有节点均执行下述命令

  1. yum -y install centos-release-gluster41
    1. 安装/etc/yum.repos.d/CentOS-Gluster-41.repo
  2. yum -y install glusterfs-server
  3. 修改/etc/glusterfs/glusterd.vol进行选择性设置
    1. option listen-port 24007
    2. option base-port 49000
    3. option max-port 49000
  4. systemctl enable glusterd
  5. systemctl start glusterd
  6. systemctl status glusterd
    1. /usr/lib/systemd/system/glusterd.service
    2. /usr/lib/systemd/system/glusterfsd.service
    3. /usr/lib/systemd/system/glusterfssharedstorage.service
  7. mkdir -p /data0/nfs
  8. mkdir -p /nfs
  9. 版本检查: gluster –version
  10. 配置文件检查:md5sum /etc/glusterfs/glusterd.vol

扩容机器,在任意一个部署了glusterfs的节点上,执行下面的命令

  1. gluster peer probe 10.237.44.178
  2. gluster peer probe 10.237.44.144
  3. gluster peer probe 10.237.44.47
  4. gluster peer status
  5. 注意:扩容的机器,需要在已有集群的节点上执行添加操作,而不能再新扩容的机器上
    1. peer probe: failed: 10.160.108.4 is either already part of another cluster or having volumes configured

下线机器

  1. gluster volume replace-brick nfs 10.237.47.82:/data0/nfs 10.237.44.114:/data0/nfs commit force
  2. gluster peer detach 10.237.47.82
  3. gluster peer status

创建一个卷

  1. gluster volume create nfs replica 3 {10.237.44.178,10.237.44.144,10.237.44.47}:/data0/nfs
    1. 创建的卷类型是复制卷,还有其他类型,可以参考官网文档
    2. 副本数为2,可能会存在脑裂的问题
    3. nfs这个文件夹不需要自己创建,当不存在的时候,系统会自动创建出来
  2. 报错:在根分区创建的nfs,因此系统会提示该风险,建议不要在系统分区上存放数据
    1. volume create: testglustervol: failed: The brick 10.237.44.178:/data0/nfs/brick1 is being created in the root partition. It is recommended that you don’t use the system’s root partition for storage backend. Or use ‘force’ at the end of the command if you want to override this behavior.
  3. 报错:gluster建议使用子目录而非挂载点
    1. volume create: nfs: failed: The brick 10.0.0.16:/data is a mount point. Please create a sub-directory under the mount point and use that as the brick directory. Or use ‘force’ at the end of the command if you want to override this behavior.

修改集群配置文件/etc/glusterfs/glusterd.vol

 

操作卷

  1. 启动卷:gluster volume start nfs
    1. gluster对每个磁盘会启动一个进程,如果单机上有五块磁盘,那么就会启动五个进程
  2. 检查卷:gluster volume info nfs
  3. 停止卷:gluster volume stop nfs
  4. 删除卷:gluster volume delete nfs

挂载卷

  1. mount -t glusterfs vip:/nfs /nfs(此为推荐方式)
    1. 挂载点IP基于LB方式,确保服务的高可用性
  2. mount -t glusterfs localhost:/nfs /nfs
    1. 端口默认为24007
  3. mount -t glusterfs ip:/nfs /nfs
  4. 报错:mount gluster报错:unknown filesystem type ‘glusterfs’ ,直接安装glusterfs-fuse上去即可解决报错
    1. 需要这些软件:glusterfs-client-xlator,glusterfs-libs,glusterfs-fuse,glusterfs

扩容卷

  1. gluster vol add-brick nfs {10.237.44.178,10.237.44.144,10.237.44.47}:/data1/nfs
  2. 报错:扩容需要按照3的倍数进行扩容
    1. gluster vol add-brick nfs 10.237.44.178:/data1/nfs
    2. volume add-brick: failed: Incorrect number of bricks supplied 1 with count 3

性能采集

  1. 开启性能采集:gluster volume profile nfs start
  2. 查看性能信息:gluster volume profile nfs info
  3. 关闭性能采集:gluster volume profile nfs stop

垃圾回收功能

  1. 开启垃圾回收站功能:gluster volume set nfs features.trash on
    1. 开启后,在根目录下,会创建一个.trashcan目录
  2. 设置某些目录不进行垃圾回收:gluster volume set nfs features.trash-eliminate-path monitor
    1. 是使用相对路径 /nfs/monitor 就使用monitor即可
  3. 调整垃圾回收站的文件大小限制:gluster volume set nfs features.trash-max-filesize 1GB
    1. 默认大于5MB就不进行回收,官网介绍是最大1GB,超过也不生效,但实际上只要设置10GB,也能回收2GB的文件
  4. 自定义垃圾回收目录:gluster volume set nfs features.trash-dir trash

配额管理

  1. 开启配额:gluster volume quota nfs enable
  2. 关闭配额:gluster volume quota nfs  disable
  3. 针对特定目录进行配额限制:gluster volume quota nfs limit-usage /quota 10GB
  4. 情形说明:
    1. 如果已经达到配额后,继续写入文件,会报错
      1.  failed to open ‘./test’: Disk quota exceeded
    2. 如果是一个文件从0开始写入,直接超过了配额,那么该文件不会被限制
  5. 查询当前卷的配额列表:gluster volume quota nfs list
  6. 删除当前目录的配额:gluster volume quota nfs remove /test-dir

数据平衡

  1. 开始平衡:gluster volume rebalance nfs start
  2. 平衡状态:gluster volume rebalance nfs status
  3. 停止平衡:gluster volume rebalance nfs stop

文件修复

  1. 启动文件修复:gluster volume heal nfs full
  2. 文件修复状态:gluster volume heal nfs info

故障排查

  1. 查看Brick状态,有无不在线的节点:gluster volume status nfs
    1. Glusterfs环境搭建和常规操作
  2. gluster peer status
  3. gluster volume info
  4. gluster volume profile nfs info
  5. gluster volume status all detail

参数说明(参数列表详见官网链接)

  1. gluster volume set help(参数完整列表)
  2. gluster volume set nfs performance.write-behind-window-size 1024MB
  3. gluster volume set nfs performance.cache-size 16GB
  4. gluster volume set nfs performance.io-thread-count 32(IO线程数量提升到32,默认是16)
  5. gluster volume set nfs performance.parallel-readdir on(启用并行readdir,提升使目录列表的性能)
  6. gluster volume set nfs storage.reserve  10 (磁盘预留空间调整为10%)
  7. gluster volume set nfs group metadata-cache(启用元数据缓存以提高目录操作的性能)