GlusterFS分布式文件系统快速管理

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


XDFS提供了WebGUI管理系统,这里不作介绍,感兴趣的读者可以与TaoCloud|大道科技(www.taocloudx.com ,[email protected] )联系和咨询相关产品信息。但命令行CLI管理往往更加高效,并且有利于更加深入地理解架构原理。这里简要介绍基于命令行方式进行XDFS快速管理。


推荐配置

 XDFS非常适合大文件读写的带宽型应用,诸如视频存储、HPC高性能计算、容器镜像存储、冷数据存储、日志存储、数据备份等应用场景。XDFS并不擅长小文件读写的IOPS型应用,需要综合硬件、软件和系统进行优化。根据XDFS的架构原理和最佳实践,实际部署应用时,我们给出如下推荐配置供参考。

项目

推荐配置

说明

单个集群规模

64节点

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

每卷最大客户端数量

<= 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)   数据卷不再需要时,客户端卸载并停止卷,最后删除卷,如果数据不再需要则清除;

 

创建卷          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


客户端挂载

XDFS支持POSIX原生协议,同时支持CIFS/NFS/FTP标准NAS访问协议。应用环境允许的情况下,优先采用POSIX协议,Linux/Unix客户端采用NFS协议,Windows客户端采用CIFS协议。这里介绍POSIX协议的客户端挂载,提示一点,创建卷时如果采用名字或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

客户端等待时间

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

字节


你可能感兴趣的:(GlusterFS,TaoCloud,XDFS)