• GlusterFS分布式文件系统高速管理


    TaoCloud XDFS基于GlusterFS开源分布式文件系统,进行了系统优化、project化、定制化和产品化工作,五年以上的实践积累了大量实践经验,包含客户案例、最佳实践、定制开发、咨询服务和技术培训。XDFS推崇KISS大道至简的哲学,从架构到使用、管理都非常简便。


    XDFS提供了WebGUI管理系统。这里不作介绍,感兴趣的读者能够与TaoCloud|大道科技(www.taocloudx.com ,info@taocloudx.com )联系和咨询相关产品信息。

    但命令行CLI管理往往更加高效,而且有利于更加深入地理解架构原理。这里简要介绍基于命令行方式进行XDFS高速管理。


    推荐配置

     XDFS很适合大文件读写的带宽型应用,诸如视频存储、HPC高性能计算、容器镜像存储、冷数据存储、日志存储、数据备份等应用场景。

    XDFS并不擅长小文件读写的IOPS型应用,须要综合硬件、软件和系统进行优化。

    依据XDFS的架构原理和最佳实践,实际部署应用时,我们给出例如以下推荐配置供參考。

    项目

    推荐配置

    说明

    单个集群规模

    64节点

    集群管理模式限制,大规模集群有压力

    每卷最大client数量

    <= 1000个

    Brick并发连接数量不能太大

    每节点brick数量

    4-8个

    Brick进程太多占用系统资源

    单个brick容量

    <= 100 TB

    平衡容量与性能,本地文件系统限制

    RAID/LVM

    多盘组成RAID

    单个Brick容量和性能,控制brick数量

    Brick文件系统

    XFS

    稳定,16TB以上大容量,格式化快

    卷类型

    哈希复制卷

    高可用,条带卷不成熟

    数据网络

    10GbE

    内部通信不能有瓶颈,尤其是NAS协议

    訪问协议

    POSIX

    原生高可用,性能






















    集群管理

    XDFS通过gluster peer命令管理集群,包含增加节点、删除节点、查看状态、列举节点四个操作。

    命令行格式例如以下:

    增加节点      gluster    peer       probe    <node name | node ip>

    删除节点      gluster     peer       detach     <node name | node ip>

    查看状态      gluster    peer       status

    列举节点      gluster    pool       list


    磁盘管理

    推荐使用XFS进行磁盘格式化,通常和缺省參数mount就可以,并设置开机自己主动挂载。这里须要提示的是,/etc/fstab中採用UUID进行挂载,避免盘符发生变化导致的混乱。

    格式化磁盘         mkfs.xfs         /dev/sdb

    设置UUID           xfs_admin      -U `uuidgen` /dev/sdb

    设置开机启动      echo "UUID=XXX  /xdfs/brick1 xfs  defaults 0 0" >>/etc/fstab


    数据卷管理

    XDFS数据卷实际上就是分布式文件系统。不能和SAN存储的LUN概念混为一谈。XDFS通过gluster volume命令管理卷。这条命令包括丰富的子命令。功能涉及卷管理、卷扩容修复、状态查看三大块。实际运维中,使用频繁高的仅有create, start, set, add-brick, rebalance, info, status等几条命令,并且使用极为简便。数据卷运维流程大致例如以下:

    (1)   依照存储需求创建卷、设置參数、启动卷,为业务提供数据服务。

    (2)   容量或性能不够时。在线扩展节点和卷,进行容量均衡,不影响业务正常使用;

    (3)   节点或brick发生问题,或者迁移,或者数据发生不一致,进行在线替换作修复;

    (4)   数据卷不再须要时,client卸载并停止卷,最后删除卷,假设数据不再须要则清除;

     

    创建卷          gluster volume create   <volname> [replica <count>] <brick list>

    删除卷          gluster volume delete     <volname>

    启动卷          gluster volume start        <volname>

    停止卷          gluster volume stop       <volname>

    配置卷          gluster volume set         <volname> <key> <value>

     

    扩展卷          gluster volume add-brick       <volname> [replica<count>]<new brick>

    缩容卷          gluster volume remove-brick<volname> [replica <count>] <brick> start

                         glustervolume remove-brick <volname> [replica <count>] <brick>status

                         glustervolume remove-brick <volname> [replica <count>] <brick>commit

    均衡卷          gluster volumerebalance       <volname> [fix-layout]start

    替换卷          gluster volume replace-brick  <volname><brick> <new brick> start

                         gluster volumereplace-brick  <volname><brick> <new brick> status

                         gluster volume replace-brick  <volname> <brick> <newbrick> commit

    修复卷          gluster volume heal              <volname>

     

    列举全部卷         gluster volume list

    查看卷配置         gluster volume info       [volname]

    查看卷状态         gluster volume status     [volname]

     

    很多其它帮助信息      gluster volume help


    client挂载

    XDFS支持POSIX原生协议,同一时候支持CIFS/NFS/FTP标准NAS訪问协议。

    应用环境同意的情况下,优先採用POSIX协议,Linux/Unixclient採用NFS协议。Windowsclient採用CIFS协议。这里介绍POSIX协议的client挂载。提示一点,创建卷时假设採用名字或IP,则挂载时须要採用同样的方式。

    XDFS挂载           mount    -t glusterfs      <nodename|node ip>:volume

                                                                   [backupvolfile-server=nodename | node ip]

                                                                   <mountpoint>

    开机自己主动挂载      <node name|node ip>:volume      

                                <mount point>

                                glusterfs

                                defaults, _netdev, backupvolfile-server=[nodename | node ip]  0 0


    系统调优

    XDFS的底层核心是GlusterFS分布式文件系统,为了满足不同的应用负载需求,它提供了很多可调节的系统參数,经常使用调优參数例如以下表所看到的。这些系统參数设置没有普遍适用的经验值,须要依据实际情况进行理论分析和实际測试。从而确定最佳的系统參数。以获得更好的总体效果。參数设置命令例如以下:

    參数设置      gluster    volume   set   <key>     <value>

    很多其它參数      gluster    volume   set  help

    參数选项

    參数说明

    缺省值

    合法值

    Auth.allow / Auth.reject

    IP訪问授权

    *(allow all)

    IP地址

    Cluster.min-free-disk

    剩余磁盘空间阈值

    10%

    百分比

    Cluster.stripe-block-size

    条带大小

    128KB

    字节

    Network.frame-timeout

    请求等待时间

    1800s

    0-1800

    Network.ping-timeout

    client等待时间

    42s

    0-42

    Nfs.disabled

    关闭NFS服务

    Off

    Off|on

    Performance.io-thread-count

    IO线程数

    16

    0-65

    Performance.cache-refresh-timeout

    缓存校验周期

    1s

    0-61

    Performance.cache-size

    读缓存大小

    32MB

    字节


  • 相关阅读:
    从TCP三次握手说起——浅析TCP协议中的疑难杂症
    动态绑定是如何实现的?
    C++对象的内存模型
    C/C++关键字
    libevent库介绍--事件和数据缓冲
    libevent编程疑难解答
    大型工程多个目录下的Makefile写法
    C++中的RAII机制
    C++中的智能指针
    二叉树的非递归遍历
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7249905.html
Copyright © 2020-2023  润新知