Heartbeat - dwa serwery, dwie us

Konfiguracja serwerów, usług, itp.
-charles-
Posty: 15
Rejestracja: 21 marca 2008, 15:03
Lokalizacja: Mielec

Heartbeat - dwa serwery, dwie usługi

Post autor: -charles- »

Witam.
M
am pewien problem z programem Heartbeat i przełączaniem usług pomiędzy dwoma serwerami.

Może od początku.
Mam dwa serwery, na każdym działa inna usługa (obie są o podobnym charakterze ale w trochę inny sposób zrealizowane).

Na jednym działa serwer ProFtpd udostępniający usługę ftps, na drugim działa Apache. Skonfigurowane są dwa woluminy DRBD tak, że jeden jest zamontowany na jednym serwerze, drugi na drugim. Działa to w takiej konfiguracji poprawnie.

Mój cel jest taki aby w przypadku gdy jedna z maszyn przestanie działać druga przejęła usługę, która działa na pierwszym, i na odwrót.

Problem mój jest taki, że gdy padnie drugi serwer to pierwszy poprawnie uruchamia usługę, montuje wolumin DRBD, konfiguruje sieć, ale gdy padnie pierwszy serwer to ten drugi już nie przejmuje usługi pierwszego.

Walczyłem trochę z tym ale musiałem odłożyć to na jakiś czas aby zająć się innymi tematami ale teraz to powróciło. Chciałbym to w końcu uruchomić i mieć to już z głowy, ale nie chciałbym tracić czasu. W związku z tym mam wielką prośbę o jakieś sugestie, wskazówki jak tego heartbeata skonfigurować, o ile w ogóle może on działać w taki sposób jak chce.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

Przydałyby się pliki konfiguracyjne: ha.cf i haresources.
Nie powinno być problemów z uruchomieniem usług tak jak to opisałeś. Potrzebne Ci będą 2 woluminy drdb i 2 dodatkowe adresy IP.
-charles-
Posty: 15
Rejestracja: 21 marca 2008, 15:03
Lokalizacja: Mielec

Post autor: -charles- »

haresources:

Kod: Zaznacz cały

rddi1 drbddisk::r0 Filesystem::/dev/drbd1::/home/serv1/data::ext4 IPaddr2::192.168.133.136/27/eth0.51:1 apache2
rddi2 drbddisk::r1 Filesystem::/dev/drbd2::/home/serv2/data::ext4 IPaddr2::10.104.143.83/29/eth0.52:0 proftpd
ha.cf:

Kod: Zaznacz cały

autojoin none
deadtime 5
warntime 10
initdead 15
bcast eth1
auto_failback on
node rddi1
node rddi2
use_logd yes
Na obu serwerach są identyczne pliki konfiguracyjne.

Zrobiłem jeszcze teraz test, wyłączyłem najpierw pierwszy serwer, zamontował wolumin drbd, ustawił adres ip, podniósł apacha.
Po wyłączeniu drugiego serwera pierwszy nie zrobił nic, ani woluminu, ani adresu ip.
ProFtpd w ogóle się nie uruchamia, ale to pewnie przez to, że potrzeba wpisać hasło do klucza przy starcie.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

W logach heartbeata masz wszystkie informacje podczas przełączania usług, więc tam możesz sobie sprawdzić dlaczego usługa się nie przełącza.
-charles-
Posty: 15
Rejestracja: 21 marca 2008, 15:03
Lokalizacja: Mielec

Post autor: -charles- »

To wycinek logów:

Kod: Zaznacz cały

Nov 14 12:23:09 rddi1 heartbeat: [2963]: info: Received shutdown notice from 'rddi2'.
Nov 14 12:23:09 rddi1 heartbeat: [2963]: info: Resources being acquired from rddi2.
Nov 14 12:23:09 rddi1 heartbeat: [2963]: debug: StartNextRemoteRscReq(): child count 1
Nov 14 12:23:09 rddi1 heartbeat: [3676]: info: acquire local HA resources (standby).
Nov 14 12:23:09 rddi1 heartbeat: [3677]: info: Local Resource acquisition completed.
Nov 14 12:23:09 rddi1 heartbeat: [2963]: debug: StartNextRemoteRscReq(): child count 1
Nov 14 12:23:09 rddi1 heartbeat: [3676]: info: local HA resource acquisition completed (standby).
Nov 14 12:23:09 rddi1 heartbeat: [2963]: info: Standby resource acquisition done [foreign].
Nov 14 12:23:09 rddi1 heartbeat: [3890]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL
Nov 14 12:23:10 rddi1 mach_down[3901]: [4274]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
Nov 14 12:23:10 rddi1 heartbeat: [2963]: info: mach_down takeover complete.
Nov 14 12:23:16 rddi1 heartbeat: [2963]: WARN: node rddi2: is dead
Nov 14 12:23:16 rddi1 heartbeat: [2963]: info: Dead node rddi2 gave up resources.
Nov 14 12:23:16 rddi1 heartbeat: [2963]: info: Link rddi2:eth1 dead.
Jeśli dobrze je czytam to nie ma tu nic co by wskazywało na przyczynę tego problemu.
Niby wszystko poprawnie, ale jednak nic nie zamontowało ani nie przypisało adresu ip.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

Po wyłączeniu jednego z serwerów jakie masz statusy na drdb? Powinno być chyba:

Kod: Zaznacz cały

Primary/Unknown
Dawno już drbd się nie bawiłem, to dokładnie nie pamiętam.
-charles-
Posty: 15
Rejestracja: 21 marca 2008, 15:03
Lokalizacja: Mielec

Post autor: -charles- »

Po wyłączeniu drugiego serwera mam takie statusy na pierwszym:

Kod: Zaznacz cały

1:r0  WFConnection Primary/Unknown      UpToDate/DUnknown C r----- /home/serv1/data ext4 244G 188M 231G 1%
  2:r1  WFConnection Secondary/Unknown  UpToDate/DUnknown C r-----

Po powrocie drugiego serwera:

Kod: Zaznacz cały

  1:r0  Connected Primary/Secondary UpToDate/UpToDate C r----- /home/serv1/data ext4 244G 188M 231G 1%
  2:r1  Connected Secondary/Primary UpToDate/UpToDate C r-----

Gdyby tak dodać do tej konfiguracji pacemakera? Mogłoby to coś zmienić?
Loud
Posty: 16
Rejestracja: 04 września 2011, 18:20

Post autor: Loud »

Ogólnie nie mam dużego doświadczenia w tym temacie, ale ostatnio troszkę o tym czytałem i nawet coś próbowałem.
Próbowałeś może ustawić tryb pracy drbd na Primary/Primary? Może to coś zmieni.
ODPOWIEDZ