Добрый день. Есть gluster из двух нод под тома docker swarm. Всё работает хорошо. Выделили мне наконец третий хост.
Добавляю третий peer, получается
gluster volume info swarm
Volume Name: swarm
Type: Replicate
Volume ID: 199f70a6-0f3a-4334-9a26-72048b338b20
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: docker01.ad.local:/gluster/swarm
Brick2: docker02.ad.local:/gluster/swarm
Brick3: docker03.ad.local:/gluster/swarm
Options Reconfigured:
nfs.disable: on
transport.address-family: inet
storage.fips-mode-rchecksum: on
Монтируются сами на себя
df -h
...
/dev/sdb 60G 14G 47G 23% /gluster
docker03.ad.local:/swarm 60G 15G 46G 24% /srv/volumes
Жду пока пройдет репликация, считаю количество файлов:
find . -type f | wc -l
28595
На всех нодах одинаково.
Создаю на первой ноде файл - он появляется на двух других. Так на каждой. Добавляю цифры в файлики, всё отражается на всех трёх нодах, типа как бы работает.
Удаляю файл на третей ноде - удаляется на первых двух. Удаляю файл на второй ноде - удаляется на первой и третей.
А теперь самое интересное: удаляю файл на первой ноде - он удаляется на второй, но на третьей остаётся! Через несколько секунд он возвращается. на первые две ноды! Причем иногда с теми же данными, а иногда пустой (нулевой длины).
gluster volume heal swarm info
Пишет везде нули.
В логах ошибок нет.
Несколько раз удалял третью ноду и добавлял обратно, ничего не меняется.
К тому же проблема не только с этим, за ночь разъехалось количество файлов, на первых двух одинаково а на третьей пропало около сотни
find . -type f | wc -l
28492
Что же с ним не так?
Есть ли какие-то другие варианты реализации хранилища для docker swarm ?