Backup machine - hoe gesynchroniseerd houden?

Pagina: 1
Acties:

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 19:35
Ik heb hier sinds kort twee vrijwel identieke machines (specs: Via Epia M10000, 256MB geheugen, 80GB harddisk, de ene 2.5inch en de andere 3.5inch. Verder alles on-board van het moederbord gebruikt).

De ene machine ('A') staat als server 24/7 in de meterkast z'n werk te doen:
Debian Sarge, kernel 2.6 - Webserver, mailserver, downloaden (mldonkey), ssh, samba.

Die andere machine ('B') zou ik als standby machine willen gaan gebruiken. Hij moet dan eens per week of zo aangezet worden (wake-on-lan, werkt!) en dan zichzelf synchroniseren met de 24/7 draaiende 'A' machine. Ik ben er nog niet helemaal uit wat hier de beste aanpak is.

Ik wil dit topic eigenlijk gebruiken om uit te leggen wat ik van plan ben en hopelijk de nodige tips te krijgen over hoe ik sommige dingen handig aan kan pakken.

Ideaal zou een exacte mirror van de twee harddisken zijn, maar dat lijkt mij moeilijk te verwezenlijken. Ik ben al op het punt aangekomen dat de twee machines verschillende IP-adressen nodig hebben, dus daarin krijg je al een verschil tussen de installaties.

Wat moet er dus zoal gebeuren:
  1. packages synchroniseren. Op de een of andere manier moet ik op machine 'A' een lijst krijgen met geinstalleerde packages ('dpkg -l' doet wel zo iets) en op machine 'B' die lijst laten installeren. Hoe kan ik dan de gede-installeerde packages op 'B' ook gede-installeerd krijgen? Ik kan wel wat verzinnen door wat awk-scripts te maken, maar is hier ook al een simpele oplossing voor?
  2. Enkele systeemdirectories syncen. /usr, /etc, /lib, /var, /opt, /boot, /bin, /sys en /root bijvoorbeeld (met in /etc uitkijken dat ik bestanden met IP-nummer van de server niet overneem). /proc en /dev waarschijnlijk niet.
  3. Userdirectories syncen. Is mooi meteen m'n IMAP mailfolder gebackupd. Waarschijnlijk ga ik de directories van de webserver en downloadserver niet of gedeeltelijk syncen, is nogal veel data met erg weinig waarde voor mij.
Het handigste is waarschijnlijk door vanaf 'A' via cron eerst een wake-on-lan te doen, na een minuut of vijf (ruim voldoende tijd voor een eventuele harddisk-scan) als root met ssh naar de andere machine te gaan en een sync-script te starten. Dat script kan dan als eerste de 'A' server naar een temp-directory mounten waarna het echte synchronisatiewerk kan beginnen.

Zijn er hier mensen met ervaring met zo'n project? Tips? Mis ik hierboven nog iets essentieels? Met name voor het eerste punt (apt-get syncen) kan ik wel wat tips gebruiken...

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 19:54
Wat dacht je van rsync? Gewoon de hele harddisk mirroren?

^ Wat hij zegt.


  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

Z-Dragon schreef op zaterdag 26 november 2005 @ 16:41:
Wat dacht je van rsync? Gewoon de hele harddisk mirroren?
is ook mijn suggestie en dan even met de exclude opties van rsync een paar bestanden niet syncen (waar je ip adres in staat e.d.)

Mistakes are proof that you are trying...


  • Paul
  • Registratie: September 2000
  • Laatst online: 20:27
Of naderhand gewoon in het scriptje een nieuwe /etc/network/interfaces aanmaken :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/sh

<< backup zooi >>

/bin/cat << EOF > "/etc/network/interfaces"
# The loopback interface
auto lo
iface lo inet loopback

# The network card
auto eth0
iface eth0 inet static
        address 1.1.1.1
        netmask 255.255.255.0
EOF
shutdown -h now

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • vanaalten
  • Registratie: September 2002
  • Laatst online: 19:35
Bedankt voor alle tips - het kan dus een flink stuk simpeler dan ik zelf had gedacht.

Ik was blijkbaar een beetje doorgeschoten in het moeilijke oplossingen bedenken - had het idee dat het wel niet goed zou gaan als het systeem zichzelf zou overschrijven met rsync, maar achteraf gezien was dat een denkfoutje.

Binnenkort eerst even de boel her-partitioneren, daarna dit alles eens implementeren!

  • tomato
  • Registratie: November 1999
  • Niet online
M_v_A schreef op zondag 27 november 2005 @ 11:55:
had het idee dat het wel niet goed zou gaan als het systeem zichzelf zou overschrijven met rsync, maar achteraf gezien was dat een denkfoutje.
Weet je dat zeker?

Als je ergens nog een oude harddisk van 2GB ofzo hebt liggen zou ik daar een kale installatie op doen en van daaruit je 'echte' harddisk syncen. Kan eventueel ook met een Live CD die je een klein beetje aanpast.
En je hoeft natuurlijk niet na de 'wake-on-lan' in te loggen vanaf machine A (na 5 minuten wachttijd :?), je kunt het scriptje gewoon automatisch laten runnen na een boot van machine B (evt. met 5 minuten vertraging, maar dan met als reden dat je nog de kans hebt het te cancelen mocht je zelf een keer die machine starten zonder een backup te willen maken).

