This is an old revision of the document!
Добавляем жесткие диски, создаем точки монтирования
root@nodeN:~# lshw -C disk root@nodeN:~# lsblk root@nodeN:~# mkdir /disk2
root@nodeN:~# apt install drbd-utils root@nodeN:~# cat /etc/drbd.d/global_common.conf
... startup { ... wfc-timeout 30; } ...
root@nodeN:~# cat /etc/drbd.d/r0.res
resource r0 { 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; meta-disk internal; } on node2.corpX.un { device /dev/drbd0; disk /dev/sdb; # disk /dev/sdb1; address 10.Z.M.200+X: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:~# 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# service drbd stop
Выбираем узел, данные которого будут затерты.
nodeZ# drbdadm invalidate r0
Одновременно на двух узлах:
root@nodeN:~# service drbd start
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 exit
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 exit
node1# crm resource move pr_fs_r0 node1.corpX.un node1# crm configure location cli-prefer-pr_fs_r0 pr_fs_r0 role=Started inf: node1.corpX.un node1# crm configure show node1# crm configure delete cli-prefer-pr_fs_r0 node1# mount | grep ext
Выбираем узел, данные которого будут затерты.
nodeZ# service pacemaker stop nodeZ# drbdadm invalidate r0 nodeZ# service pacemaker start node1# crm resource cleanup pr_fs_r0
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).