美文网首页GlusterFS
GlusterFS 使用

GlusterFS 使用

作者: 四冶读史 | 来源:发表于2019-03-23 18:24 被阅读0次

    [toc]

    概述

    GlusterFS 基础使用。

    扩展卷

    以复制卷为例,给新创建的 gv0 添加磁盘。

    挂载磁盘

    挂载方式参考《GlusterFS 安装》。
    并在 gfs-node-1gfs-node-2 上分别执行创建目录命令。

    $ mkdir -p /bricks/brick-2/gv0
    

    添加磁盘

    $ gluster volume stop gv0
    $ gluster volume add-brick gv0 replica 2 gfs-node-1:/bricks/brick-2/gv0 gfs-node-2:/bricks/brick-2/gv0
    
    $ gluster volume start gv0
    $ gluster volume info
    Volume Name: gv0
    Type: Distributed-Replicate
    Volume ID: 77331c60-c200-4cec-b16c-33365dc2d2d5
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 2 x 2 = 4
    Transport-type: tcp
    Bricks:
    Brick1: gfs-node-1:/bricks/brick-1/gv0
    Brick2: gfs-node-2:/bricks/brick-1/gv0
    Brick3: gfs-node-1:/bricks/brick-2/gv0
    Brick4: gfs-node-2:/bricks/brick-2/gv0
    Options Reconfigured:
    transport.address-family: inet
    nfs.disable: on
    performance.client-io-threads: off
    

    因为创建 gv0 时,replica2,所以在添加磁盘个数时需是 2 的整数倍。

    测试

    挂载 gv0,并添加文件。

    $ mount -t glusterfs gfs-node-1:/gv0 /mnt
    $ for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
    

    检查文件。
    gfs-node-1

    $ ls -lA /mnt|wc -l
    101
    ls -lA /bricks/brick-1/gv0/ |wc -l
    101
    

    gfs-node-2

    $ ls -lA /bricks/brick-1/gv0/|wc -l
    101
    

    发现创建的文件存储了 2 个副本,一个存储在 gfs-node-1,一个存储在 gfs-node-2
    继续创建文件。

    $ for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/test-2-$i; done
    

    检查文件分布。
    nfs-node-1

    $ ls -lA /mnt|wc -l
    202
    ls -lA /bricks/brick-1/gv0/ |wc -l
    202
    ls -lA /bricks/brick-2/gv0/ |wc -l
    0
    

    gfs-node-2

    ls -lA /bricks/brick-1/gv0/ |wc -l
    202
    ls -lA /bricks/brick-2/gv0/ |wc -l
    0
    

    发现文件并没有分布到 brick-2 上。

    注:平衡布局是很有必要的,因为布局结构是静态的,当新的 bricks 加入现有卷,新建的文件会分布在旧的 brick 中,所以需要平衡布局结构,使新加入的 bricks 生效,布局只是使新布局生效。并不会在新的布局上移动老的数据,如果想在新布局生效后,重新平衡卷中的数据,还需要对卷中的数据进行平衡。

    平衡磁盘

    $ gluster volume rebalance gv0 start
    volume rebalance: gv0: success: Rebalance on gv0 has been started successfully. Use rebalance status command to check status of the rebalance process.
    ID: fd8935e8-58b0-472a-9017-21879a9a1662
    
    $ gluster volume rebalance gv0 status
                                        Node Rebalanced-files size scanned failures skipped status run time in h:m:s
                                   --------- ----------- ----------- ----------- ----------- ----------- ------------ --------------
                                   localhost 47 727.0KB 200 0 0 completed 0:00:01
                                  gfs-node-2 48 742.5KB 204 0 0 completed 0:00:02
    volume rebalance: gv0: success
    

    再创查看文件。
    gfs-node-1

    $ ls -lA /bricks/brick-1/gv0/|wc -l
    107
    $ ls -lA /bricks/brick-2/gv0/|wc -l
    97
    

    gfs-node-2

    $ ls -lA /bricks/brick-1/gv0/|wc -l
    107
    $ ls -lA /bricks/brick-2/gv0/|wc -l
    97
    

    发现文件已被平衡地分配到各个磁盘。

    收缩卷

    以复制卷为例,给新创建的 gv0 缩减磁盘。
    先将数据迁移到其它可用的 Brick,迁移结束后才将该 Brick 移除:

    $ gluster volume remove-brick gv0 replica 2 gfs-node-1:/bricks/brick-2/gv0 gfs-node-2:/bricks/brick-2/gv0 start
    

    在执行了 start 之后,可以使用 status 命令查看移除进度。

    $ gluster volume remove-brick gv0 replica 2 gfs-node-1:/bricks/brick-2/gv0 gfs-node-2:/bricks/brick-2/gv0 status
    

    不进行数据迁移,直接删除该 brick

    $ gluster volume remove-brick gv0 replica 2 gfs-node-1:/bricks/brick-2/gv0 gfs-node-2:/bricks/brick-2/gv0 commit
    

    注:如果是复制卷或者条带卷,则每次移除的 brick 数必须是 replica 或者 stripe 的整数倍。
    查看卷信息。

    $ gluster volume info gv0
    Volume Name: gv0
    Type: Replicate
    Volume ID: 77331c60-c200-4cec-b16c-33365dc2d2d5
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: gfs-node-1:/bricks/brick-1/gv0
    Brick2: gfs-node-2:/bricks/brick-1/gv0
    Options Reconfigured:
    transport.address-family: inet
    nfs.disable: on
    performance.client-io-threads: off
    

    配置卷

    配置格式如下:

    $ gluster volume set volumename value
    

    优化参数及其作用。

    参数 描述
    Auth_allow IP访问授权,缺省值(*.allow all),合法值:Ip地址。
    Cluster.min-free-disk 剩余磁盘空间阀值,缺省值(10%),合法值:百分比。
    Cluster.stripe-block-size 条带大小,缺省值(128KB),合法值:字节。
    Network.frame-timeout 请求等待时间,缺省值(1800s),合法值:1-1800。
    Network.ping-timeout 客户端等待时间,缺省值(42s),合法值:0-42。
    Nfs.disabled 关闭NFS服务,缺省值(Off),合法值:Off on。
    Performance.io-thread-count IO线程数,缺省值(16),合法值:0-65。
    Performance.cache-refresh-timeout 缓存校验时间,缺省值(1s),合法值:061。
    Performance.cache-size 读缓存大小,缺省值(32MB),合法值:字节。
    Performance.quick-read 优化读取小文件的性能。
    Performance.read-ahead 用预读的方式提高读取的性能,有利于应用频繁持续性的访问文件,当应用完成当前数据块读取的时候,下一个数据块就已经准备好了。
    Performance.write-behind 先写入缓存内,再写入硬盘,以提高写入的性能。
    Performance.io-cache 缓存已经被读过的。

    迁移卷

    使用 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
    

    删除卷

    $ glusterfs volume gv0 stop
    $ glusterfs volume remove gv0
    

    日常维护

    使用 zabbix 自带的模板即可,CPU、内存、磁盘空间、主机运行时间、系统 load。日常情况要查看服务器监控值,遇到报警要及时处理。

    看下节点有没有在线

    $ gluster volume status nfsp
    

    启动完全修复

    $ gluster volume heal gv2 full
    

    查看需要修复的文件

    $ gluster volume heal gv2 info
    

    查看修复成功的文件

    $ gluster volume heal gv2 info healed
    

    查看修复失败的文件

    $ gluster volume heal gv2 heal-failed
    

    查看主机的状态

    $ gluster peer status
    

    查看脑裂的文件

    $ gluster volume heal gv2 info split-brain
    

    参考地址:
    https://blog.csdn.net/youngstonep/article/details/50196283
    https://www.cnblogs.com/huangyanqi/p/8406534.html

    相关文章

      网友评论

        本文标题:GlusterFS 使用

        本文链接:https://www.haomeiwen.com/subject/lzosvqtx.html