集群”主要分为高性能集群HPC(High Performance Cluster)、高可用集群HAC(High AvailablityCluster)和负载均衡集群LBC(Load BalancingCluster)。集群文件系统是指协同多个节点提供高性能、高可用或负载均衡的文件系统,它是分布式文件系统的一个子集,消除了单点故障和性能瓶问题。对于客户端来说集群是透明的,它看到是一个单一的全局命名空间,用户文件访问请求被分散到所有集群上进行处理。此外,可扩展性(包括Scale-Up和Scale-Out)、可靠性、易管理等也是集群文件系统追求的目标。在元数据管理方面,可以采用专用的服务器,也可以采用服务器集群,或者采用完全对等分布的无专用元数据服务器架构。
gluster种类:
根据实际需求选择distribute, stripe,replica及复合卷
1)Replicated:创建逻辑卷
gluster volume create replica-volume replica 2 transport tcpserver1:/exp1 server2:/exp2
2)Distributed(可能导致一些数据丢失,因为没有副本)
gluster volume create replica-volume server1:/exp1server2:/exp2
3)Striped(高并发环境访问大文件)
gluster volume create replica-volume stripe 2 transport tcpserver1:/exp1
4)Distributed Replicated(能够提高读性能)
gluster volume create replica-volume replica 2 transport tcpserver1:/exp1
server2:/exp2 server3:/exp3 server4:/exp4
5)Distributed Striped
gluster volume create replica-volume stripe 4 transport tcpserver1:/exp1
server2:/exp2 server3:/exp3 server4:/exp4
命令:gluster volume set VOLNAME OPTION PARAMETER
Expanding Volumes
你可能想在线扩展卷的大小,例如:你想给分布式的卷中增加brick,以增加卷的容量。注意:当你给分布式复制卷和分布式条带卷中增加bricks时,你增加的bricks的数目必须是复制或者条带数目的倍数,例如:你给一个分布式复制卷的replica为2,你在增加bricks的时候数量必须为2、4、6、8等。
先把你想加入的存储服务器加入可信存储池中:
gluster peer probe HOSTNAME
然后再把该存储服务器上的cricks加入卷中:
gluster volume add-brick VOLNAME NEW-BRICK
接着查看卷信息
gluster volume info
最后要重新平衡一下卷上的文件,使新卷上也分布文件
Shrinking Volumes
你可能想在线缩小卷的大小,例如:当硬件损坏或者网络故障的时候,你可能想在卷中移除相关的bricks。注意:当你移除bricks的时候,你在gluster的挂载点将不能继续访问数据,只有配置文件中的信息移除后你才能继续访问bricks的数据。当移除分布式复制卷或者分布式条带卷的时候,移除的bricks数目必须是replica或者stripe的倍数。例如:一个分布式条带卷的stripe是2,当你移除bricks的时候必须是2、4、6、8等。
移除bricks:
gluster volume remove-brick VOLNAME BRICK
检查卷信息:
gluster volume info
重新平衡卷,确保所有的文件都分布在bricks中。
Migrating Volumes
你可能想在线迁移一个brick中的数据到另一个brick中。
首先确保把相关的存储服务器加入可信存储池中。
迁移数据到另一个brick中:
gluster volume replace-brick VOLNAME BRICKNEW-BRICK start
如果有需要,你在中途中可以暂停迁移
gluster volume replace-brick VOLNAME BRICK NEW-BRICKpause
如果有需要,你在中途中可以中断迁移
gluster volume replace-brick VOLNAME BRICK NEW-BRICK abort
检查brick迁移的进度状态
gluster volume replace-brick VOLNAME BRICK NEW-BRICK status
提交迁移数据从一个bricks到另一个brick
gluster volume replace-brick VOLNAME BRICK NEW-BRICK commit
Rebalancing Volumes
当你扩展或者缩小卷之后,需要重新在服务器直接重新平衡一下数据,重新平衡的操作被分为两个步骤:
1Fix Layout
修改扩展或者缩小后的布局,以确保文件可以存储到新增加的节点中。
2Migrate Data
重新平衡数据在新加入bricks节点之后。
* Fix Layout and Migrate Data
先重新修改布局然后移动现有的数据(重新平衡)
你可以在在平衡过程中查看平衡信息:
gluster volume rebalance VOLNAME status
你也可以暂停平衡,再次启动平衡的时候会从上次暂停的地方继续开始平衡。
gluster volume rebalance VOLNAME stop
平衡布局是很有必要的,因为布局结构是静态的,当新的bricks加入现有卷,新创建的文件会分布到旧的bricks中,所以需要平衡布局结构,使新加入的bricks生效。布局平衡只是使新布局生效,并不会在新的布局移动老的数据,如果你想在新布局生效后,重新平衡卷中的数据,还需要对卷中的数据进行平衡。
gluster volume rebalance VOLNAME fix-layout start
gluster volume rebalance VOLNAME migrate-data start
也可以两步合一步同时操作
gluster volume rebalance VOLNAME start
你也可以删除/停止卷
gluster volume stop/delete VOLNAME
Triggering Self-Heal on Replicate
find gluster-mount -noleaf -print0 | xargs --null stat>/dev/null
Managing GlusterFS Geo-replication
GlusterFS Geo-replication provides a continuous, asynchronous, andincremental replication service
from one site to another over Local Area Networks (LANs), Wide AreaNetwork (WANs), and across
the Internet.
Monitoring your GlusterFS Workload
1Running GlusterFS Volume Profile Command
Profile Command 提供接口查看一个卷中的每一个brick的IO信息。
在查看相关信息之前,现必须启动profiling:
gluster volume profile VOLNAMEstart
然后查看相关IO信息
gluster volume profile VOLNAME info
查看完毕后关闭Profiling
gluster volume profile VOLNAME stop
2Running GlusterFS Volume TOP Command
Top command允许你查看bricks的性能例如:read, write, file open calls, file read calls,file write calls, directory open calls, and directory realcalls
查看打开的fd
gluster volume top VOLNAME open[brick BRICK-NAME] [list-cnt cnt]
查看调用次数最多的读调用
gluster volume top VOLNAME read [brickBRICK-NAME] [list-cnt cnt]
查看次数最多的写调用
gluster volume top VOLNAME write [brickBRICK-NAME] [list-cnt cnt]
查看次数最多的目录调用
gluster volume top VOLNAME opendir [brickBRICK-NAME] [list-cnt cnt]
gluster volume top VOLNAME readdir [brickBRICK-NAME] [list-cnt cnt]
查看每个brick的读性能
gluster volume top VOLNAME read-perf [bs blk-sizecount count] [brick BRICK-NAME] [list-cnt cnt]
查看每个brick的写性能
gluster volume top VOLNAME write-perf [bsblk-size count count] [brick BRICK-NAME] [list-cnt cnt]
Managing Directory Quota
目录配额允许你在glusterfs中限制目录/卷使用的磁盘空间,存储管理员可以在目录级别或者卷级别控制磁盘的使用率。你甚至可以给一个还未创建的目录设置地盘限制,当相应的目录创建后,该磁盘限制会立即生效。
要使用配额,则必须首先在相应的卷上开启配额:
gluster volume quota VOLNAME enable
如果不需要配额,也可以关闭他
gluster volume quota VOLNAME disable
1 设置磁盘限制
gluster volume quota VOLNAME limit-usage /directorylimit-value
显示卷的磁盘限制信息
gluster volume quota VOLNAME list [/directoryname]
更新内存缓存大小,有时候为了性能的原因,quota caches the directory sizes on client。
gluster volume set VOLNAME features.quota-timeout value
消除磁盘限制
gluster volume quota VOLNAME remove /directory name