Thank you for reading this post, don't forget to subscribe!
В моем примере, используются два независимых массива, т.е. к каждой из нод подключены отдельные LUN. Это необходимо для обеспечения резервирования дисковой полки. Сервера так же разделены физически. В случае выхода из строя любого узла, сервера, СХД, коммутатора, система будет продолжать работать.
Задача:
Настроить кластер DRBD9 из двух нод
Дано:
NODE1 CentOS7
NODE2 CentOS7
DRBD 9
LVM
Решение:
Процесс установки DRBD описан в стать Настройка drbd9 поэтому этот шаг мы пропустим.
Настройка LVM
Создание физического тома
Создание физического тома
pvcreate /dev/sdb
Посмотреть список физических томов
1 2 3 4 |
pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos_node lvm2 a-- 12,00g 0 /dev/sdb lvm2 --- 5,00t 5,00t |
Посмотреть полную информацию. Если без параметра, то полный список
1 2 3 4 5 6 7 8 9 10 11 12 |
pvdisplay /dev/sdb "/dev/sdb" is a new physical volume of "5,00 TiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 5,00 TiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID apnhCy-sBx5-hZW0-6HXj-2miY-p5fW-INjYVX |
Создание группы томов с именем VGStorageHPMSA
vgcreate VGStorageHPMSA /dev/sdb
Создание логического тома mailstore размером 20Gb
lvcreate -n mailstore -L20G VGStorageHPMSA
Создание логического тома mailstore и занять 50% доступного места
lvcreate -n mailstore -l 50%FREE VGStorageHPMSA
Посмотреть информацию о логических томах
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
lvdisplay VGStorageHPMSA --- Logical volume --- LV Path /dev/VGStorageHPMSA/mailstore LV Name mailstore VG Name VGStorageHPMSA LV UUID tWJNaJ-LFt3-zZKM-VAcw-sypv-OfcF-BMBjga LV Write Access read/write LV Creation host, time coremail01, 2019-03-20 10:26:56 +0300 LV Status available # open 0 LV Size 20,00 GiB Current LE 5120 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 |
Настройка DRBD
Добавление массива maildata в конфигурационный файл /etc/drbd.d/maildata.res
1 2 3 4 5 6 7 8 9 10 11 12 |
resource maildata { protocol C; device /dev/drbd0; disk /dev/VGStorageHPMSA/mailstore; meta-disk internal; on coremail01 { address 101.201.203.61:7788; } on coremail02 { address 101.201.203.62:7788; } } |
Создаем метаданные и поднимаем первичную ноду
drbdadm create-md maildata
drbdadm up maildata
drbdadm primary maildata --force
Если возникает ошибка вида
--== Thank you for participating in the global usage survey ==--
The server's response is:
you are the 13868th user to install this version
'maildat' not defined in your config (for this host).
Необходимо проверить правильность имен узлов в конфигурационном файле, файле hosts и hostname, а так же имя ресурса.
Проверяем состояние массива
1 2 3 4 |
drbdadm status maildata maildata role:Primary disk:UpToDate coremail02 connection:Connecting |
Создаем метаданные и поднимаем вторичную ноду
Не забудьте открыть порты, если вы используете фаервол
drbdadm create-md maildata
drbdadm up maildata
Проверяем состояние массива после подключения вторичной ноды
1 2 3 4 5 |
drbdadm status maildata maildata role:Secondary disk:Inconsistent coremail01 role:Primary replication:SyncTarget peer-disk:UpToDate done:1.08 |
или
watch cat /sys/kernel/debug/drbd/resources/maildata/connections/coremail02/0/proc_drbd
1 2 3 4 5 6 7 8 9 10 |
Every 2,0s: cat /sys/kernel/debug/drbd/resources/maildata/connections/coremail02/… Wed Mar 20 10:47:16 2019 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----- ns:4336184 nr:0 dw:0 dr:4337236 al:0 bm:0 lo:0 pe:[0;6] ua:0 ap:[0;0] ep:1 wo:2 oos:16640348 [===>.….….….…] sync'ed: 20.7% (16248/20476)M finish: 0:03:44 speed: 74,108 (87,652 -- 39,368) K/sec 0% sector pos: 0/41941688 resync: used:0/61 hits:16658 misses:68 starving:0 locked:0 changed:34 act_log: used:0/1237 hits:0 misses:0 starving:0 locked:0 changed:0 blocked on activity log: 0/0/0 |
Создание файловой системы
По окончании синхронизации, необходимо создать файловую систему
mkfs.ext4 /dev/drbd0
Тестирование
Перезагружаем дону, которая была Primary. На вторичной ноде смотрим результат
1 2 3 4 |
drbdadm status maildata maildata role:Secondary disk:UpToDate coremail01 connection:Connecting |
После перезагрузки, на первичной ноде поднимает массив и проверяем статус
1 2 3 4 5 6 |
drbdadm up maildata drbdadm status maildata maildata role:Secondary disk:UpToDate coremail02 role:Secondary peer-disk:UpToDate |
Принимаем решение, какая из дон будет первичной и переводим в режим Primary
1 2 3 4 5 6 |
drbdadm primary maildata drbdadm status maildata maildata role:Primary disk:UpToDate coremail02 role:Secondary peer-disk:UpToDate |