PDA

Bekijk Volledige Versie : 2 nieuwe servers: virtualisatie/redundacy?



anytimeanyplace
07/12/07, 09:26
Hi,

Ik heb een tijd op een single server gewerkt met DirectAdmin. Werkt prima. Alleen sterft deze nu een langzame dood.

Ik heb budget voor 2 nieuwe servers. In principe komen hier allee eenvoudige websites op te draaien. Ik lees de laatste tijd veel over virtualisatie en redundancy. Zelf wil ik in ieder geval zo weinig mogelijk down-time en een fail-over beschikbaar hebben.

Stel je hebt 2 nieuwe servers: hoe zou jij die inrichten? (of hoe heb je die nu al ingericht)

Thanx,
Marco

Jesperw
07/12/07, 09:45
Het mooist zou zijn als je bijvoorbeeld iSCSI storage op de kop kan tikken (Vaak een dienst van je colo boer). Je kunt dan op beide machines Xen of Vmware gebruiken en live migreren als er dingen mis (dreigen) te gaan. Dan heb je met 2 machines een hele mooie en simpel te beheren omgevingkje.

WilloW
07/12/07, 13:09
Het mooist zou zijn als je bijvoorbeeld iSCSI storage op de kop kan tikken (Vaak een dienst van je colo boer). Je kunt dan op beide machines Xen of Vmware gebruiken en live migreren als er dingen mis (dreigen) te gaan. Dan heb je met 2 machines een hele mooie en simpel te beheren omgevingkje.



Zijn er eigenlijk wel providers die dit aanbieden? iSCSI storage?

Wido
07/12/07, 13:13
Zijn er eigenlijk wel providers die dit aanbieden? iSCSI storage?Ja hoor die zijn er, wij bieden dit ook aan enkele klanten van ons aan.

Maar wat je kan doen is met LVM gaan werken en snapshots.

Je maakt zeg elke 3 uur een snapshot en die sync je vervolgens met rsync naar je tweede machine toe.

Gaat nu je eerste machine echt kapot, dan kan je de tweede machine opstarten en doordraaien.

Je failover kan dan in enkele minuten geregeld zijn en je valt maximaal 3 uur terug in data.

Randy
07/12/07, 13:32
Ja hoor die zijn er, wij bieden dit ook aan enkele klanten van ons aan.

Maar wat je kan doen is met LVM gaan werken en snapshots.

Je maakt zeg elke 3 uur een snapshot en die sync je vervolgens met rsync naar je tweede machine toe.

Gaat nu je eerste machine echt kapot, dan kan je de tweede machine opstarten en doordraaien.

Je failover kan dan in enkele minuten geregeld zijn en je valt maximaal 3 uur terug in data.

Zo doen we het nu nog... LVM is wel oké, en iedere 2.6.18+ kernel heeft het wel. JR-Online, Exonet, PC-Extreme... Noem ik zo even drie aanbeiders die iSCSI aanbieden...

Wido
07/12/07, 13:48
Zo doen we het nu nog... LVM is wel oké, en iedere 2.6.18+ kernel heeft het wel. JR-Online, Exonet, PC-Extreme... Noem ik zo even drie aanbeiders die iSCSI aanbieden...Op kleine schaal is werken met LVM en de snapshots toch de goedkoopste oplossing. Een redundante iSCSI storage tikt hard aan in de kosten.

Overigens draai ik gewoon LVM met snapshots op Xen 3.0.3 (2.6.16) en dat gaat zonder problemen?

Jesperw
07/12/07, 13:50
Ik wist helemaal niet dat je van LVM snapshots kunt maken. Worden die alleen niet huge? Je copied neem ik aan een heel volume (dus geen rsync mogelijk).

Wel leuk, though. :)

ttbviper
07/12/07, 13:56
Hoe denken jullie er dan over, om gebruik te maken van een load-balancer?
Dit wordt namelijk veel al gebruikt, om te zorgen dat de servers niet vol belast wordt, en als systeem A uit valt dat B het overneemt?
Is dit volgens jullie geen optie voor de ts ?

wonko
07/12/07, 13:56
Meeste snapshotmechanismes gaan werken op een copy-on-write principe, waarbij de wijzigingen tov de snapshot opgeslagen worden, en niet een 1-op-1 kopie genomen wordt.

Wido
07/12/07, 14:02
Ik wist helemaal niet dat je van LVM snapshots kunt maken. Worden die alleen niet huge? Je copied neem ik aan een heel volume (dus geen rsync mogelijk).

Wel leuk, though. :)Ooooh, dan mis je heel wat!

Nee, je maakt een snapshot van je volume, maar daarbij gebeurd er inderdaad alleen een copy-on-write.

Een lvdisplay op een LVM machine:

--- Logical volume ---
LV Name /dev/xen-domains/mailcluster-mysql-root-snap
VG Name xen-domains
LV UUID IJQVYN-jxqX-miqv-8bOz-HaE6-KcfR-y6KNN0
LV Write Access read/write
LV snapshot status active destination for /dev/xen-domains/mailcluster-mysql-root
LV Status available
# open 0
LV Size 7.00 GB
Current LE 1792
COW-table size 10.00 GB
COW-table LE 2560
Allocated to snapshot 3.48%
Snapshot chunk size 8.00 KB
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:55

Ik heb een snapshot gemaakt van 10GB van mijn volume.

