共享缓存之glusterfs部署指南

必要软件安装

yum install centos-release-gluster
yum install glusterfs-server-4.1.1-1.el7.x86_64 mdadm -y

开启glusterfs服务

systemctl start glusterd.service && systemctl enable glusterd.service

创建raid盘

mdadm --create /dev/md0 --level=0 --raid-devices=10 /dev/vd[b-k]

格式化组号raid的盘

mkfs.ext4 -E stride=16 -b 4096 /dev/md0

设置自动挂载

mkdir -p /gluster
sed -i ‘//dev/md0/d’ /etc/fstab
cat <<‘EOF’>>/etc/fstab
/dev/md0 /gluster ext4 defaults 0 0
EOF
mount -a

mdadm -D --scan > /etc/mdadm.conf #####关键 不加这一步,关机会很严重

创建集群节点

在Server01节点上执行:
gluster peer probe .***.***. # 添加2号节点
gluster peer probe . .***.*** # 添加3号节点
此操作在一台服务器上操作即可,状态将同步到其他服务器

查看节点状态:

gluster peer status

删除/添加节点命令说明:

gluster peer detach xxx
gluster peer probe xxx

gluster对于每个节点都会生成一个UUID来标识,因此如果节点的IP或主机名发生了变化,只需要重新执行peer probe即可。不过如果一个主机名曾经用过,想再改回去,则gluster会提示已经保存过。此时只能把节点detach掉,然后重新probe

卷操作:

最新版Glusterfs支持七种Volume,常见的有Distribute卷、Stripe卷、Replica卷、Distribute stripe卷和Distribute replica卷,这五种卷可以满足不同应用对高性能、高可用的需求。

(1)distribute volume:分布式卷,文件通过hash算法分布到brick server上,这种卷是glusterfs的基础和最大特点;

(2)stripe volume:条带卷,类似RAID0,条带数=brick server数量,文件分成数据块以Round Robin方式分布到brick server上,并发粒度是数据块,大文件性能高;

(3)replica volume:镜像卷,类似RAID1,镜像数=brick server数量,所以brick server上文件数据相同,构成n-way镜像,可用性高;

(4)distribute stripe volume:分布式条带卷,brick server数量是条带数的倍数,兼具distribute和stripe卷的特点;

(5)distribute replica volume:分布式镜像卷,brick server数量是镜像数的倍数,兼具distribute和replica卷的特点;

详细的卷类型说明请参考:
http://blog.csdn.net/zzulp/article/details/39527441

本文以最常见的镜像卷为例来说明一个卷使用流程

创建卷
#在任意一台机器上面执行, 创建一个3副本的卷
gluster volume create gluster replica 3 transport tcp ***.***.***.***:/gluster ***.***.***.***:/gluster ***.***.***.***:/gluster force

启/停/删/查卷
gluster volume start repli_vol ####使用必须先start
gluster volume stop repli_vol
gluster volume delete repli_vol
gluster volume info
gluster volume status

挂载卷
mount.glusterfs Server01:/dht_vol /mnt/dht_vol/ ####server01可以为IP,也可以为域名

glusterfs数据恢复

场景:
三台glusterfs,分别为01 02 03 假如01机器因为某种原因,导致数据丢失,需要重新恢复数据

1 修改01机器上glusterfs的UUID 非必选,查看是否需要修改
在正常的02机器上查看01机器的的UUID
gluster peer status
修改01机器上的UUID
vim /var/lib/glusterd/glusterd.info #####如果一样,则不修改

2 加入集群
首先删除master上的集群
gluster peer detach 01
再添加集群
gluster peer probe 01

3 删除重建brick
查看volume的状态时,会发现01机器的brick是N
gluster volume status
手动删除01机器的brick
gluster volume remove-brick volume-name replica 2 01-brick-path force
重新添加01机器的brick
gluster volume add-brick volume-name replica 3 01-brick-path force

glusterfs 性能调优

开启 指定 volume 的配额: (models 为 volume 名称)
gluster volume quota models enable

限制 models 中 / (既总目录) 最大使用 80GB 空间
gluster volume quota models limit-usage / 80GB

#设置 cache 4GB
gluster volume set models performance.cache-size 4GB

#开启 异步 , 后台操作
gluster volume set models performance.flush-behind on

#设置 io 线程 32
gluster volume set models performance.io-thread-count 32

#设置 回写 (写数据时间,先写入缓存内,再写入硬盘)
gluster volume set models performance.write-behind on

你可能感兴趣的:(共享缓存)