本文展示如何在一台Linux物理机/虚拟机上,创建GlusterFS集群。目的在于测试和学习GlusterFS,而非将GlusterFS应用生产环境。
下载节点容器镜像
1
| docker pull gluster/gluster-centos
|
创建节点容器实例
1
2
3
4
5
6
7
8
9
10
| for i in `seq 1 3`; do
docker run -d --privileged=true --name gluster$i --hostname=gluster$i \
-v /etc/glusterfs$i:/etc/glusterfs:z \
-v /var/lib/glusterd$i:/var/lib/glusterd:z \
-v /var/log/glusterfs$i:/var/log/glusterfs:z \
-v /srv/glusterfs$i:/srv/glusterfs:z \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /dev:/dev \
gluster/gluster-centos
done
|
组建集群
1
| docker exec -ti gluster1 /bin/bash
|
1
2
| gluster peer probe <gluster2 ip addr>
gluster peer probe <gluster3 ip addr>
|
创建卷
冗余卷 (replica)
1
| gluster peer volume create v1 replica 3 172.17.0.{2,3,4}:/srv/glusterfs/v1 force
|
条带卷 (stripe)
1
| gluster peer volume create v2 strip 3 172.17.0.{2,3,4}:/srv/glusterfs/v2 force
|
纠删码卷 (disperse)
1
| gluster peer volume create e3 disperse 3 redundancy 1 172.17.0.{2,3,4}:/srv/glusterfs/v3 force
|
挂载卷
通过FUSE挂载
1
| mount -t glusterfs 172.17.0.2:/v1 /mnt/glusterfs/
|
脚本化
为了便于测试,我将上述诸多过程归纳成脚本:gluster_docker
Gluster Web Interface
gluster-web-interface是一个管理GlusterFS的Web应用应用,它基于Ruby on Rails实现。
为了简化其安装,我创建其docker镜像docker-gluster-web-interface:
1
| docker run -it -p 3000:3000 like/gluster-web-interface
|