Backuppc

Work In Progress!!

Backuppc er programmet som benyttes i TIHLDE per 2014. Det benyttes rsync fra serverne og dette fungerer fint med unntak av for Colargol. Problemet med Colargol og rsync er det enorme antallet filer som rsync må sjekke for oppdateringer, og mesteparten av tiden som går med er rett og slett rsync som sjekker filer. Dette gjør at en backup som burde ha gått på under en time, per i dag tar 8-14 timer.

TIHLDE benytter LDAP, og backuppc brukeren ligger inne allerede. Merk at hjemmemappen er /home/backuppc, og det er her backup vil bli liggende. I de fleste tilfeller vi man ha satt opp et raid f.eks i /mnt/raid Den enkleste måten å beholde harmonien med LDAP og backuppc brukeren som også benyttes på alle andre maskiner som det skal takes backup av, er å legg til en bind mount i /etc/fstab

/mnt/raid  /home/backuppc       none    default,bind,noatime    0       0 

Dette lar /mnt/raid være mounta slik som man forventer, og samtidig vil den også være på /home/backuppc

Pass på å opprette /home/backuppc som mappe. Etter at raidet er mounta på /home/backuppc, sett eierskap til backuppc:backuppc og sett chmod 770.

sudo apt-get install backuppc

Under install velger man apache2 som webserver.

Etter install er det første som gjøres å sette passord for å logge inn på backuppc web. For TIHLDE sin del ligger passord lagret på fast plass som legges inn.

htpasswd /etc/backuppc/htpasswd backuppc

Deretter må vi endre hvor backupene blir lagret. Rediger /etc/backuppc/config.pl og finn

$Conf{TopDir} = '/var/lib/backuppc';

Endre til

$Conf{TopDir} = '/home/backuppc/backups';

Vi må også sørge for at backuppc har lov til å kjøre relevante kommandoer under sudo slik at den får tatt backup av alt. Kjør 'visudo' og legg til

backuppc  ALL=NOPASSWD: /usr/bin/rsync

Pass på at denne legges helt sist i filen for å unngå at den blir overstyrt av andre regler.

Før vi begynner å legge til maskiner som skal takes backup av, må vi endre litt konfigurasjoner.

Logg inn på webinterfacet som vil være domene/backuppc og gå til “edit config”

  • Gå til Xfer.
  • Sett “xfermethod” fra “smb” til “rsync” (Pass på at localhost har overrides, disse må slåes av i host config)
  • Endre RsyncClientCmd til:
    $sshPath -q -T -c arcfour -o Compression=no -x -l backuppc $host sudo $rsyncPath $argList+
  • Endre RsyncClientRestoreCmd til:
    $sshPath -q -T -c arcfour -o Compression=no -x -l backuppc $host sudo $rsyncPath $argList+
  • Sette på ekskludering av diverse mapper (BackupFilesExclude) (new key: /)
    • /dev
    • /mnt (vær obs på denne om du har maskiner hvor du vil at /mnt/raid f.eks skal inkluderes)
    • /proc
    • /run
    • /tmp
    • /sys
    • /var/lib/mysql (MySQL databaser må dumpes for å få tatt sikker backup av)
    • /home/data/mysql (Spesifikk sti benyttet av TIHLDE)
    • /bin (programfiler kan lett reinstalleres via pakkesystem og trenger derfor ikke være med i backup)
    • /sbin
    • /usr
    • /lib
    • /lost+found
    • /media
    • /home/backuppc (unngå rekursjon på bind mount)
    • /var/cache
    • /var/tmp
    • /var/lib/php5 (session filer m.m. som har en tendens til å forsvinne under backup, noe som gir feil)
    • /var/lib/amavis/virusmails
    • /data (Brukes som bind mount på blant annet Balthazar)
    • /isostore
    • /home/staff/drift/kernel (Spesifikk TIHLDE mappe)
    • <Alle andre eventuelle bind mounts på forskjellige maskiner>
  • Gå til email og sett EMailAdminUserName til f.eks rapporter at tihlde.org
  • Gå til hosts og legg til maskinene du vil ta backup av med brukernavn backuppc
  • Gå til backup settings og sett compresslevel til 0

For at backuppc skal kunne SSH til maskinene som det skal takes backup av, må vi sette opp SSH nøkler. Pass på at denne må være uten passord.

su -l backuppc
ssh-keygen -t rsa -C "handymanny backuppc April 2014"
ssh-copy-id backuppc@host

Schedule

  • Gå til Schedule (gammel shadow instillinger) og endre følgende:
    • FullPeriod: 29.9
    • FullKeepCnt: 2
    • IncrKeepCnt: 12

Deretter har vi to backup servere som jobber sammen, en på huset, og en ekstern. For at disse ikke skal krangle med hverandre, setter vi de til å ta backup annenhver dag, med søndag som hviledag ;)

Handymanny settes derfor opp med ekstra blackout period mellom 0 og 0, på ukedager 2,4,6,0. Dette gjør at det ikke vil kjøres noen backups i det hele tatt på disse dagene. Coastguard settes opp motsatt med ingen backup på 1,3,5,0.

Justerer også tidsrommet hvor backups ikke får kjøre slik at dette starter klokka 9.

Parallell backup

Colargol er en maskin med store mengder data fordelt over mange filer. Backuppc kjører backup mot hver maskin i seriell modus, noe som kan ta en del tid og heller ikke utnytter tilgjengelig kapasitet i særlig grad.

Vi splitter derfor opp backup på Colargol slik at man får utnyttet ressursser bedre, og bruke kortere tid på å få gjennomført backup.

Først må vi “jukse” litt og legge inn et par statiske host oppføringer i /etc/hosts Hovedvekten av data ligger fordelt i /home, så vi lager egne hostaliaser for relevante mapper. (bruk intern-ip om relevant)

158.38.48.10    colargol colargol-staff colargol-xdrift colargol-students colargol-guests colargol-hsxhs colargol-home

Deretter må vi opprette hosts i backuppc og sette relevante RsyncShareName override for hver enkelt host.

For colargol så setter vi bare en ekstra nøkkel i BackupFilesExclude → /home Dermed tar denne seg av systemet utenom home.

For hver enkelt av de andre sier deg seg selv hva som skal inn som RsyncShareName. For colargol-home må vi sette RsyncShareName til /home, og legge til en ny exclude nøkkel → /home og legge inn exclude for staff, xdrift, hs, xhs, students og guests

Helt til sist må vi som brukeren backuppc kjøre ssh colargol-<hostname> for hver enkelt for å lage SSH fingerprint, ellers vil backup faile. Det samme må også gjøres om en maskin skifter IP, eller SSH fingerprint.

Juster deretter MaxBackups i Server config ut i fra lasten Colargol takler og ut i fra hva backupserveren takler.

Husk at når man manuelt starter backups i backuppc så er det MaxBackups + MaxUserBackups som er grensen

  • howto/backuppc.txt
  • Last modified: 15/04/2014 21:23
  • by Thomas Juberg