Назад | Перейти на главную страницу

Percona на 2-м узле не запускается

Я установил две виртуальные машины Vagrant для имитации кластера Percona XtraDB для наших нужд разработки. Первая виртуальная машина подключается нормально, и все работает. Однако, когда я пытаюсь запустить Percona на второй виртуальной машине, мы получаем ошибки при запросе передачи состояния.

Это ошибка, с которой мы сталкиваемся db1:

rsync: failed to connect to 10.0.2.15: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
rsync returned code 10:
130416 17:19:07 [ERROR] WSREP: Failed to read from: wsrep_sst_rsync --role 'donor' --address '10.0.2.15:4444/rsync_sst' --auth '(null)' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/data/' --defaults-file '/etc/my.cnf' --gtid '684d0eda-a6e5-11e2-0800-75b8bb33fbfb:3'
130416 17:19:07 [Note] WSREP: Provider resumed.
130416 17:19:07 [ERROR] WSREP: Process completed with error: wsrep_sst_rsync --role 'donor' --address '10.0.2.15:4444/rsync_sst' --auth '(null)' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/data/' --defaults-file '/etc/my.cnf' --gtid '684d0eda-a6e5-11e2-0800-75b8bb33fbfb:3': 255 (Unknown error 255)
130416 17:19:07 [Warning] WSREP: 1 (db1.ellis.dev.liquidcompass.net): State transfer to 0 (db2.ellis.dev.liquidcompass.net) failed: -1 (Operation not permitted)

Что мне интересно, так это то, что он пытается подключиться к 10.0.2.15, когда IP-адрес db2 это 192.168.160.211. Бег ifconfig на db1 показать следующую конфигурацию сети:

eth0      Link encap:Ethernet  HWaddr 08:00:27:42:B3:4F
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe42:b34f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:668 errors:0 dropped:0 overruns:0 frame:0
          TX packets:371 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:55869 (54.5 KiB)  TX bytes:63186 (61.7 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:90:38:2A
          inet addr:192.168.160.80  Bcast:192.168.160.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe90:382a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2863 errors:0 dropped:0 overruns:0 frame:0
          TX packets:137 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:286053 (279.3 KiB)  TX bytes:18650 (18.2 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:200 (200.0 b)  TX bytes:200 (200.0 b)

Это говорит мне о том, что Percona пытается использовать eth0 при rsyncing. Разве он не должен использовать eth1?

С Уважением,
Андрей

Проблема в том, что Percona по умолчанию использует eth0, если он не отменен.

Он использует следующую команду для определения IP-адреса, по которому он должен общаться:

/sbin/ifconfig | grep -E '^[[:space:]]+inet addr:' | grep -m1 -v 'inet addr:127' | sed 's/:/ /' | awk '{ print $3 }'

В результате получаем 10.0.2.15.

Можно установить переменную wsrep_node_address, которая указывает ему использовать альтернативный IP-адрес:

wsrep_node_address=192.168.160.80:4567

У нас была та же проблема, и он исправил ее для нас.

Джеймс