Back up....

Door WHiZZi op maandag 6 oktober 2008 10:05 - Reacties (14)
Categorie: Linux, Views: 5.481

Wat doe je als geek als je huwelijk niet zo goed gaat? Nou, je gaat bedenken dat een backup toch wel handig zou zijn en zo bedenk je je ook weer dat je backup op je live webserver eigenlijk niet zo goed is geregeld.

Helemaal omdat ik gisteren een telefoontje ontving dat ik een extra uplink ga krijgen en of ik even een "bonding" wil maken op mijn Debian server. Een wattes? Een bonding.. Ik vond het wel boeiend klinken (hahaaa!) maar het blijkt dus een failover systeem te zijn zodat als één van de uplinks down zou gaan, er automagisch overgestapt wordt op de 2e netwerk interface. Na het nodige Google werk bleek het allemaal eenvoudig en snel te kunnen. Ik heb uiteraard gekozen voor failover. Via een aantal simpele commando's kreeg ik een bonding van eth0 en eth1:

# aptitude install ifenslave-2.6
# modprobe bond0
# nano -w /etc/modprobe.d/aliases-bond


In dat bestand staat dus:

code:
1
2
alias bond0 bonding
options bond0 mode=1 arp_interval=2000 arp_ip_target=84.243.x.x miimon=100 downdelay=200 updelay=200


Waarbij 82.243.x.x dus in mijn geval het IP van de gateway is. Vervolgens pas je de /etc/network/interfaces aan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
auto lo
iface lo inet loopback

auto bond0
iface bond0 inet static
pre-up modprobe bond0
hwaddress ether XX:XX:XX:XX:XX:XX
address 84.243.x.x
netmask 255.255.255.0
gateway 84.243.x.x
dns-nameserver 208.67.222.222 208.67.220.220
up ifenslave bond0 eth0 eth1
down ifenslave -d bond0 eth0 eth1

iface bond0:0 inet static
  address 84.243.x.x
  netmask 255.255.255.0



Geef bij hwaddress het macadres van je primaire interface op (eth0) en haal verder alles uit je interfaces (dus geen verwijzingen meer naar eth0 en eth1). Nadat ik "fingers crossed" hield en een /etc/init.d/network restart uitvoerde kwam alles weer keurig online. Ook nadat ik erachter kwam dat ook de iptables regels aangepast moeten worden (overal waar eth0 staat moet dus een bond0 staan) werkt alles nu en heb ik live een failover systeem gemaakt zonder noemenswaardige downtime. De machine was weer back up! ;)

Maargoed, terugkomend op het backup verhaal. Tijdens dit uitzoeken bedacht ik mij dat het wel eens mis zou kunnen gaan met die server. Gezien daar behoorlijk wat informatie op staat en o.a. ook mijn complete mailbox (via imap) zou het best een ramp zijn als die server besluit dat beide HDD's dood zouden gaan (staat wel in RAID1). Het backup script wat ik nu heb en wat al tijden draait is als volgt:
- 1) Maak tar.gz van webroot (/home/websites)
- 2) Maak een gzip van mysqldump alle databases
- 3) Verwijder backup ouder dan 1 week en indien dag==zondag maak een archief backup
- 4) Done!

Oftewel, als mijn HDD's zouden failen is het afgelopen. Die backup blijft namelijk op de server hangen. Het script is al wel gebouwd om de dailybackup te uploaden via FTP maar gezien dat dus dagelijks een 4GB is vond mijn hosting provider dat niet tof. Wat is de oplossing in dit geval :? Rsync!

Ik heb dus gisteren een mooi backup rsync script gemaakt wat ik jullie uiteraard wil delen. Deze runt vanaf de server en synct via ssh met mijn server thuis (wederom een RAID1 machine) de belangrijkste data. Mocht de server dus volledig overlijden, heb ik in ieder geval de belangrijkste data nog. Dus iedere geek die dit leest (of hij nu huwelijksproblemen heeft of niet), maak remote backups! :)

Het script wat ik jullie beloofd heb wat je misschien eens nodig hebt :) :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
SYNC="/usr/bin/rsync -av --delete -e /usr/bin/ssh --delete-excluded --exclude-from=/opt/scripts/backup/.exclude"

echo "Sync of /home/websites"
$SYNC /home/websites user@homeserver.domein.tld:/home/backup/

echo "Sync of Email"
$SYNC /home/vpopmail/domains/domain.tld/mailbox user@homeserver.domein.tld:/home/backup/

echo "Sync of Configuration"
$SYNC /etc user@homeserver.domein.tld:/home/backup/

