Drift/Backup: Difference between revisions

From Programvareverkstedet
m (Fjern unødvendige moin-lenker)
(info om å ta backup)
Line 1: Line 1:
= Backup =
Backup blir tatt av [[Maskiner/Decibel|decibel]] (backup av /home) og [[Maskiner/Bacchus|bacchus]] (backup av /local/adm/).
Backup blir tatt av [[Maskiner/Decibel|decibel]] (backup av /home) og [[Maskiner/Bacchus|bacchus]] (backup av /local/adm/).
Backupserveren er [[Maskiner/Nosferatu|nosferatu.pvv.ntnu.no]]. Innloggingen der er begrenset til vi finner ut om det er bare drift eller alle pvv sine  
Backupserveren er [[Maskiner/Nosferatu|nosferatu.pvv.ntnu.no]]. Innloggingen der er begrenset til vi finner ut om det er bare drift eller alle pvv sine  
Line 10: Line 9:
Backupscript og backuper ligger i /backupz.
Backupscript og backuper ligger i /backupz.


== Gammelt system: bacula ==
== Legge til backupjobb ==


Bacula er nå faset ut og tar ikke nye backuper. Det ligger fortsatt noen gamle backuper på nosferatu.
Logg inn på nosferatu som root og gå inn i /backupz


=== Restore ===
Om det ikke allerede finnes en mappe under /backupz med hostnavnet til maskinen du skal ta backup av, opprett et xfs-filsystem for formålet (pathen angis relativ til / uansett hvor du står):
# logg på nosferatu og su til root
# Start bconsole
# Skriv: `restore`
# Velg restore-metode fra listen
#* For å restore en enkelt fil fra en gitt dato:
#** Velg #8: "Enter a list of files to restore before a specified time"
#** Skriv inn liste over filer som skal gjenopprettes. IKKE skriv /export foran /home.
# For å restore en hel mappe (IKKE rekursivt) fra en gitt dato:
#* Velg #10: "Find the <<Verbatim(JobIds)>> for a backup for a client before a specified time"
#* Velg #11: "Enter a list of directories to restore for found <<Verbatim(JobIds)>>"
#* Skriv inn liste over kataloger som skal gjenopprettes. IKKE skriv /export foran /home. Underkataloger må skrives inn manuelt.
# For å gjenopprette en katalogstruktur rekursivt:
#* Se [http://man.chinaunix.net/network/bacula/bacula_manual/Bacula_Consol_Restor_Comman.html denne tutorialen]
# Husk å trykke enter en ekstra gang på slutten, så det blir en tom linje.
# Vent minst en halv time.
# Velg mappen filene skal lagres til.
# Sjekk at alt er riktig satt, feil kan du rette med 'mod'.
# Godkjenn kjøring av jobb.
# Vent på at dataen skal hentes ut fra backup.


==== Linker ====
<pre>
* [http://www.bacula.org/rel-manual/Brief_Tutorial.html#SECTION001260000000000000000 Offisiell tutorial]
nosferatu# zfs create backupz/tim
* [http://man.chinaunix.net/network/bacula/bacula_manual/Bacula_Consol_Restor_Comman.html En litt utvidet tutorial]
</pre>


=== Server-oppsett ===
Filsystemet skal bli mountet av seg selv:
<pre>
nosferatu# df -h /backupz/tim
Filesystem    Size    Used  Avail Capacity  Mounted on
backupz/tim    17G      0B    17G    0%    /backupz/tim
</pre>


==== Quirks ====
Sjekk ut backupscriptet, rediger det (la deg inspirere av en av de eksisterende backupjobbene), kontroll er endringene, og sjekk det inn igjen:
/var på nosferatu var for liten til at databasen som bacula bruker fikk plass der så /var/db/bacula er symlinket til /data/bacula.
<pre>
nosferatu# co -l backup.sh
nosferatu# vim backup.sh
nosferatu# rcsdiff -u backup.sh
nosferatu# ci -u backup.sh
</pre>


De fleste diskene har bare en "tape" per disk, men disk11 (ad6?) har flere "taper". Dette er et forsøk på å unngå et litt data på
Husk å skrive en vettug commitbeskjed. Det var det!
slutten av disken hindrer at hele disken står ubrukt selv om det ikke er ledig plass igjen noe annet sted.
 
==== Starting services ====
Man starter bacula-fd på decibel med kommandoen: <code><nowiki>/usr/local/sbin/bacula-fd -v -d 5 -c /usr/local/etc/bacula-fd.conf</nowiki></code>
 
==== Ny disk ====
 
Hvis du skal legge til en disk for f.eks. Incr-0020:
 
* Sett inn den nye disken med drivebaysaken slått av.
* Slå på draivbæien.
* Se hvilken device den får.
* Gjør sånn mongo-bsd-formatering. (Et filsystem per disk er greit.) (newfs /dev/adX)
* Sett den opp til å montere på /backup/diskX
* Lag /var/backup/Incr-0020 som en symlink til /backup/diskX/Incr-0020
* Gå inn i bconsole
* Kjør label, velg Incr-poolen, skriv Incr-0020 (sånn ca., gidder ikke å sjekke rekkefølge nå)
* Avslutt bconsole
* Gå til /usr/local/etc
* co -l bacula-dir.conf
* Endre "Max Volumes" under Incr-poolen til 20
* ci -u bacula-dir.conf
* Drep og start på nytt alle bacula-relaterte prosesser
 
==== Sjekk at alle disker er montert opp på rett sted ====
 
Greit etter kjerneoppdatering blant annet.
nosferatu:/var/backup# for i in *-*; do echo $i; (cat $i |head -n1) >/dev/null; done


__NOTOC__
__NOTOC__

Revision as of 21:24, 1 May 2010

Backup blir tatt av decibel (backup av /home) og bacchus (backup av /local/adm/). Backupserveren er nosferatu.pvv.ntnu.no. Innloggingen der er begrenset til vi finner ut om det er bare drift eller alle pvv sine medlemmer som skal ha tilgang til boksen.

For brukere som har store filer de ikke trenger backup av, spesielt store filer som endres ofte og derfor ofte vil bli tatt med i inkremetelle backuper, så kan de legge filene i ~/nobackup. Innholdet i den mappa vil da ikke bli tatt med i backup.

Backup blir tatt med rsync og ZFS. Et hjemmesnekret bash-script kjører rsync og kopierer filer til /backupz. Når rsync er ferdig tar et ZFS-snapshot.

Backupscript og backuper ligger i /backupz.

Legge til backupjobb

Logg inn på nosferatu som root og gå inn i /backupz

Om det ikke allerede finnes en mappe under /backupz med hostnavnet til maskinen du skal ta backup av, opprett et xfs-filsystem for formålet (pathen angis relativ til / uansett hvor du står):

nosferatu# zfs create backupz/tim

Filsystemet skal bli mountet av seg selv:

nosferatu# df -h /backupz/tim
Filesystem     Size    Used   Avail Capacity  Mounted on
backupz/tim     17G      0B     17G     0%    /backupz/tim

Sjekk ut backupscriptet, rediger det (la deg inspirere av en av de eksisterende backupjobbene), kontroll er endringene, og sjekk det inn igjen:

nosferatu# co -l backup.sh 
nosferatu# vim backup.sh 
nosferatu# rcsdiff -u backup.sh
nosferatu# ci -u backup.sh

Husk å skrive en vettug commitbeskjed. Det var det!