Active/Passive Cluster в Linux. Часть 1: установка и настройка DRBD
Dec 21, 2015 15:56 · 531 words · 3 minute read
Начинаем цикл статей о пошаговой настройке отказоустойчивого кластера в ОС Debian Wheezy с использованием Pacemaker
и Corosync
.
Часть первая — обзор исходных данных, установка необходимых пакетов и настройка DRBD-ресурсов. Давайте разберемся!
Настройки будут проводиться на двух серверах под управлением:
lsb_release -a
Distributor ID: Debian
Description: Debian GNU/Linux 7.8 (wheezy)
Release: 7.8
Codename: wheezy
На серверах установлено про три сетевые карты (причем одна из них двухпортовая, два физических интерфейса объединены в один логический).
Настройки сетевых интерфейсов на первом сервере:
cat /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.0.22
netmask 255.255.255.0
gateway 192.168.0.5
auto eth1
iface eth1 inet static
address 192.168.25.8
netmask 255.255.255.0
auto bond0
iface bond0 inet static
address 172.16.0.1
netmask 255.255.255.0
gateway 172.16.0.254
bond_mode balance-rr
bond_miimon 100
bond_downdelay 200
bond_updelay 200
slaves eth2 eth3
На втором сервере:
cat /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.0.23
netmask 255.255.255.0
gateway 192.168.0.5
auto eth1
iface eth1 inet static
address 192.168.25.9
netmask 255.255.255.0
auto bond0
iface bond0 inet static
address 172.16.0.2
netmask 255.255.255.0
gateway 172.16.0.254
bond_mode balance-rr
bond_miimon 100
bond_downdelay 200
bond_updelay 200
slaves eth2 eth3
Примечание. Интерфейс eth0 служит для доступа к отдельным нодам кластера, eth1 — это heartbeat-интерфейс, а bond0 используется для синхронизации DRBD-ресурсов.
В нашем примере будут использоваться два DRBD-ресурса — раздел для базы данных и раздел для хранения пользовательских файлов.
Устанавливаем на оба сервера необходимые пакеты:
aptitude install lvm2 drbd8-utils
Выполняем:
modprobe drbd
echo 'drbd' >> /etc/modules
Подготовка необходимых разделов (команды выполняются на обоих серверах одновременно):
pvcreate /dev/sda5
vgcreate vg0 /dev/sda5
lvcreate -L100G -n www vg0
lvcreate -L100G -n mysql vg0
Создаем конфигурационные файлы /etc/drbd.d/www.res
и /etc/drbd.d/mysql.res
следующего содержания:
resource www {
protocol C;
disk {
fencing resource-only;
}
handlers {
fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
}
net {
after-sb-0pri discard-least-changes;
after-sb-1pri call-pri-lost-after-sb;
after-sb-2pri call-pri-lost-after-sb;
}
syncer {
rate 110M;
}
on db1
{
device /dev/drbd2;
disk /dev/vg0/www;
address 172.16.0.1:7794;
meta-disk internal;
}
on db2
{
device /dev/drbd2;
disk /dev/vg0/www;
address 172.16.0.2:7794;
meta-disk internal;
}
}
resource mysql {
protocol C;
disk {
fencing resource-only;
}
handlers {
fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
}
net {
after-sb-0pri discard-least-changes;
after-sb-1pri call-pri-lost-after-sb;
after-sb-2pri call-pri-lost-after-sb;
}
syncer {
rate 110M;
}
on db1
{
device /dev/drbd0;
disk /dev/vg0/mysql;
address 172.16.0.1:7792;
meta-disk internal;
}
on db2
{
device /dev/drbd0;
disk /dev/vg0/mysql;
address 172.16.0.2:7792;
meta-disk internal;
}
}
После чего на обоих серверах выполняем:
drbdadm create-md www
drbdadm create-md mysql
drbdadm up all
На первом сервере (он будет основным, активным) выполняем:
drbdsetup /dev/drbd0 primary -o
drbdsetup /dev/drbd2 primary -o
mkfs.ext4 /dev/drbd0
mkfs.ext4 /dev/drbd2
tune2fs -m 0 /dev/drbd0
tune2fs -m 0 /dev/drbd2
/bin/mount -o noatime /dev/drbd0 /var/lib/mysql
/bin/mount -o noatime /dev/drbd2 /srv/www
Переносим необходимые данные на созданные разделы (/var/lib/mysql
и /srv/www
), дожидаемся завершения синхронизации ресурсов по сети.
Проверить состояние DRBD-ресурсов можно командой:
cat /proc/drbd
На активном сервере результат выполнения команды будет примерно следующим:
version: 8.3.11 (api:88/proto:86-96)
srcversion: F937DCB2E5D83C6CCE4A6C9
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:473023140 nr:7553228 dw:481816448 dr:531058677 al:62274735 bm:15105 lo:5 pe:7 ua:0 ap:11 ep:1 wo:f oos:0
2: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:831980448 nr:1132592 dw:833113040 dr:1611580617 al:4156518 bm:941 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
На этом первая часть настройки Active/Passive Cluster в Linux завершена, во второй части рассмотрим установку и настройку Pacemaker
и Corosync
.