转载

Docker Volume Plugin试用

为什么需要

Docker管理应用,应用要存数据;根据应用的需要,数据空间有可能需要在多个HOST之间被共享,有可能需要支持多种后端存储(Ceph/GlusterFS/EBS/…),还有可能需要对数据空间本身做管理(snapshot/backup/clone…);

上面是应用的需要,再回过头来看看Docker对存储的使用,一个字:mount;

为了把这两头凑起来,简单分类有这样几种方法:

I 编排系统管理存储,将已经规划好的存储空间交给Docker,Docker只管mount就好

Docker Volume Plugin试用

II 编排系统只下发存储使用需求,由Docker自己管理存储系统,自己创建卷/mkfs/mount;Docker Volume Plugins属于这种

Docker Volume Plugin试用

III 存储作为一种应用服务,应用自己去联系

现在有哪些

https://github.com/docker/dock ... ns.md

试用一下

glusterfs

安装

yum install go

mkdir –p /home/gopath

mkdir –p /home/gopath/src

mkdir –p /home/gopath/bin

mkdir –p /home/gopath/pkg

GOPATH=/home/gopath

export GOPATH

go get github.com/calavera/docker-volume-glusterfs

使用

启动plugin

./docker-volume-glusterfs --servers=172.16.74.24:172.16.74.25

使用glusterfs的test-vol作为数据盘

docker run -it --volume-driver glusterfs -v test-vol:/datas/ ubuntu /bin/bash

Docker Volume Plugin试用

Trouble shootting

package golang.org/x/net/proxy: unrecognized import path "golang.org/x/net/proxy"

mkdir -p /home/gopath/src/golang.org/x

cd /home/gopath/src/golang.org/x

git clone https://github.com/golang/net

convoy

安装

wget https://github.com/rancher/con ... ar.gz

tar xvf convoy.tar.gz

cp convoy/convoy convoy/convoy-pdata_tools /usr/local/bin/

mkdir -p /etc/docker/plugins/

bash -c 'echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec'

测试环境,构建loop块设备,为后面的devicemapper-thin-pool使用

truncate -s 100G data.vol

truncate -s 1G metadata.vol

losetup /dev/loop5 data.vol

losetup /dev/loop6 metadata.vol

使用

convoy daemon --drivers devicemapper --driver-opts dm.datadev=/dev/loop5 --driver-opts dm.metadatadev=/dev/loop6

docker run -v vol-1/data --volume-driver=convoy -it magnum /bin/bash

Docker Volume Plugin试用

Docker Volume Plugin试用

支持snapshot/backup

Docker Volume Plugin试用

其他

convoy目前支持devicemapper、vfs和ebs(s3)

demo: https://asciinema.org/a/9y5nbp ... d%3D2

自己开发一个?

https://github.com/docker/dock ... pi.md

感觉怎么样

第一, 试用的两个plugin可以工作,但离成熟还有段距离,比如convoy,可能和两年前的cinder差不多

第二, 有段时间觉得 OpenStack越来越臃肿,Docker和其生态给人扑面而来的小清新;现在想来,可能是因为它还处于发展初期,管的还比较单纯,就像一个少女,柴米油盐没有写在脸上

第三, 个人审美角度,我希望Docker,只把应用打包/部署这一件事做好,把网络和存储的问题交给上层框架去协调;但是现在,Docker本身开始涉足网络、存储,就像少女长大了,要浓妆艳抹。不知道后面会怎样,我们拭目以待吧。

原文  http://dockone.io/article/1434
正文到此结束
Loading...