Восстановление DRBD после split brain
Oct 29, 2015 18:54 · 337 words · 2 minute read
DRBD — распределённое реплицируемое блочное устройство, которое используется для построения отказоустойчивых кластеров под управлением ОС Linux. DRBD отражает все операции с блочным устройством по сети, поэтому принято считать что это сетевой RAID-1.
Больше информации о DRBD можно найти здесь, а мы в данной статье разберемся как восстанавливать блочное устройство после split brain.
Из-за возникновения split brain на обоих хостах DRBD-ресурсы находятся в режиме Primary
, а состояние соединения StandAlone
. В /var/log/kern.log
можно увидеть такие строки:
kernel: block drbd0: Split-Brain detected, dropping connection!
Смотрим состояние DRBD на первом хосте:
cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
srcversion: F937DCB2E5D83C6CCE4A6C9
0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
ns:806339152 nr:7553228 dw:815132460 dr:1840430365 al:34434471 bm:15105 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
2: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
ns:499963084 nr:1132592 dw:501095676 dr:857543433 al:2345239 bm:941 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: F937DCB2E5D83C6CCE4A6C9
0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
ns:0 nr:1727749652 dw:1727749652 dr:0 al:0 bm:2405 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
2: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
ns:0 nr:348016128 dw:348016128 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
Исправить данную ситуацию можно с помощью следующих шагов:
- перевести один из хостов в режим
Secondary
и отменить на нем все внесенные изменения, выполнив следующие команды:
drbdadm secondary all
drbdadm disconnect all
drbdadm -- --discard-my-data connect all
- второй хост перевести в режим
Primary
и отключить/подключить ресурсы такими командами:
drbdadm primary all
drbdadm disconnect all
drbdadm connect all
Проблема решена, после завершения синхронизации состояние DRBD на первом хосте:
cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
srcversion: F937DCB2E5D83C6CCE4A6C9
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:811209960 nr:7553228 dw:820003268 dr:1842586049 al:34451063 bm:15105 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
2: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:500025956 nr:1132592 dw:501158548 dr:857725017 al:2345912 bm:941 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: F937DCB2E5D83C6CCE4A6C9
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns:0 nr:1732429880 dw:1732429880 dr:0 al:0 bm:2405 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
2: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns:0 nr:348078352 dw:348078352 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0