Гоняю на стенде XEN поверх DRBD и рулится это все pacemaker'ом. Система Debian 7.0
Специально спровоцировал split brain, теперь не получается разрешить его вручную, вот что имею на текущий момент:Первая нода
# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
srcversion: 41C52C8CD882E47FB5AF7672: cs:StandAlone ro:Secondary/Unknown ds:Consistent/DUnknown r-----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0Вторая нода
# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
srcversion: 41C52C8CD882E47FB5AF7672: cs:StandAlone ro:Primary/Unknown ds:UpToDate/Outdated r-----
ns:0 nr:0 dw:0 dr:1328 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:10528Хочу реплицировать изменения на ноду 1, т.е. считать ее жертвой и потерять на ней данные.
Перевожу вторую ноду в режим ожидания подключения командой: drbdadm connect Win2012
node2:/var/log# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
srcversion: 41C52C8CD882E47FB5AF7672: cs:WFConnection ro:Primary/Unknown ds:UpToDate/Outdated C r-----
ns:0 nr:0 dw:0 dr:1660 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:10528
3: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----На первой ноде даю команду тоже подключиться и потерять свои изменения: drbdadm -- --discard-my-data connect Win2012
Только ничего не получается, обе ноды все равно возвращаются в StandAlone, а влогах вот что:
Jun 7 19:14:53 node1 kernel: [ 1834.472901] block drbd2: conn( StandAlone -> Unconnected ).
Jun 7 19:14:53 node1 kernel: [ 1834.472924] block drbd2: Starting receiver thread (from drbd2_worker [4805])
Jun 7 19:14:53 node1 kernel: [ 1834.474016] block drbd2: receiver (re)started
Jun 7 19:14:53 node1 kernel: [ 1834.474025] block drbd2: conn( Unconnected -> WFConnection ).
Jun 7 19:14:54 node1 kernel: [ 1835.072865] block drbd2: Handshake successful: Agreed network protocol version 96
Jun 7 19:14:54 node1 kernel: [ 1835.072875] block drbd2: conn( WFConnection -> WFReportParams ).
Jun 7 19:14:54 node1 kernel: [ 1835.072909] block drbd2: Starting asender thread (from drbd2_receiver [6480])
Jun 7 19:14:54 node1 kernel: [ 1835.073132] block drbd2: conn( WFReportParams -> Disconnecting ).
Jun 7 19:14:54 node1 kernel: [ 1835.073191] block drbd2: asender terminated
Jun 7 19:14:54 node1 kernel: [ 1835.073194] block drbd2: Terminating drbd2_asender
Jun 7 19:14:54 node1 kernel: [ 1835.073237] block drbd2: Connection closed
Jun 7 19:14:54 node1 kernel: [ 1835.073242] block drbd2: conn( Disconnecting -> StandAlone ).
Jun 7 19:14:54 node1 kernel: [ 1835.073295] block drbd2: receiver terminated
Jun 7 19:14:54 node1 kernel: [ 1835.073297] block drbd2: Terminating drbd2_receiverЧто я не так делаю?
Забыл про конфиг ресурса
resource Win2012 {handlers {
fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
}disk {
fencing resource-only;
}syncer {
verify-alg md5;
}net {
allow-two-primaries;after-sb-0pri discard-younger-primary;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;}
device /dev/drbd2;
disk /dev/virtuals/win2012;
meta-disk internal;on node1 {
address 10.0.0.91:7789;
}on node2 {
address 10.0.0.92:7789;
}startup {
become-primary-on both;
}
}
> Хочу реплицировать изменения на ноду 1, т.е. считать ее жертвой и потерять
> на ней данные.
> Перевожу вторую ноду в режим ожидания подключения командой: drbdadm connect Win2012
> На первой ноде даю команду тоже подключиться и потерять свои изменения: drbdadm
> -- --discard-my-data connect Win2012
> Только ничего не получается, обе ноды все равно возвращаются в StandAlone, а
> влогах вот что:На http://www.drbd.org/users-guide-8.3/s-resolve-split-brain.html _порядок_ выполенения комвнд обратный, вроде.
Сначала на жертве, потом на источнике.И команд в мануале три, а не две.
Сначала _две_ на жертве, потом _одна_ на источнике.
> На http://www.drbd.org/users-guide-8.3/s-resolve-split-brain.html _порядок_ выполенения
> комвнд обратный, вроде.
> Сначала на жертве, потом на источнике.
> И команд в мануале три, а не две.
> Сначала _две_ на жертве, потом _одна_ на источнике.Это не имеет значения. Первая команда на жертве - перевод в секондари режим, но она и так в нем. И порядок выполнения тоже не критичен, какая разница кто первый переходит в режим ожидания подключения, жертва или источник репликации? Главное жертве указать, что она жертва.
П.С. пробовал строго по мануалу - результат такой же.
>> Сначала _две_ на жертве, потом _одна_ на источнике.
> Это не имеет значения.
> П.С. пробовал строго по мануалу - результат такой же.Не заклялось, значит. В интернетах нашёл ещё заклинание -- сделать
drbdadm disconnect <resourse>
перед "--discard-my-data connect".
>>> Сначала _две_ на жертве, потом _одна_ на источнике.
>> Это не имеет значения.
>> П.С. пробовал строго по мануалу - результат такой же.
> Не заклялось, значит. В интернетах нашёл ещё заклинание -- сделать
> drbdadm disconnect <resourse>
> перед "--discard-my-data connect".Пробовал я. Это из той же серии. disconnect надо леать, если ресурс находится в состоянии ожидания подключения, а у меня он на обоих нодах в StandAlone, это значит, что обе ноды определили сплит брейн и порвали соединение(бывает, что только одна нода определяет и переходит в StandAlone, а вторая висит в ожидании подключения, тогда и нужен disconnect)