【发布时间】:2018-10-10 01:49:17
【问题描述】:
我做了什么
我已经构建了一个 Docker Swarm 集群,我在其中运行具有持久数据的容器。为了允许容器在发生故障时移动到另一个主机,我需要跨集群的弹性共享存储。在研究了各种选项后,我实现了以下内容:
在 Swarm 的所有节点上安装了 Ceph 存储集群并创建了 RADOS 块设备 (RBD)。 http://docs.ceph.com/docs/master/start/quick-ceph-deploy/
在每个节点上安装 Rexray 并将其配置为使用上面创建的 RBD。 https://rexray.readthedocs.io/en/latest/user-guide/storage-providers/ceph/
-
部署一个使用 rexray 驱动程序挂载卷的 Docker 堆栈,例如
version: '3' services: test-volume: image: ubuntu volumes: - test-volume:/test volumes: test-volume: driver: rexray
这个解决方案的工作原理是我可以部署一个堆栈,在正在运行的节点上模拟故障,然后观察堆栈在另一个节点上重新启动,而不会丢失持久性数据。
但是,我不能在多个容器中安装 rexray 卷。我这样做的原因是使用一个短暂的“备份容器”,它只是在容器仍在运行时将卷压缩为快照备份。
我的问题
我可以将我的 rexray 卷安装到第二个容器中吗?
第二个容器只需要读取权限,因此它可以将卷压缩到快照备份,同时保持第一个容器运行。
【问题讨论】:
标签: docker ceph docker-swarm-mode