sziasztok!
a következőt szeretném heartbeat-el megvalósítani: van két sql szerver, az egyiken fut egy instance, ill a másikon is. ha az egyik kiesik, akkor
a másik átveszi a szerepét (elindítja a második instance-ot, két drbd köteten van a 2 mysql datadirje), ha visszajön a kiesett gép, akkor visszaáll. Heartbeat 1-el próbálkoztam, de nem tudtam megoldani:
sqlserver1 drbddisk Filesystem::/dev/drbd0::/mysql1::ext4 mysql1 192.168.1.253
sqlserver2 drbddisk Filesystem::/dev/drbd1::/mysql2::ext4 mysql2 192.168.1.254
erre a heartbeat log azt írja, hogy 'ERROR: Cannot locate resource script sqlserver2', tehát mintha egy resourcenak látná a 2 sort.. van valami spec elválasztó karakter, amivel meg tudom neki mondani, hogy új resource következik?
köszönöm
- 1171 megtekintés
Hozzászólások
ez a haresources file?
Az enyémben a drbddisk után van két darab kettőspont. A fájl többi része? Vagy ez az egész? Másrészt a haresources-ban csak a lokál gép szerepel nálunk.:
openfiler1.ceg.hu MailTo::infrastructure@ceg.hu::ClusterFailover IPaddr::192.168.133.23/32 drbddisk:: Filesystem::/dev/drbd0::/shared::ext3::defaults,noatime MakeMounts
- A hozzászóláshoz be kell jelentkezni
ez a haresources, igen. ennyi az egész, a fileserveren ugyanez a konfig (csak egy sorral) hibátlanul működik.
'Másrészt a haresources-ban csak a lokál gép szerepel nálunk' tehát csak az egyik node-on van a haresources-ba felvéve? tudtommal mindkettőbe fel kell, valahonnan tudnia kell node2-nek, hogy mit csináljon, ha node1 meghal, nem?
- A hozzászóláshoz be kell jelentkezni
úgy értem hogy mindkét gépen fel van véve, de csak a lokális gép
no megnéztem pontosan, az 1-es gép van benne, és csont ugyanaz mindkét gépen.
(tehát a 2-esen levő haresources-ban is az 1-es szerepel)
Ja és az ipaddress az a shared ip.
- A hozzászóláshoz be kell jelentkezni
ez így eddig nekem is működik, de itt épp az lenne a cél, hogy mindkét node-on van egy-egy resource és ezt adogatnák a másiknak.
tehát mégegyszer:
sqlserver1-en fut a 'mysql1'
sqlserver2-n a 'mysql2'
nekem kettő darab bejegyzés kéne éppen ezért a haresources-ba, mivel a mysql1-nek az sqlserver1 a primary node-ja, a mysql2-nek az sqlserver2..
- A hozzászóláshoz be kell jelentkezni
Ok, így már világos.
Amit találtam: az első resource-nak egyedinek kell lennie, mert ez azonosítja a resource-group-ot
(http://www.linux-ha.org/haresources) Lehet kénytelen leszel egy fake resource-ot csinálni?
Habár a drbd-ről az első sor gondoskodik, lehet elég lenne kihagyni a másodikból. ez egy primary-primary drbd? Mert akkor ez nem megoldás.
Esetleg külön drbd-k külön néven? Bár az elég nagy hekk lenne.
- A hozzászóláshoz be kell jelentkezni
inkább ide írom, előbb mellé ment :)
nem teljesen értem a fake resource-os ötleted, le tudnád írni példában?
drbd-ből két kötet van, egyiken az egyik mysql datadirje van, másikon a másik primary/secondary módban. szóval kell a 2 drbd mindenképp
- A hozzászóláshoz be kell jelentkezni
belenéztem a dbrddisk resource scriptbe, és úgy kéne, hogy az egyiknél dbrddisk::vol1 a másiknál dbrddisk::vol2
(ha paraméter név nélkül van a drbddisk, akkor az összes kötetet fel akarja ugyanazon a gépen húzni primary-nak, ami az esetedben kellemetlen lehet)
Így a mindig megfelelő oldalon húzná fel az adott kötetet primary-nak, és az első resource se lenne azonos.
A fake resource csak egy múló ötlet volt... Már nekem se tetszik, és nem hiszem, hogy a heartbeat ezt a szitációt ne tudná kezelni.
Azt hiszem, hogy a drbddisk::/dev/drbd0 amegfelelő szintakszis, de biztos nem vagyok benne
- A hozzászóláshoz be kell jelentkezni
köszönöm a segítséget, megoldódott a dolog! átírtam erre a formátumra a haresources-t:
sqlserver1 IPaddr::192.168.1.253/32 drbddisksql1:: Filesystem::/dev/drbd0::/mysql1::ext4 mysql1
sqlserver2 IPaddr::192.168.1.254/32 drbddisksql2:: Filesystem::/dev/drbd1::/mysql2::ext4 mysql2
csináltam a drbddisk-ből diskdisksql1, ill 2-t, ezekben átírtam az 'all' resource-t 'sql1' ill 'sql2'-re, hogy node váltásnál ne dobja secondary-ra mindkét drbd device-t. így most tökéletes, még egyszer köszönöm!
- A hozzászóláshoz be kell jelentkezni
nincs mit, én két hibát látok, bár lehet hogy csak az egyik az.
az ip address az a shared ip. vagy két shared ip-d van?
a drbddisk elvben lekezeli ha nem mindent akarsz pri-ba rakni, az első paraméter erre való tehát szebb lenne hagyni drbddisk nek, csak úgy berakni a haresources ba, hogy:
drbddisk::sql1
drbddisk::sql2
- A hozzászóláshoz be kell jelentkezni
igen, időközben a szebb módszerre váltottam, kössz a tippet.
2 shared IP van, igen, 1-1 a 2 sql szervernek, azért kell a 2 külön IP
- A hozzászóláshoz be kell jelentkezni
Lehet, hulyeseg, de ugy remlik, hogy valamelyik konfig fajlban (talan ha.cf) meg kell adni az osszes node nevet, lehet, hogy ezert nem talalja...
- A hozzászóláshoz be kell jelentkezni
meg vannak adva természetesen. nekem úgy tűnik nem értelmezi, hogy hol van az első resource vége, honnan kezdődik a második.. (doksiban nem találtam erre utalást)
íme a ha.cf:
bcast bond0
debugfile /var/log/ha-debug
logfile /var/log/ha-log
ucast bond0 192.168.1.245
keepalive 2
deadtime 10
warntime 5
initdead 60
#use_logd yes
auto_failback on
node sqlserver1 sqlserver2
- A hozzászóláshoz be kell jelentkezni
nem teljesen értem a fake resource-os ötleted, le tudnád írni példában?
drbd-ből két kötet van, egyiken az egyik mysql datadirje van, másikon a másik primary/secondary módban. szóval kell a 2 drbd mindenképp
- A hozzászóláshoz be kell jelentkezni