Добавляем жесткие диски, создаем точки монтирования
root@nodeN:~# lsblk root@nodeN:~# mkdir /disk2
Лучше на каждом узле отдельно root@nodeN:~# apt install drbd-utils root@nodeN:~# cat /etc/drbd.d/r0.res
resource r0 { syncer { rate 1000M; } handlers { split-brain "/usr/lib/drbd/notify-split-brain.sh root"; } on node1.corpX.un { device /dev/drbd0; disk /dev/sdb; # disk /dev/sdb1; # address 10.Z.M.100+X:7788; address 192.168.X.1:7788; meta-disk internal; } on node2.corpX.un { device /dev/drbd0; disk /dev/sdb; # disk /dev/sdb1; # address 10.Z.M.200+X:7788; address 192.168.X.2:7788; meta-disk internal; } }
root@nodeN:~# drbdadm create-md r0
одновременно на двух узлах
root@nodeN:~# service drbd start root@nodeN:~# ps ax | grep drbd
root@node1:~# drbdadm -- --overwrite-data-of-peer primary r0
root@nodeN:~# cat /proc/drbd root@nodeN:~# watch cat /proc/drbd root@nodeN:~# drbdadm sh-resources root@nodeN:~# drbdadm cstate r0 root@nodeN:~# drbdadm dstate r0 root@nodeN:~# drbdadm role r0
можно не ожидая окончания синхронизации
root@node1:~# mkfs.ext4 /dev/drbd0 root@node1:~# mount /dev/drbd0 /disk2 root@node1:~# mount | grep ext
root@node1:~# cp /etc/hostname /disk2 root@node1:~# umount /disk2 root@node1:~# drbdadm secondary r0 root@node2:~# drbdadm primary r0 root@node2:~# mount /dev/drbd0 /disk2 root@node2:~# cat /disk2/hostname
root@node2:~# umount /disk2 root@node2:~# drbdadm secondary r0
root@nodeN:~# systemctl enable drbd.service
root@nodeNEW:~# drbdadm create-md r0 root@nodeNEW:~# service drbd start
nodeN# mail nodeN# service drbd stop
Выбираем узел, данные которого будут затерты (Для поиска и “спасения” модифицированных файлов можно воспользоваться Команда find)
nodeZ# drbdadm invalidate r0
Одновременно на двух узлах:
root@nodeN:~# service drbd start
Дополнительные команды
nodeN# drbdadm detach r0 --force nodeZ# drbdadm invalidate r0 nodeN# drbdadm connect r0
root@nodeN:~# service heartbeat stop root@nodeN:~# cat /etc/ha.d/haresources
node1.corpX.un drbddisk Filesystem::/dev/drbd0::/disk2::ext4
root@nodeN:~# service heartbeat start
root@nodeN:~# apt install psmisc #fuser root@nodeN:~# systemctl stop drbd.service root@nodeN:~# systemctl disable drbd.service node1# crm configure
primitive pr_drbd_r0 ocf:linbit:drbd params drbd_resource="r0" ms ms_drbd_r0 pr_drbd_r0 meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" commit quit
node1# crm status node1# cat /proc/drbd
node1# crm configure
primitive pr_fs_r0 ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/disk2" fstype="ext4" colocation col_fs_on_drbd inf: pr_fs_r0 ms_drbd_r0:Master order or_fs_after_drbd Mandatory: ms_drbd_r0:promote pr_fs_r0:start commit quit
node1# mount | grep ext
node1# crm resource move pr_fs_r0 node1 node1# crm configure location cli-prefer-pr_fs_r0 pr_fs_r0 role=Started inf: node1 node1# crm configure show node1# crm configure delete cli-prefer-pr_fs_r0
Выбираем узел, данные которого будут затерты.
nodeZ# service pacemaker stop nodeZ# drbdadm invalidate r0 nodeZ# service pacemaker start nodeM# crm resource cleanup pr_fs_r0 # Может не понадобиться
root@nodeN:~# cat /etc/drbd.d/r0.res
resource r0 { ... startup { become-primary-on both; wfc-timeout 1; } net { allow-two-primaries; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; } ... }
... node2# drbdadm primary r0 nodeN# systemctl enable drbd
debian9# primitive pr_drbd_r0 ocf:linbit:drbd params drbd_resource="r0" op monitor interval="15s" debian9#order or_fs_after_drbd inf: ms_drbd_r0:promote pr_fs_r0:start
Доброго времени суток. DRBD можно совместить с OCFS2 так: 1. Конфигурируем ресурс DRBD как обычный (без поддержки нескольких primary) 2. Инициализируем DRBD (create-md, service drbd start) и выключаем 3. Конфигурируем ресурс DRBD как во вложении 4. Конфигурируем OCFS (cluster.conf из вложения + dpkg-reconfigure ocfs2-utils), запускаем 5. Запускаем DRBD, создаём ФС. Опирался на статью: http://www.drbd.org/users-guide/ch-ocfs2.html (без использования Pacemaker).