Что я сделал
Я создал кластер Docker 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, например
version: '3'
services:
test-volume:
image: ubuntu
volumes:
- test-volume:/test
volumes:
test-volume:
driver: rexray
Это решение работает в том, что я могу развернутьstack, смоделируйте сбой на работающем узле, затем наблюдайте, как стек перезапускается на другом узле без потери постоянных данных.
Однако я не могу смонтировать том rexray в более чем один контейнер.Моя причина в том, чтобы использовать недолговечный «резервный контейнер», который просто переносит том в резервную копию моментального снимка, пока контейнер еще работает.
Мой вопрос
Могу ли я смонтировать тома rexray?во второй контейнер?
Второму контейнеру необходим только доступ для чтения, поэтому он может преобразовать том в резервную копию моментального снимка, сохраняя работоспособность первого контейнера.