Glusterfs
是一个具有可以扩展到几个PB数量级的集群文件系统。它可以把多个不同类型的存储块通过Infiniband RDMA或者TCP/IP汇聚成一个大的并行网络文件系统。
一,Volume管理
数据的传输协议支持tcp和infiniband rdma协议。
1,卷的三种类型:
(1)distributed volume
分布卷可以将某个文件随机的存储在卷内的一个brick内,通常用于扩展存储能力,不支持数据的冗余。除非底层的brick使用RAID等外部的冗余措施。
gluster volume create mamm-volume node1:/media node2:/media node3:/media ...
(2)replicated volume
复本卷在创建时可指定复本的数量,复本在存储时会在卷的不同brick上,因此有几个复本就必须提供至少多个brick。
gluster volume create mamm-volume repl 2 node1:/media node2:/media
注意:
在创建复本卷时,brick数量与复本个数必须相等;否则将会报错。
另外如果同一个节点提供了多个brick,也可以在同一个结点上创建复本卷,但这并不安全,因为一台设备挂掉,其上面的所有brick就无法访问了
(3)striped volume
分片卷将单个文件分成小块(块大小支持配置,默认为128K),然后将小块存储在不同的brick上,以提升文件的访问性能。
gluster volume create mamm-volume stripe 2 node1:/media node2:/media
stripe后的参数指明切片的分布位置个数
注意:
brick的个数必须等于分布位置的个数
2,扩展类型例如:
distribute replication volume
此类型卷是基本复本卷的扩展,可以指定若干brick组成一个复本卷,另外若干brick组成另个复本卷。单个文件在复本卷内数据保持复制,不同文件在不同复本卷之间进行分布
gluster volume create dr-volume repl 2 node1:/exp1 node2:/exp2 node3:/exp3 node4:/exp4node5:/exp5 node6:/exp6
注意:
复本卷的组成依赖于指定brick的顺序,以上1、2相同3、4相同5、6相同
brick必须为复本数K的N倍,brick列表将以K个为一组,形成N个复本卷
二,服务端配置
1,安装
wget -P /etc/yum.repos.d/ http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
yum install glusterfs-server
/etc/init.d/glusterd start
2,添加节点
gluster peer probe 192.168.222.134 #添加设备到存储池
gluster peer probe 192.168.222.135
gluster peer status #查看除本机外的其他设备状态
gluster peer detach 192.168.222.134 #将某设备从存储池中删除
3,创建卷
gluster volume create gfs01 repl 2 192.168.222.134:/opt/gfs 192.168.222.135:/opt/gfs
gluster volume info #查看卷信息。
gluster volume status #查看卷状态。
4,启/停/删除卷
gluster volume sart gfs01
gluster volume stop gfs01
gluster volume delete gfs01
5,访问控制
gluster volume set glfs01 auth.allow 192.168.222.1,192.168.*.*
6,扩展/收缩卷
新加卷
gluster volume add-brick gfs01 repl 2 192.168.222.134:/opt/glusfs 192.168.222.135:/opt/glusfs force
删除卷
gluster volume remove-brick gfs01 repl 2 192.168.222.134:/opt/gfs 192.168.222.135:/opt/gfs start
gluster volume remove-brick gfs01 repl 2 192.168.222.134:/opt/gfs 192.168.222.135:/opt/gfs status
gluster volume remove-brick gfs01 repl 2 192.168.222.134:/opt/gfs 192.168.222.135:/opt/gfs commit
注意:扩展或收缩卷时,也要按照卷的类型,加入或减少的brick个数必须满足相应的要求。
当对卷进行了扩展或收缩后,需要对卷的数据进行重新均衡。
gluster volume rebalance mamm-volume start|stop|status
7,迁移卷
主要完成数据在卷之间的在线迁移
gluster volume replace-brick gfs01 192.168.222.134:/opt/gfs 192.168.222.134:/opt/test start force
#启动迁移过程
gluster volume replace-brick gfs01 192.168.222.134:/opt/gfs 192.168.222.134:/opt/test status
#查看迁移状态
gluster volume replace-brick gfs01 192.168.222.134:/opt/gfs 192.168.222.134:/opt/test commit
#迁移完成后提交完成
gluster volume replace-brick gfs01 192.168.222.134:/opt/gfs 192.168.222.134:/opt/test commit force
#机器出现故障,执行强制提交
8,触发副本自愈
gluster volume heal mamm-volume #只修复有问题的文件
gluster volume heal mamm-volume full #修复所有文件
gluster volume heal mamm-volume info #查看自愈详情
data-self-heal, metadata-self-heal and entry-self-heal
启用或禁用文件内容、文件元数据和目录项的自我修复功能,默认情况下三个全部是“on”。
gluster volume set gfs01 entry-self-heal off
三,客户端配置
1,安装
#yum -y install glusterfs glusterfs-fuse
2,挂载
#mkdir /mnt/gfs
#mount -t glusterfs 192.168.222.135:/gfs01 /mnt/gfs
3,加入开机启动或/etc/rc.local
#vim /etc/fstab
192.168.222.135:/gfs01 /mnt/gfs glusterfs default,_netdev 0 0