Heartbeat - dwa serwery, dwie us
Heartbeat - dwa serwery, dwie usługi
Witam.
Mam 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.
Mam 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.
haresources:
ha.cf:
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.
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
Kod: Zaznacz cały
autojoin none
deadtime 5
warntime 10
initdead 15
bcast eth1
auto_failback on
node rddi1
node rddi2
use_logd yes
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.
To wycinek logów:
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.
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.
Niby wszystko poprawnie, ale jednak nic nie zamontowało ani nie przypisało adresu ip.
Po wyłączeniu jednego z serwerów jakie masz statusy na drdb? Powinno być chyba:
Dawno już drbd się nie bawiłem, to dokładnie nie pamiętam.
Kod: Zaznacz cały
Primary/Unknown
Po wyłączeniu drugiego serwera mam takie statusy na pierwszym:
Po powrocie drugiego serwera:
Gdyby tak dodać do tej konfiguracji pacemakera? Mogłoby to coś zmienić?
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ć?