echo "Sync of MySQL"
$SYNC /var/lib/mysql user@homeserver.domein.tld:/home/backup/

Volgende: Windows vs Linux, de testmethodes-rant 11-'08 Windows vs Linux, de testmethodes-rant
Volgende: De 1e stapjes op beveiliging! 09-'08 De 1e stapjes op beveiliging!

Reacties


Door Tweakers user Gerco, maandag 6 oktober 2008 10:59

Ik gebruik voor het maken van remote backups het geweldige rsnapshot. Werkt ook met rsync over ssh maar heeft lokaal een history per backup waarbij hij alleen de veranderde files opnieuw opslaat (dmv hardlinks).

Werkt geweldig en je kunt het indien gewenst uurlijks, dagelijks, wekelijks en maandelijks laten lopen.

Door Tweakers user Arfman, maandag 6 oktober 2008 11:42

Hoe is het met je huwelijk?

Door Tweakers user getty, maandag 6 oktober 2008 11:43

Maar moeten we uit dit verhaal afleiden dat je huwelijksproblemen hebt?

Door Tweakers user afterburn, maandag 6 oktober 2008 11:43

Bookmarked!

Maaruh, als geek een beetje minder tijd met de computer en een beetje meer met vrouwspersoon doet vaak wonderen op het huwelijksgebied. ;)

Door Tweakers user WHiZZi, maandag 6 oktober 2008 11:46

De huwelijksproblemen hebben juist niks te maken met het feit dat ik een geek ben :P, maar dat is puur privé van aard en ga ik niet in een blog vermelden hoe en wat. Alleen was het voor mij een gedachtegang om eens naar de backup te kijken, vandaar de melding in deze blog....

Door Tweakers user TD-er, maandag 6 oktober 2008 12:52

Ik gebruik dirvish ipv. rsnapshot.
Het principe is hetzelfde, alleen staat bij dirvish de hele tree in een folder met een bepaalde datum. Bij rsnapshot is dat alleen een diff die je met een tooltje terug moet zetten.
Ik heb de dirvish-backup dan ook via NFS weer (readonly) gemount in het filesysteem zodat gebruikers zelf dingen weer terug kunnen zetten.

Door Tweakers user dvdheiden, maandag 6 oktober 2008 14:52

Goed dat je het zegt, moest nog steeds mijn db backups regelen, gelijk maar even gedaan! Bedankt voor de reminder!

Oeps, nu ook nog even de htdocs ook meenemen :$

Door Tweakers user dvdheiden, maandag 6 oktober 2008 14:53

Oh en huwe-lijken zijn toch overrated! :P

Door Tweakers user moto-moi, maandag 6 oktober 2008 15:38

Ik vind rsync redelijk iritant werken, duurt echt eeuwen om een beetje hardlinked tree te indexeren :X
Ik ben zelf wel te spreken over Bacula , incl. wachtwoorden op elke client, aka lekker veilig gevoel :P

Door Tweakers user AndriesLouw, maandag 6 oktober 2008 18:19

Remote backups doe ik ook voor onze servers, via rsync voor MySQL backups (die elke 6 uren gemaakt worden), en rdiff-backup voor incremental backups naar andere servers.

Zeg, zit je heel toevallig in het 84.243.200.xxx segment? Want dan kon je nog wel eens in ons rack hangen :p

Door Tweakers user AndriesLouw, maandag 6 oktober 2008 18:27

Ik heb het antwoord al, je zit een aantal racks verderop volgens DNS.

Door Tweakers user StM, maandag 6 oktober 2008 19:46

Volgens mij heb je in grafix meer aan een extra grote ups in je rack dan een extra netwerk uplink...

Door Tweakers user Gerco, maandag 6 oktober 2008 21:37

@TD-er: een rsnapshot backup is gewoon een kopie van je source hoor? Hier en daar wat hardlinks, maar je kunt er gewoon zonder extra tools gegevens/bestanden uit kopieren als je dat wilt.

Misschien verwar je rsnapshot met Bacula? rsnapshot is niets anders dan een leuk schilletje om rsync heen.

Door Tweakers user AndriesLouw, maandag 6 oktober 2008 23:19

@Site.to.Make:
Tja, UPS is altijd benodigd. Maar in het nieuwe DC in Alphen a/d Rijn is tot nu toe nog geen vreemde activiteit in de stroomvoorziening geregistreerd door onze UPS. GrafiX heeft wellicht niet de beste reputatie, maar wij hebben nog nergens last van.

We zijn de UPS wel dankbaar dat hij ons door de periode in Capelle a/d IJssel heeft geholpen, het was daar een ramp, maar met dat ding was het nog net uit te houden.

Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.