Wanneer ik een bestand van 1GB plaats en daarna verwijder, heb ik 2GB mutaties gemaakt. Mijn snapshot is dan voor 20% gevuld.

Wanneer je dus maar op regelmatige basis je snapshot vernieuwd is er niets aan de hand.

Ik heb hier trouwens nog een scriptje voor de snapshots maken, gaat heel simpel:

mklvmsnapshot.sh

#!/bin/sh

VG="xen-domains"

FILE="snapshot-volumes.txt"
SNAP=`cat ${FILE}|grep -v \#`

for row in `echo $SNAP`; do

VOL=`echo ${row}|cut -d ':' -f 1`
SIZE=`echo ${row}|cut -d ':' -f 2`

lvremove -f /dev/${VG}/${VOL}-snap
lvcreate -s -L${SIZE}G -n ${VOL}-snap /dev/${VG}/${VOL}

done

snapshot-volumes.txt

# volume naam : grootte (GB)
v1-root:5
support-root:25
intranet-root:10
xm-001-root:5
xm-002-root:5
xm-003-root:5
mailcluster-mysql-root:10

Daarmee kan je heel simpel snapshot maken en rotaten.

Het snapshot kan je vervolgens mounten en met rsync kan je dan aan de gang voor alles syncen!

WilloW
07/12/07, 15:15
Ik heb hier trouwens nog een scriptje voor de snapshots maken, gaat heel simpel:

mklvmsnapshot.sh

#!/bin/sh

VG="xen-domains"

FILE="snapshot-volumes.txt"
SNAP=`cat ${FILE}|grep -v \#`

for row in `echo $SNAP`; do

VOL=`echo ${row}|cut -d ':' -f 1`
SIZE=`echo ${row}|cut -d ':' -f 2`

lvremove -f /dev/${VG}/${VOL}-snap
lvcreate -s -L${SIZE}G -n ${VOL}-snap /dev/${VG}/${VOL}

done

snapshot-volumes.txt

# volume naam : grootte (GB)
v1-root:5
support-root:25
intranet-root:10
xm-001-root:5
xm-002-root:5
xm-003-root:5
mailcluster-mysql-root:10

Daarmee kan je heel simpel snapshot maken en rotaten.

Het snapshot kan je vervolgens mounten en met rsync kan je dan aan de gang voor alles syncen!

Nice... altijd leuk als iemand zijn scriptje deelt wat is precies de bedoeling van snapshot-volumes.txt ? moet je hierin aangeven hoe je LVM heet?

Jesperw
07/12/07, 15:35
Hoe denken jullie er dan over, om gebruik te maken van een load-balancer?
Dit wordt namelijk veel al gebruikt, om te zorgen dat de servers niet vol belast wordt, en als systeem A uit valt dat B het overneemt?
Is dit volgens jullie geen optie voor de ts ?
Da's prima. Dan moet je wel een loadbalancer hebben (liefst 2), centrale storage en een database server die blijft draaien. Om dat goed te doen heb je dus wel iets van 7 dozen nodig.

ttbviper
07/12/07, 15:43
Hoezo heb, je daar voor 7 dozen nodig?
Als je 2 servers hebt en daar een load-balancer van maakt.
Deel je ze zo in .

Server A
web01
db01

Server B
web02
db02

je kunt namelijk op de server virtuele servers installeren.
Als je dan op elke server 2 virtuele servers installeert.
1 voor web en 1 voor dB heb je maar totaal 2 dozen nodig.

m.v.g

Jesperw
07/12/07, 16:17
Dat zou kunnen, maar met 2 loadbalancers erbij heb je er dan in weze ook 6. En dan heb je nog centrale opslag nodig.

anytimeanyplace
07/12/07, 17:54
LVM kende ik niet, daar ga ik me verder in verdiepen. Thanx!

Kan ik ervan uitgaan dat een active/passive setup, "beter" is dan een active/active met 2 server. Ik heb wat over Heartbeat gelezen. Dat is geen optie?

Dank voor alle reacties tot dusver!

VisionHost
07/12/07, 19:43
Je kunt ook eens kijken naar drbd. Hiermee kun je ook een HA oplossing maken met 2 servers: http://www.drbd.org/ Ik weet niet hoe betrouwbaar het is in productie, in een testomgeving werkte het vrij aardig.

Randy
07/12/07, 20:43
Op http://www.howtoforge.com/howtos/high-availability staat ook veel bruikbaars.

Wido
07/12/07, 22:23
Nice... altijd leuk als iemand zijn scriptje deelt wat is precies de bedoeling van snapshot-volumes.txt ? moet je hierin aangeven hoe je LVM heet?Daarin staan welk volume je wil snapshotten en hoe groot dat snapshot moet zijn.

De VG naam staat in het Bash script.

drdb is ook mooi, echter is een delay in je sync soms wel handig. Wat nou als er een virus in je server komt? Met drdb zit die ook direct in je tweede machine..

anytimeanyplace
08/12/07, 15:19
Stel ik kies voor een oplossing met Heartbeat en DRDB. Is het dan verstandig om iets aan virtualisatie te doen Xen o.i.d., aangezien het slechts 2 identieke dozen zijn/worden?

Jullie weten niet half hoe blij ik ben met de reacties.

Wido
08/12/07, 17:35
Ja, ik zou dan de partitie waarop de VM draait via drdb syncen, dat is wel het makkelijkste.