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

Добавление отказоустойчивости сети к альтернативам drbd или drbd

Я работаю с drbd около года и сейчас рву волосы в отчаянии. Каждый раз, когда происходит сбой в сети (что, к сожалению, часто встречается в среде, в которой я работаю), критическая пара серверов разделяет мозги, и мне приходится вмешиваться вручную. Для некоторой предыстории эти серверы находятся в конфигурации главный-подчиненный и выполняют операции хеширования с файлами перед их распространением на другие серверы по всему миру. Они получают новые файлы каждые 2-5 минут, и они всегда должны быть синхронизированы, чтобы в случае сбоя службы другой сервер не обслуживал устаревшие данные. Хотя эта пара серверов еще не запущена в производство, это разочаровывает, поскольку приводит к тому, что устаревшие данные появляются на одном узле каждый раз, когда возникает проблема с сетью. (тревожно часто, к сожалению)

Как сделать так, чтобы drbd не разделял мозг каждый раз, когда возникает проблема с сетью? Или автоматизировать восстановление? Вот конфигурация моих ресурсов drbd. У меня это контролируется стеком cman.

resource foo {
    handlers {
            split-brain "/usr/local/bin/notify-split-brain.sh root";
    }
    protocol C;
    meta-disk internal;
    device /dev/drbd0;
    net {
            after-sb-0pri discard-younger-primary;
            after-sb-1pri discard-secondary;
            after-sb-2pri disconnect;
    }
    on nodea {
            disk /dev/sdb;
            address x.x.x.1:7789;
    }
    on nodeb {
            disk /dev/sdb;
            address x.x.x.2:7789;
    }
}

Это работает в CentOS Linux версии 7.2.1511 (Core).