W drugiej części cyklu przejdę do właściwej konfiguracji DRBD. Przypominam, że konfiguracja pakietu oparta jest o wersję 8.3, czyli taką która aktualnie zawarta jest w dystrybucji Ubuntu 12.04. Tutaj została opisana instalacja pakietu DRBD.
W katalogu /etc/drbd.d tworzę nowy zasób (ang. resource), który będzie opisywał moją macierz. Tworzę plik o nazwie mirror.res . Należy pamiętać, że plik musi mieć rozszerzenie .res, ponieważ tylko takie pliki są ładowane do konfiguracji (na podstawie /etc/drbd.conf ).
mirror.res
resource mirror
{
protocol C;
syncer
{
rate 100M;
csums-alg crc32c;
}
disk
{
on-io-error detach;
}
net
{
data-integrity-alg crc32c;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
handlers
{
split-brain “/usr/lib/drbd/notify-split-brain.sh root@abc.pl”;
}
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
on serwer1
{
address 192.168.0.1:7789;
}
on serwer2
{
address 192.168.0.2:7789;
}
}
Co oznaczają kolejne linie konfiguracji ?
Słowo kluczowe resource określa nazwę naszej macierzy.
protocol C – określa tryb replikacji danych. Są jeszcze tryby A i B, ale C zapewnia największe bezpieczeństwo. W tym trybie, wymagane są potwierdzenia, że dane zostały zapisane na zdalnym dysku.
Słowo kluczowe syncer określa parametry synchronizacji dysków. Parametr rate określa szybkość synchronizacji. Należy pamiętać, że jest on zdefiniowany w bajtach, a nie bitach. Zatem dla karty 1Gb maksymalna wartość to 110MB. Parametr csums-alg określa algorytm zapewniający integrację danych.
Parametr on-io-error określa co ma się stać w przypadku gdy dysk ulegnie uszkodzeniu. Wartość detach mówi, że w takim wypadku musi on zostać odłączony.
W przypadku tego typu konfiguracji często może wystąpić zjawisko określane jako split-brain. Występuje ono wtedy, gdy w przypadku awarii, uszkodzeniu ulegają dwa węzły. Po ponownym uruchomieniu nie wiadomo, który z nich ma być podstawowym, tzn. względem którego ma być przeprowadzona ponowna synchronizacja danych. W przypadku pakietu DRBD, zjawisko split-brain można obsłużyć następująco. Po pierwsze o wystąpieniu takiego zdarzenia można powiadomić administratora, wysyłając mu maila (split-brain “/usr/lib/drbd/notify-split-brain.sh root@abc.pl”;). Wcześniej należy upewnić się, że w systemie zainstalowany jest aplikacja mail. Jeżeli nie, wykonujemy polecenie:
sudo apt-get install mailutils
Następnie układamy następujący scenariusz:
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
Oznacza on, że jeżeli jest to możliwe to węzłem podstawowym zostaje ten, na którym odnotowano najwięcej zmian (discard-zero-changes). Jeżeli nie jest to możliwe, to węzłem podstawowym zostaje ten, który pełnił taką funkcję standardowo w naszej konfiguracji (discard-secondary) . Jeżeli i to nie przyniesie rezultatu, dyski zostaną odłączone i będą oczekiwać naszej reakcji (disconnect) .
Dalsza część pliku konfiguracyjnego określa nasze zasoby: nazwę partycji (disk), nazwy (te uzyskane przez hostname) oraz numery IP naszych węzłów . Słowo device określa nazwę wirtualnego urządzenia, które tworzą nasze dwa fizyczne dyski, natomiast słowo meta-disk określa miejsce przechowywania informacji na temat synchronizacji. Wartość internal określa, że są one przechowywane na tych samych dyskach co nasze dane.
W kolejnej części uruchamiamy DRBD. Zapraszam.