Chciałbym rozpocząć cykl artykułów opisujących jak wykonać klaster niezawodnościowy w oparciu o darmowe oprogramowanie DRBD (ang. Distributed Replicated Block Device) oraz Pacemaker. Klaster niezawodnościowy tworzy zespół komputerów dublujących nawzajem swoje funkcje. W razie awarii jednego z węzłów, następuje automatyczne przejęcie jego funkcji przez inne węzły. W moim przypadku klaster wykonany będzie z dwóch serwerów pracujących pod kontrolą systemu Ubuntu 12.04.
Serwery mają po dwa dyski oraz dwie karty ethernetowe 1Gb.
Strona projektu DRBD znajduje się pod adresem: www.drbd.org .
DRBD pozwala nam na stworzenie macierzy RAID 1 – tyle że synchronizowaną poprzez sieć. Dyski skonfigurowane jako RAID znajdują się na dwóch osobnych serwerach i synchronizowane są poprzez sieć LAN. W przypadku gdy jedna z maszyn ulegnie awarii, po drugiej stronie będą nadal aktualne dane. Gdy problem zostanie naprawiony, węzeł pierwotny zsynchronizuje swoje dane z drugim węzłem. Schemat działania DRBD pokazany jest na poniższym rysunku.
Zanim zainstalujemy DRBD, musimy odpowiednio skonfigurować sieć w systemie Ubuntu.
Jako że w serwerach zainstalowane są po dwie karty sieciowe, jedną z nich przeznaczam tylko i wyłącznie do użytku synchronizacji pomiędzy dyskami w macierzy. Konfiguracja przedstawia się następująco:
serwer1 :
eth0: 192.168.1.10 (publiczny)
eth1: 192.168.0.1 (prywatny – do synchronizacji)
serwer2 :
eth0: 192.168.1.11 (publiczny)
eth1: 192.168.0.2 (prywatny – do synchronizacji)
Plik /etc/hosts powinien zawierać informację o obu serwerach, tzn. IP oraz nazwy. Natomiast po wywołaniu polecenia hostname powinna wyświetlić się nazwa serwera, którą będziemy później używać w konfiguracji DRBD – czyli w przypadku jednego serwera : serwer1 , a w przypadku drugiego : serwer2 .
Możemy przejść do instalacji pakietu DRBD.
Pakiet DRBD w wersji 8.3 (aktualna wersja DRBD w chwili pisania artykułu) pobieramy korzystając z polecenia:
sudo apt-get install drbd8-utils
Po zainstalowaniu pakietu, plik konfiguracyjny znajdziemy w /etc/drbd.conf .
Zawiera on dwa wpisy:
include “/etc/drbd.d/global_common.conf”;
include “/etc/drbd.d/*.res”;
Zanim przejdziemy jednak do konfiguracji, należy przygotować dysk, którego użyjemy w macierzy. W moim przypadku wolny dysk, który użyję w macierzy oznaczony został w systemie jako sdb .
Należy wywołać polecenie fdisk /dev/sdb i utworzyć nową partycję na tym dysku.
W następnej części zdefiniujemy nasz zasób (ang. resource) w pliku res i skonfigurujemy pakiet DRBD. Zapraszam do przeczytania kolejnych części cyklu.