остановка службы postgresql зависает, когда база данных монтируется в не отвечающей файловой системе - вызывает зависание аварийного переключения - PullRequest
1 голос
/ 06 февраля 2012

У меня есть кластер HA (избыточная пара), настроенный для работы с базой данных postgresql - база данных находится на NFS-файлере. Если соединение с файловым устройством обрывается с основного (например, выпадают кабели) - основной пытается выполнить аварийное переключение. Тем не менее, аварийное переключение зависает при запуске «service postgres stop», потому что монтирование nfs не отвечает.

Мой гугл-фу подвел меня (хотя я бы подумал, что кто-то другой мог бы поразить это раньше!)

Мой файл ha.cf:

logfile /var/log/ha-log
logfacility local0
keepalive 2
warntime 15
deadtime 30
initdead 60
ucast eth0 <eth0 ip>
ucast eth1 <eth1 ip>
node node2
node node1
auto_failback off
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail uid=hacluster
ping <filer IP>

haresource:

node2 IPaddr::<VIP>/24/eth0 Filesystem::<filer export>::/var/lib/pgsql::nfs::rw,noatime,rsize=4096,wsize=4096,hard,intr,noac,nfsvers=3 postgresql

1 Ответ

1 голос
/ 24 марта 2012

Монтирование NFS может зависать довольно долго, до десяти минут, когда сервер отключается.

Эта задержка может затруднить правильное ограждение двух серверов.Если сервер NFS возвращается к жизни до того, как процесс postgres умирает на неисправном главном сервере, процесс postgres неисправного главного устройства и новый главный процесс postgres могут попытаться одновременно выполнить запись в файлы базы данных, что вызывает повреждение.

...