一 搭建 GlusterFS 集群
(1). 格式化磁盤
fdisk /dev/sdb
命令行提示下輸入【m】
輸入命令【n】添加新分區(qū)
輸入命令【p】創(chuàng)建主分區(qū)
輸入【回車】,選擇默認大小,這樣不浪費空間
輸入【回車】,選擇默認的start cylinder
輸入【w】,保持修改
(2). 添加gluster源
cat >>/etc/apt/sources.list <<EOF
deb http://ppa.launchpad.net/gluster/glusterfs-3.7/ubuntu trusty main
deb-src http://ppa.launchpad.net/gluster/glusterfs-3.7/ubuntu trusty main
EOF
(3). 安裝glusterfs
apt-get install xfsprogs glusterfs-server -y
mkfs.xfs -i size=512 /dev/sdb1
mkdir -p /glusterfs/brick #掛載點
echo '/dev/sdb1 /glusterfs/brick xfs defaults 1 2' >> /etc/fstab #設置自動掛載
mount -a && mount
#gluster volume set all cluster.op-version 30710
(4). 配置peer(加入集群節(jié)點到主機)
gluster peer probe 172.18.17.168
gluster peer status
(5). 在節(jié)點表示集群搭建成功(不管主節(jié)點還是從節(jié)點)
gluster peer status
Number of Peers: 1
Hostname: 172.18.17.168
Uuid: 39c8cda9-2275-4896-9bf1-106dc7e88304
State: Peer in Cluster (Connected)
(6). 創(chuàng)建Volume(rimag_data)
gluster volume create rimag_data replica 2 transport tcp \
172.18.16.80:/glusterfs/brick/rimag_data \
172.18.17.168:/glusterfs/brick/rimag_data
volume create: rimag_data: success: please start the volume to access data
gluster volume info
Volume Name: rimag_data
Type: Replicate
Volume ID: cc211989-9da7-4481-8a15-092712445ec9
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 172.18.16.80:/glusterfs/brick/rimag_data
Brick2: 172.18.17.168:/glusterfs/brick/rimag_data
Options Reconfigured:
performance.readdir-ahead: on
(7). 啟動Volume(rimag_data)
gluster volume start rimag_data
volume start: rimag_data: success
二 GlusterFS 客戶端配置
(1). 添加gluster源
cat >>/etc/apt/sources.list <<EOF
deb http://ppa.launchpad.net/gluster/glusterfs-3.7/ubuntu trusty main
deb-src http://ppa.launchpad.net/gluster/glusterfs-3.7/ubuntu trusty main
EOF
(2). 安裝glusterfs client
apt-get install glusterfs-client -y
(3).建立掛載目錄:(/mnt/rimag_data)
mkdir /mnt/rimag_data
(4). 掛載gluster卷
mount.glusterfs 172.18.16.80:/rimag_data /mnt/rimag_data
三 docker 使用 GlusterFS Volume
接下來,我們再來看GlusterFS如何作為Docker的存儲。Docker Volume是一種可以將容器以及容器生產(chǎn)的數(shù)據(jù)分享開來的數(shù)據(jù)格式,我們可以使用宿主機的本地存儲作為Volume的提供方,也可以使用Volume Plugin接入許多第三方的存儲。 GitHub就有一個 Docker GlusterFS Volume Plugin ,方便我們將GlusterFS掛載到容器中。具體步驟如下:
(1). 獲取docker-volume-glusterfs
go get github.com/calavera/docker-volume-glusterfs
考慮到搭建golang環(huán)境有一定的復雜性,我們也可以采用golang容器來獲取該應用
(2). 拷貝docker-volume-glusterfs至/usr/bin
cp ./docker-volume-glusterfs /usr/bin
chmod 777 /usr/bin/docker-volume-glusterfs
(3). 聲明gluster服務集群
docker-volume-glusterfs -servers node1:node2
(4). 指定volume
docker run --volume-driver glusterfs --volume rimag_data:/data alpine touch /data/hello
這里的rimag_data即我們在glusterfs集群中創(chuàng)建的volume,但需要事先手動創(chuàng)建
[參考文檔](https://developer.ibm.com/zh/articles/os-cn-glusterfs-docker-volume/)