Oja, denk er wel aan dat een / partitie syncen natuurlijk wel problemen kan geven met je /boot. Sowiezo zul je zelf eerst een werkende boot omgeving moeten maken, maar zelfs dan heb je natuurlijk de kans dat machine B een kernel upgrade doet (je neemt /boot niet mee, maar /root wel)...
Ik denk dat er ook mogelijkheden zijn om een dd over het netwerk te doen, maar dan verlies je natuurlijk wel de rsync voordelen en moeten je systemen liefst 100% identiek zijn.

[ Voor 23% gewijzigd door tomato op 27-11-2005 12:07 ]


  • vanaalten
  • Registratie: September 2002
  • Laatst online: 19:35
Ehh... nee, maar een kwestie van proberen zal dat wel duidelijk maken... Als het werkt is het een prima oplossing, werkt het niet dan kan ik altijd nog wat anders proberen.
Als je ergens nog een oude harddisk van 2GB ofzo hebt liggen zou ik daar een kale installatie op doen en van daaruit je 'echte' harddisk syncen. Kan eventueel ook met een Live CD die je een klein beetje aanpast.
Extra HD in de kast gaat niet passen. Live-CD, tja, lastig op een machine zonder optische drive. USB opstarten zou wel kunnen.
En je hoeft natuurlijk niet na de 'wake-on-lan' in te loggen vanaf machine A (na 5 minuten wachttijd :?), je kunt het scriptje gewoon automatisch laten runnen na een boot van machine B (evt. met 5 minuten vertraging, maar dan met als reden dat je nog de kans hebt het te cancelen mocht je zelf een keer die machine starten zonder een backup te willen maken).
Da's misschien nog wel een betere oplossing ook. Machine B kan eventueel zelfs kijken of er op de HD van machine A een dummyfile staat die aangeeft dat B via WOL opgestart is om te syncen.
Oja, denk er wel aan dat een / partitie syncen natuurlijk wel problemen kan geven met je /boot. Sowiezo zul je zelf eerst een werkende boot omgeving moeten maken, maar zelfs dan heb je natuurlijk de kans dat machine B een kernel upgrade doet (je neemt /boot niet mee, maar /root wel)...
Mmmm... ik zie nog niet in waarom /boot syncen een probleem zou kunnen opleveren - de machines zijn qua hardware praktisch gelijk, de kernels mogen 100% identiek zijn, dus /boot mag 100% identiek zijn.
Ik denk dat er ook mogelijkheden zijn om een dd over het netwerk te doen, maar dan verlies je natuurlijk wel de rsync voordelen en moeten je systemen liefst 100% identiek zijn.
De verschillen tussen de machines:
De ene heeft een 2.5inch HD, de andere een 3.5 inch. Wel allebei een Samsung 80GB 5400rpm.
De ene heeft via USB een UPS en een cardreader aangesloten, de andere niet.
Verder exact hetzelfde moederbord/processor, exact hetzelfde geheugen.

Vooralsnog denk ik dat rsync van / wel zal kunnen werken, eigenlijk...

  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

M_v_A schreef op zondag 27 november 2005 @ 14:33:
Vooralsnog denk ik dat rsync van / wel zal kunnen werken, eigenlijk...
Ik zie het probleem ook niet echt, lijkt mij prima te kunnen werken. Heb zelf ooit een opzet gemaakt om vanuit een master alle slaves te updaten en dat werkte goed dus zal deze 1-op-1 zeker moeten werken ervanuit gaande dat de hardware redelijk identiek is maar dat gaf je al aan dat dat zo is.

qua procedure zou ik het volgende doen:
- master start slave dmv. WOL
- slave start backup script vanuit cron ((re)boot regel)
- backup script even een wachttijd van 5 min zoals hierboven aangegeven is ivm handmatig start
- backup script doet rsync
- backup script sluit de machine weer af.

Mistakes are proof that you are trying...


  • Paul
  • Registratie: September 2000
  • Laatst online: 20:27
Seth4Chaos schreef op maandag 28 november 2005 @ 09:59:
[...]


Ik zie het probleem ook niet echt, lijkt mij prima te kunnen werken. Heb zelf ooit een opzet gemaakt om vanuit een master alle slaves te updaten en dat werkte goed dus zal deze 1-op-1 zeker moeten werken ervanuit gaande dat de hardware redelijk identiek is maar dat gaf je al aan dat dat zo is.

qua procedure zou ik het volgende doen:
- master start slave dmv. WOL
- slave start backup script vanuit cron ((re)boot regel)
- backup script even een wachttijd van 5 min zoals hierboven aangegeven is ivm handmatig start
- backup script doet rsync
- backup script sluit de machine weer af.
Dan zou ik eerder ergens een vlag zetten op de master waaraan de slave kan zien of hij voor backup of om andere reden is opgestart :)

En heel identiek hoeven ze niet eens te zijn. Zorg dat je kernel of (of /etc/modules) van beide computers de HD aankunnen, idem voor de netwerkkaart, en verder is eigenlijk alleen van belang (tenzij je lilo/grub en /etc/fstab aanpast of exclude) dat de schijven / partities hetzelfde heten.
Als je de kernel voor een processor hebt geoptimaliseerd is het wel belangrijk dat ze die beiden snappen, maar verder geen probleem.

Ik heb hier eens, toen dat mobo overleed, de raidcontroller overgezet van een Tyan Tiger MPX met 2x Athlon MP naar een of ander Gigabyte bordje met een Duron erop, ergens een 3Com vandaan getoverd en de fileserver (:X) was weer in de lucht :P

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock

Pagina: 1