Требование: CentOS на основе Docker контейнер обеспечивает кластер MariaDB 10.x ГалераКак отлаживать «WSREP: SST не удалось: 1 (операция не разрешена)» с кластером MariaDB Galera в Docker?
Принимающая среда: OX X El Capitan 10.11.6, Docker 1.12.5 (14777)
Docker Контейнер ОС: CentOS Linux релиз 7.3.1611 (ядро)
DB: 10.1.20-MariaDB
Я нашел a promising Docker image, но документация кажется устаревшим, команды для запуска кластера не работают. На момент написания изображения использует wsrep_sst_method = Rsync и поэтому я решил, что следующие команды должны работать (заменить/Users/Me/somedb с пустым каталогом на хосте):
docker pull dayreiner/centos7-mariadb-10.1-galera
docker run -d --name db1 -h db1host -p 3306:3306 -e CLUSTER_NAME=joe -e CLUSTER=BOOTSTRAP -e MYSQL_ROOT_PASSWORD='pwd' -v /Users/Me/somedb:/var/lib/mysql dayreiner/centos7-mariadb-10.1-galera:latest
docker run -d --name db2 -h db2host -p 3307:3306 --link db1 -e CLUSTER_NAME=joe -e CLUSTER=db1host,db2host -e MYSQL_ROOT_PASSWORD='pwd' -v /Users/Me/somedb:/var/lib/mysql dayreiner/centos7-mariadb-10.1-galera:latest
Первый контейнер (db1) появляется и кажется ОК. Но последняя строка, которая пытается добавить db2 в качестве второго узла в кластере результаты Галеры в следующей ошибке (журналы Докер db2):
2017-01-10 15:26:10 139742710823680 [Note] WSREP: New cluster view: global state: :-1, view# 0: Primary, number of nodes: 1, my index: 0, protocol version 3
2017-01-10 15:26:10 139742711142656 [ERROR] WSREP: SST failed: 1 (Operation not permitted)
2017-01-10 15:26:10 139742711142656 [ERROR] Aborting
Я не мог понять, что здесь не так, и хотела бы идеи о том, как проанализировать это дальше. Это проблема rsync, Galera или даже Docker?
Большое спасибо за выяснение решения и дополнительных объяснений! Как и сейчас, он работает сейчас для меня, также с версией 10.1.20 от MariaDB. – StaticNoiseLog
Привет, рад его работе! На самом деле не уверен, почему сеть моста по умолчанию будет таким барьером. Мое единственное предположение было бы потому, что порт SST, открытый компанией socat, является только по требованию во время передачи состояния, а не все время. Возможно, некоторые проблемы обработки, поскольку порт не открыт при запуске контейнера. При работе с несколькими хостами я всегда использую либо: a) режим сетевой сети, либо b) сеть swarm + overlay для связи порта SST. В этом случае стандартная переадресация портов тоже может быть обрушена. – Jon
Спасибо за дополнительную информацию! Я заметил, что 10.2.3 работает (см. Мой собственный ответ). Возможно, что-то было исправлено относительно обращения с портом. – StaticNoiseLog