Üdv,
Elkezdtem foglalkozni a HA témakörrel, össze is szerettem volna rakni egy rendszert Ubunu 12.04, ifenslave, DRBD, heartbeat használatával.
Van 4 hálókártyám (2 a külső forgalomra(bond0), 2 pedig a szinkronizációhoz (bond1)).
Amúgy csak a bond0 (eth0, eth1) van engedélyezve szépen megy is, felállnak a kártyák, pingelhető a közös cím. Viszont ha ugyanannak a szisztéma alapján beállitom a bond1-et is (eth2, eth3), akkor már nem éled fel a rendszer.
ifconfig:
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0
auto eth1
iface eth1 inet manual
bond-master bond0
auto eth2
iface eth2 inet manual
bond-master bond1
bond-primary eth2
auto eth3
iface eth3 inet manual
bond-master bond1
auto bond0
iface bond0 inet static
address 192.168.1.10
netmask 255.255.255.0
bond-mode active-backup
bond-miimon 100
bond-slaves eth0 eth1
auto bond1
iface bond1 inet static
address 192.168.2.10
netmask 255.255.255.0
bond-mode active-backup
bond-miimon 100
bond-slaves eth2 eth3
Hol rontom el?
- 8285 megtekintés
Hozzászólások
A cat /proc/net/bonding/bond0,1 mit mond?
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
A bond1nél az iface név sorban nem az eth2 és eth3nak kellene szerepelnie?
- A hozzászóláshoz be kell jelentkezni
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0auto eth1
iface eth1 inet manual
bond-master bond0auto eth2
iface eth0 inet manual
bond-master bond1
bond-primary eth2auto eth3
iface eth1 inet manual
bond-master bond1
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ezen túljutottam, most viszont a következő hibába futottam bele:
DRBD-vel szeretném szinkronban tartani a kép gépen lévő /dev/sdb disket.
Be is állitottam a configban: http://pastebin.com/vgW1wNz5
De amikor kiadom a drbdadmn create-md lamp hibát dob:
Command 'drbmeta 0 v08 /dev/sdb internal create-md' terminated with exit code 40'
És azt javasolja használjak külső metadata tárolót. De én internalt akarok. Az sdb jelenleg egy üres ext3, ami a /data alá van mountolva.
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
Valszeg az a baja, hogy van rajta fs, így nem tudja rászögelni a metadatát. Ezért akarja mellé.
http://www.mavinerc.com/home/2012/04/26/howto-drbd-drbdadm-create-md-fa…
ill.:
http://www.drbd.org/users-guide/ch-internals.html#s-internal-meta-data
- A hozzászóláshoz be kell jelentkezni
Kösz kösz, már csak pár apróság van, de majd holnap folytatom...
mkfs.jfs -q /dev/drbd0
mkdir -p /srv/data
mount /dev/drbd0 /srv/data
Már csak jfsutilst kell felrakni, de ahhoz szét kell bombázni a bondot (virtualboxban van) és egy NAT-olt kártyát belőni.
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
A drbd-t tekinthetető egy hálózati raid mirrornak is. A dolog azért hangsúlyos, mert egy olyan eszközt, amit oda adtunk akár drbd-nek, akár raid tömbnek, azt a továbbiakban csak a megfelelő új eszköz bejegyzésen keresztül kezelünk, direktben soha! Tehát nem teszünk rá fs-t és pláne nem csatoljuk.
A vinnyogás, hogy használj külső metadata tárolót, pont azért van, mert az sdb-re tettél egy ext3-at, ami a teljes lemez kapacitást kihasználja: tehát nincs hely a metadata-nak! Ha előbb hozod létre a drbd tömböt, akkor az üres helyről lefoglalta volna a metadata használatához szükséges területet, majd a maradék helyet használhattad volna te adattárolásra. Így ez nem megy.
A másik, amit gondolj végig: ha ezt így hagyod, akkor bármit is írsz most a /data alatt, az _közvetlenül_ megy a /dev/sdb-re, tehát lekerüli a drbd drivert, így az nem tudja áttolni a változásokat a másik gép lemezére. Pont a lényeg marad le.
A /data-t mindenképpen csatold ki, azt majd úgy kell csatolni, mint /dev/drbd0 eszköz. Az, hogy ez fizikailag majd a /dev/sdb-re fog dolgozni, az egy másik történet.
Döntsd el, hogy meg akarod-e tartani a jelenlegi ext3fs-t az sdb-n. Mivel üres, szerintem nem érdemes. Ennek fényében a következőket javasolnám:
umount /data - sdb kicsatolása
dd if=/dev=zero of=/dev=sdb bs=1M count=100 - winyó elejének pucolása, hogy senki ne jöjjön lázba, hogy ott van valami
/etc/init.d/drbd stop
/etc/init.d/drbd start - ha megy, mehet restart is. a lényeg, hogy olvasson újra mindent, így szembesüljön az sdb lepucolt állapotával
ha eddig megvan, akkor tégy egy próbát ismét a drbdadm create paranccsal...
- A hozzászóláshoz be kell jelentkezni
Hello,
Erre már rájöttem én is, megoldódott ez a probléma. Kapott egy üres particiót, rámetn a metadata, /dev/drbd0 alól van felcsatolva. Ha rakok oda fájt át is kerül:
node1: drbdadm secondary lamp
node1: umount /dev/drbd0
node2: drbdadm primary lamp
node2: mount /dev/drbd0 /data --> ott van a fájl, amit a node1-en hoztam létre. pipa.
A gondom most a heartbeattel van. Egy alap ha.cf-et adtam meg, haresources-ban benne van a közös IP, a drbd lemez és partició. Viszont inditáskor nem hajlandó felvenni a cimet, Starting High-Availability services: IPaddr\[21315\]: INFO: Resource is stopped Done. üzenetet ad. Logban nincs semmi releváns, viszont ha nyomok egy /etc/init.d/heartbeat stop-ot, akkor lelövi a drdb-t (és az lecsatolja a /data-t), viszont a node2-n nem indul és mountolódik fel.
Megjegyzem hogyha a node2-t rakom primary-ra, akkor és kézzel kell mountolnom a lemezt.
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
csinald corosync+pacemaker-rel. a blogomban epp van egy drbd+mount+virtualip+daemoninditas konfig.
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
No, eljutottam addig hogy már majdnem minden szép és jó ( DRBD és HEARTBEAT).
Ha a node1-en elinditom egyedül a hb-t szépen elinditja a processeket, mountolja a /dev/drbd0-t, beállitja az IP cimet, minden klafa. Viszont ha elinditom mellé a node2-t átadja a processeket, a node2 elinditja őket, de utána egyből le is állitja. Ekkor jön az a pont, hogy mindkét nodeom azt hiszi, hogy a másik az aktiv és egyik se futtatja a processeket.
Mi lehet a gond?
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
ha a node2-on inditod magaban a hb-t, akkor elindul?
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Ha csak a node2-n inditom a HB-t akkor ez történik:
- észreveszi hogy a node1 halott
- átváltja a státuszát activeba
- beállitja a közös IP-t
- futtatná ezt: /etc/ha.d/resource.d/drbddisk lamp (ez a neve a drbd resourceomnak) start
- resource is stopped - -> ezért már nem fog elindulni a mysql és az apache mivel nem tudja a nem futó drbd0-t mountolni
- mivel nem tudja elinditani a mysql-t és az apacheot visszaadja a processeket a (nem futó) node1-nek.
Még annyi hogy Amikor mindkét node fut egyik sem futtatja a processeket. Ha leállitom a node2-t a node1-en elindulnak a programok, mountolódik a disk is (vica versa nem megy).
A node1 logjában ezt látom:
Node1 Info: node1 wants to go standby [foreign]
Node1 WARN: No reply to standby request. Standby request cancelled.
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
ott valami baj van a drbd-vel. kiesett a syncbol, barmi. kezzel tudod mountolni?
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
kézzel tudom mountolni a drbd primary nodeon.
drbd-overview:
node1
0:lamp Connected Primary/Secondary UpToDate/UpToDate C r----- /data jfs 2G 31M 2.0G 2%
node2
0:lamp Connected Secondary/Primary UpToDate/UpToDate C r-----
Azt sejtem, hogy azért nem tudja mountolni a ndoe2-n a HB a drbd0-t mert nem váltja át primary-ra. Ez nem lehet?
update: a probléma megoldódott, viszont előjött 1 másik. Ha egyedül inditom bármelyik nodeon a HB-t akkor nem inditja el a processeket, viszont ha mindkettőn elinditom és az egyiket lelövöm, elindulnak a processek a másik nodeon és később már megy az oda-vissza állás gond nélkül..
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
El kell dönteni hogy dual primaryt akarsz vagy sem.
http://www.drbd.org/users-guide/s-enable-dual-primary.html
De akkor elosztott fájlrendszer kell. Mindkettőnek megvan az előnye.
KAMI | 神
--
Szavazz a videónkra!
- A hozzászóláshoz be kell jelentkezni
Nem akarok dual primaryt, csak azt, hogy a node1 és node2 egyből menjen HB-vel.
mint irtam most igy megy a dolog:
node1: HB start
node2: HB start
-------------> nem megy egyiken se a process (apache, mysql, drbd mount)
node2: HB stop
-------------> node1-en elindulnak a processek
node2: HB start
-------------> node1 továbbra is aktiv marad
node1: HB stop
-------------> node2-n elindulnak a processek
Tehát az elején kellene rávennem a HB-ket hogy eldöntsék ki az aktiv. Jelnleg auto_failback off-al megy a rendszer (ez jó is igy).
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
mar az elso node1 startnal el kene indulnia a dolognak, biztos auto_failback off-on kell lennie?
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Igen, az auto_failback azt csinálja, hogy amikor elérhető a primary node, amit a HB-ben beállitottam (Node1), akkor azon futnak a processek és a node2-n pedig csak akkor amikor offline a node1.
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
dupla lett
- A hozzászóláshoz be kell jelentkezni
Visszatérnék egy kicsit még a bonding témára.
A korábbi config szerint van beállitva a bonding:
bond0:eth0-eth1 és bond1:eth2-eth3
cat /proc/net/bonding/bond0 azt mondja mindkét interface up állapotban van és a jelenlegi aktiv az eth0. Ez jó is. Viszont ha kihúzom a kábel a virtuális hálókártyából (virtualbox), akkor megszakad a ping.
A bond0 státusza még mindig up, át is állt a bond node az eth1-re, viszont a ping nem megy.
Ez mitől van?
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
Most az egész virtualboxba fut és csak a virtualboxon belül van 4 virtuális kárytád jól értem ami oda van adva egy gépnek? mert akkor ott a szűk keresztmetszet.
- A hozzászóláshoz be kell jelentkezni
virualboxban fut 2 gép, egyenként 4-4 hálókártyával.
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
Igen de a virtualbox csak egy virtuális kárytát kap a windowstól ha jól emlékszem, ergo ha az nem elérhető már mindegy neked az alatt mennyi van a rendszereidnek. Tehát ha azt az egyet osztod 8 fele, akkor ő a szűk keresztmetszet mivel "fizikailag" csak 1 kártyád van ami ugye ebben az esetben virtuális szóval faramuci a helyzet ha jól értem.
- A hozzászóláshoz be kell jelentkezni
A gépek nem látják a külső hálózatot, host only hálózatban vannak a virtual boxon belül. Egymás elérik de a fizikai gépet, netet nem.
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni
Gyanítom hogy nem a teljesítmény a szempont, hanem a majdani környezet minél hívebb reprodukálása.
- A hozzászóláshoz be kell jelentkezni
Igen. Teszkörnyezet lenne egy jövőbeni projecthez. Fizikai vasból is meg tudnám épiteni, de azok régiek (HP DL380 G3-4 x86) Igy meg kényelmesebb. Hétfőig jegeltem a témát, kiégett az agyam...
-------------------------
A csapatjáték fontos. Nem csak téged lőhetnek!
- A hozzászóláshoz be kell jelentkezni