glusterfs是一款开源的分布式文件系统。
它具备高扩展、高可用及高性能等特性,由于其无元数据服务器的设计,使其真正实现了线性的扩展能力,使存储总容量可轻松达到PB级别,支持数千客户端并发访问。
主要应用在跨集群系统中,具有很好的可扩展性。
glusterfs常用的命令
安装
# yum install centos-release-gluster -y
服务器端:
# yum install glusterfs-server -y
客户端:
# yum install glusterfs-client -y
# yum install glusterfs-fuse -y
1 服务器节点
# gluster peer status //查看所有节点信息,显示时不包括本节点
# gluster peer probe NODE-NAME //添加节点
# gluster peer detach NODE-NAME //移除节点
2 glusterd服务
/etc/init.d/glusterd start |stop |status
3.卷管理
创建卷(在任一节点执行)
卷有6种类型:
<1>复制卷
gluster volume create VOLNAME [replica COUNT] [transport tcp | rdma | tcp, rdma] BRICK...
<2>条带卷
gluster volume create VOLNAME [stripe COUNT] [transport tcp | rdma | tcp, rdma] BRICK...
<3>分布式卷
gluster volume create VOLNAME [transport tcp | rdma | tcp, rdma] BRICK
<4>分布式复制卷
gluster volume create VOLNAME [replica COUNT] [transport tcp | rdma | tcp, rdma] BRICK...
<5>分布式条带卷
gluster volume create VOLNAME [stripe COUNT] [transport tcp | rdma | tcp, rdma] BRICK...
<6>条带复制卷
gluster volume create VOLNAME [stripe COUNT] [replica COUNT] [transport tcp | rdma | tcp, rdma] BRICK...
启动|停止卷
#gluster volume start|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 <VOLNAME> <OPTION> <PARAMETER>
扩展卷
# gluster volume add-brick <VOLNAME> <NEW-BRICK>
注意,如果是复制卷或者条带卷,则每次添加的Brick数必须是replica或者stripe的整数倍。
收缩卷
格式:volume remove-brick <VOLNAME> [replica <COUNT>] <BRICK> ... <start|stop|status|commit|force>
使用start是先将数据迁移到其它可用的Brick,迁移结束后才将该Brick移除
使用commit命令执行Brick移除,则不会进行数据迁移而直接删除Brick
迁移卷 (主要完成数据在卷之间的在线迁移)
volume replace-brick <VOLNAME> <SOURCE-BRICK> <NEW-BRICK> {commit force}
重新均衡卷
不迁移数据:
# gluster volume rebalance lay-outstart
# gluster volume rebalance start|stop|status
# gluster volume rebalance startforce
客户端挂载卷
mount -t glusterfs 192.168.1.28:/testvol /mnt/
异常信息:volume add-brick: failed: /data/brick/brick01 is already part of a volume
说明/data/brick/brick01 曾经是一个Brick。解决方法:
# rm -rf /data/brick/brick01.glusterfs
# setfattr -x trusted.glusterfs.volume-id /data/brick/brick01
# setfattr -x trusted.gfid /data/brick/brick01
遇到一台机器报错:
E [MSGID: 101066] [graph.c:327:glusterfs_graph_init] 0-data-quick-read: initializing translator failed
E [MSGID: 101176] [graph.c:698:glusterfs_graph_activate] 0-graph: init failed
W [MSGID: 101002] [options.c:995:xl_opt_validate] 0-glusterfs: option 'address-family' is deprecated, preferred is 'transport.address-family', continuing with correction
E [MSGID: 127002] [quick-read.c:838:check_cache_size_ok] 0-mysql-backup-quick-read: Cache size 4294967296 is greater than the max size of 4142899200
排查发现,机器的内存小于glusterfs的performance.cache-size,导致挂载失败,调整cache-size之后解决。