This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
решение_drbd [2021/10/23 11:01] val [Смена ролей узлов] |
решение_drbd [2022/03/18 09:52] val [Решение ситуации Split-Brain при использовании Pacemaker] |
||
---|---|---|---|
Line 16: | Line 16: | ||
===== Установка и настройка ===== | ===== Установка и настройка ===== | ||
- | * [[Сервис MTA#Установка и настройка MTA на обработку почты домена hostname]] | + | * В Debian для использования postfix надо предварительно [[Сервис MTA#Установка и настройка MTA на обработку почты домена hostname]] |
+ | * В Ubuntu postfix по умолчание, запустится визард | ||
<code> | <code> | ||
+ | Лучше на каждом узле отдельно | ||
+ | |||
root@nodeN:~# apt install drbd-utils | root@nodeN:~# apt install drbd-utils | ||
- | root@nodeN:~# cat /etc/drbd.d/global_common.conf | ||
- | </code><code> | ||
- | ... | ||
- | startup { | ||
- | ... | ||
- | wfc-timeout 30; | ||
- | } | ||
- | ... | ||
- | </code><code> | ||
root@nodeN:~# cat /etc/drbd.d/r0.res | root@nodeN:~# cat /etc/drbd.d/r0.res | ||
</code><code> | </code><code> | ||
resource r0 { | resource r0 { | ||
+ | syncer { rate 1000M; } | ||
handlers { | handlers { | ||
split-brain "/usr/lib/drbd/notify-split-brain.sh root"; | split-brain "/usr/lib/drbd/notify-split-brain.sh root"; | ||
Line 41: | Line 36: | ||
# disk /dev/sdb1; | # disk /dev/sdb1; | ||
address 10.Z.M.100+X:7788; | address 10.Z.M.100+X:7788; | ||
+ | # address 192.168.X.1:7788; | ||
meta-disk internal; | meta-disk internal; | ||
} | } | ||
Line 48: | Line 44: | ||
# disk /dev/sdb1; | # disk /dev/sdb1; | ||
address 10.Z.M.200+X:7788; | address 10.Z.M.200+X:7788; | ||
+ | # address 192.168.X.2:7788; | ||
meta-disk internal; | meta-disk internal; | ||
} | } | ||
Line 87: | Line 84: | ||
root@node1:~# mount /dev/drbd0 /disk2 | root@node1:~# mount /dev/drbd0 /disk2 | ||
+ | |||
+ | root@node1:~# mount | grep ext | ||
</code> | </code> | ||
===== Смена ролей узлов ===== | ===== Смена ролей узлов ===== | ||
- | **!!! можно не дожидаясь окончания синхронизации** | + | * Может потребоваться включить в blacklist для [[Сервис multipath]] |
+ | * !!! можно не дожидаясь окончания синхронизации | ||
<code> | <code> | ||
Line 130: | Line 130: | ||
nodeN# service drbd stop | nodeN# service drbd stop | ||
</code> | </code> | ||
- | Выбираем узел, данные которого будут затерты. | + | Выбираем узел, данные которого будут затерты (Для поиска и "спасения" модифицированных файлов можно воспользоваться [[Команда find]]) |
<code> | <code> | ||
nodeZ# drbdadm invalidate r0 | nodeZ# drbdadm invalidate r0 | ||
Line 138: | Line 138: | ||
root@nodeN:~# service drbd start | root@nodeN:~# service drbd start | ||
</code> | </code> | ||
+ | Дополнительные команды | ||
+ | <code> | ||
+ | nodeN# drbdadm detach r0 --force | ||
+ | nodeZ# drbdadm invalidate r0 | ||
+ | |||
+ | nodeN# drbdadm connect r0 | ||
+ | </code> | ||
===== DRBD и Heartbeat ===== | ===== DRBD и Heartbeat ===== | ||
Line 170: | Line 177: | ||
commit | commit | ||
- | exit | + | quit |
</code><code> | </code><code> | ||
node1# crm status | node1# crm status | ||
Line 189: | Line 196: | ||
commit | commit | ||
- | exit | + | quit |
+ | </code><code> | ||
node1# mount | grep ext | node1# mount | grep ext | ||
</code> | </code> | ||
Line 217: | Line 224: | ||
nodeZ# service pacemaker start | nodeZ# service pacemaker start | ||
- | node1# crm resource cleanup pr_fs_r0 | + | nodeM# crm resource cleanup pr_fs_r0 # Может не понадобиться |
+ | </code> | ||
+ | ===== Конфигурация с двумя primaries ===== | ||
+ | |||
+ | * [[https://habr.com/ru/post/445612/|Кластерное хранилище для небольших web-кластеров на базе drbd+ocfs2]] | ||
+ | * [[Сервис OCFS2]] | ||
+ | * Пакет Pacemaker [[Пакет Pacemaker#Запуск после монтирования файловых систем]] | ||
+ | |||
+ | <code> | ||
+ | root@nodeN:~# cat /etc/drbd.d/global_common.conf | ||
+ | </code><code> | ||
+ | ... | ||
+ | startup { | ||
+ | ... | ||
+ | wfc-timeout 1; | ||
+ | } | ||
+ | ... | ||
+ | </code><code> | ||
+ | root@nodeN:~# cat /etc/drbd.d/r0.res | ||
+ | </code><code> | ||
+ | resource r0 { | ||
+ | ... | ||
+ | startup { become-primary-on both; } | ||
+ | net { | ||
+ | allow-two-primaries; | ||
+ | after-sb-0pri discard-zero-changes; | ||
+ | after-sb-1pri discard-secondary; | ||
+ | after-sb-2pri disconnect; | ||
+ | } | ||
+ | ... | ||
+ | } | ||
+ | </code><code> | ||
+ | |||
+ | ... | ||
+ | |||
+ | node2# drbdadm primary r0 | ||
+ | |||
+ | nodeN# systemctl enable drbd | ||
</code> | </code> | ||