Linux: drbd – instalacja

DRDB (Distributed Replicated Block Device) wykorzystywany jest w klastrach HA (High Availability). Ale jak go zainstalować i skonfigurować?

Wymagania

Aby wszystko działało poprawnie musisz posiadać:

  • dodatkowy dysk (urządzenie blokowe typu dysk czyli np. cały dysk, partycja lub logiczny wolumen) na OBU maszynach (najlepiej tego samego rozmiaru),
  • połączenie sieciowe pomiędzy dwoma maszynami,
  • działający DNS (albo przynajmniej takie same wpisy w/etc/hosts),
  • działająca synchronizacja czasu z zewnętrznymi serwerami czasu,
  • otwarty port 7788 na firewallu.
  • Selinux Permissive

Instalajca

Obie maszyny: dodanie repozytorium elrepo

Instalacja pakietu dodającego repozytorium elrepo:

/bin/rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

Obie maszyny: Instalacja pakietu DRBD

/usr/bin/yum install -y kmod-drbd83 drbd83-utils

Niekiedy trzeba przerestartować maszynę gdyż moduł może być przeznaczony dla innej wersji jądra, które właśnie została zainstalowana.

Obie maszyny: Ładowanie modułu DRBD

Załaduj moduł drbd albo zrestartuj obie maszyny:

/sbin/modprobe drbd

Obie maszyny: stworzenie pliku konfiguracyjnyego dla pierwszego dysku

Plik konfiguracyjny musi być taki sam na obu nodach:

[root@heartbeat2 ~]# cat /etc/drbd.d/disk1.res
resource disk1
{
        startup {
                wfc-timeout 30;
                outdated-wfc-timeout 20;
                degr-wfc-timeout 30;
        }

        net {
                cram-hmac-alg sha1;
                shared-secret sync_disk;
        }

        syncer {
                rate 100M;
                verify-alg sha1;
        }

        on heartbeat1 {
                device minor 1;
                disk /dev/sdb;
                address 192.168.200.231:7789;
                meta-disk internal;
        }

        on heartbeat2  {
                device minor 1;
                disk /dev/sdb;
                address 192.168.200.232:7789;
                meta-disk internal;
        }
}

Obie maszyny: Sprawdzenie plików /etc/hosts albo działający DNS

Ja jestem leniwy więc rozwiązywanie nazw załatwiam przez /etc/hosts

192.168.200.231 heartbeat1 heartbeat1.localnet
192.168.200.232 heartbeat2 heartbeat2.localnet

Obie maszyny: Synchronizacja czasu

Ja synchronizację czasu załatwiam przez puppet-a i ntp usługę, można jednak zrobić to przez rdate lub ntpdate i crontab:

1 * * * * root ntpdate your.ntp.server

Obie maszyny: Inicjalizacja DRBD meta data

Zgodnie z definicjami w pliku /etc/drdb/disk1.res

/sbin/drbdadm create-md disk1

Obie maszyny: start usługi DRBD

Startujemy usługę DRBD

/etc/init.d/drbd start

Pierwszy node: inicjacja dysku

Określamy, na pierwszym nodzie dysk:

/sbin/drbdadm -- --overwrite-data-of-peer primary disk1

Oczekiwanie na koniec synchronizacji

Informacje miedzy nodami powinny być jednakowe, więc czekamy na synchronziację:

[root@heartbeat1 drbd.d]# cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37

 1: cs:SyncSource ro:Secondary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:681984 nr:0 dw:0 dr:685056 al:0 bm:41 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:366780
        [==========>.........] sync'ed: 55.8% (366780/822460)K
        finish: 0:00:08 speed: 41,424 (41,424) K/sec

Utworzenie systemu plików na urządzeniu

Utworzenie systemu plików na urządzeniu:

/sbin/mkfs.ext4 /dev/drbd1

Montowanie urządzenia

Montowanie systemu plików:

mkdir /srv/disk1/
mount /dev/drbd1 /srv/disk1/

Dodaj komentarz