В продолжение предыдущей статье, настроим DRBD на дисковой группе. В моем примере, используются два независимых массива, т.е. к каждой из нод подключены отдельные LUN. Это необходимо для обеспечения резервирования дисковой полки. Сервера так же разделены физически. В случае выхода из строя любого узла, сервера, СХД, коммутатора, система будет продолжать работать.
Задача:
Настроить кластер DRBD9 из двух нод
Дано:
NODE1 CentOS7
NODE2 CentOS7
DRBD 9
LVM
Решение:
Процесс установки DRBD описан в стать Настройка drbd9 centos7, поэтому этот шаг мы пропустим.
Настройка LVM
Создание физического тома
Создание физического тома
| 
					 1 2 3  | 
						pvcreate /dev/sdb  | 
					
Посмотреть список физических томов
| 
					 1 2 3 4 5 6 7  | 
						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 13 14 15  | 
						 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
| 
					 1 2 3  | 
						vgcreate VGStorageHPMSA /dev/sdb  | 
					
Создание логического тома mailstore размером 20Gb
| 
					 1 2 3  | 
						lvcreate -n mailstore -L20G VGStorageHPMSA  | 
					
Создание логического тома mailstore и занять 50% доступного места
| 
					 1 2 3  | 
						lvcreate -n mailstore -l 50%FREE VGStorageHPMSA  | 
					
Посмотреть информацию о логических томах
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  | 
						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 13 14 15  | 
						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;                 } }  | 
					
Создаем метаданные и поднимаем первичную ноду
| 
					 1 2 3 4 5  | 
						drbdadm create-md maildata drbdadm up maildata drbdadm primary maildata --force  | 
					
| 
					 1 2 3 4 5 6 7  | 
						  --==  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 5 6 7  | 
						drbdadm status maildata maildata role:Primary   disk:UpToDate   coremail02 connection:Connecting  | 
					
Создаем метаданные и поднимаем вторичную ноду
| 
					 1 2 3 4  | 
						drbdadm create-md maildata drbdadm up maildata  | 
					
Проверяем состояние массива после подключения вторичной ноды
| 
					 1 2 3 4 5 6 7 8  | 
						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 11 12 13  | 
						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  | 
					
Создание файловой системы
По окончании синхронизации, необходимо создать файловую систему
| 
					 1 2 3  | 
						mkfs.ext4 /dev/drbd0  | 
					
Тестирование
Перезагружаем дону, которая была Primary. На вторичной ноде смотрим результат
| 
					 1 2 3 4 5 6 7  | 
						drbdadm status maildata maildata role:Secondary   disk:UpToDate   coremail01 connection:Connecting  | 
					
После перезагрузки, на первичной ноде поднимает массив и проверяем статус
| 
					 1 2 3 4 5 6 7 8 9  | 
						drbdadm up maildata drbdadm status maildata maildata role:Secondary   disk:UpToDate   coremail02 role:Secondary     peer-disk:UpToDate  | 
					
Принимаем решение, какая из дон будет первичной и переводим в режим Primary
| 
					 1 2 3 4 5 6 7 8 9  | 
						drbdadm primary maildata drbdadm status maildata maildata role:Primary   disk:UpToDate   coremail02 role:Secondary     peer-disk:UpToDate  | 
					
Далее рассмотрим вариант автоматического переключения роли на массиве под управлением DRBD с помощью пакета Pacemaker


