Drift/Backup: Difference between revisions

From Programvareverkstedet
(Ny backupmaskin: Alphys)
Line 1: Line 1:
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/Alphys|alphys.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.
medlemmer som skal ha tilgang til boksen.


Line 11: Line 11:
== Legge til eller endre backupjobber ==
== Legge til eller endre backupjobber ==


Logg inn på nosferatu som root og gå inn i /backupz. Vi prøver å bevare samme filsystem om vi flytter tjenester mellom bokser, og derfor heter en del av sharene bare "web", "databases" og lignende. Her må man bruke litt skjønn. Det er mulig å omstrukturere litt med <code>zfs rename</code> om det lå under en hostnavn-basert katalog før.
Logg inn på alphys som root og gå inn i /backupz. Vi prøver å bevare samme filsystem om vi flytter tjenester mellom bokser, og derfor heter en del av sharene bare "web", "databases" og lignende. Her må man bruke litt skjønn. Det er mulig å omstrukturere litt med <code>zfs rename</code> om det lå under en hostnavn-basert katalog før.


=== Sørg for at nosferatu kan logge inn ===
=== Sørg for at alphys kan logge inn ===


For at nosferatu skal komme inn med SSH-nøkkelen sin må du først ssh-e til boksen manuelt, slik at nosferatu cacher ssh-nøkkelen. I tillegg krever nøkkelen at scriptet '''/root/validate-rsync''' finnes. Kopier det fra en annen boks som blir tatt backup av. Når alt er OK skal du få dette svaret når du prøver å SSH-e fra nosferatu til boksen:
For at alphys skal komme inn med SSH-nøkkelen sin må du først ssh-e til boksen manuelt, slik at alphys cacher ssh-nøkkelen. Når alt er OK skal du få dette svaret når du prøver å SSH-e fra alphys til boksen:
 
<pre>
nosferatu# ssh tim
Rejected
Connection to tim.pvv.ntnu.no closed.
</pre>


=== Lage nytt filsystem ===
=== Lage nytt filsystem ===
Line 27: Line 21:


<pre>
<pre>
nosferatu# zfs create backupz/web
alphys# zfs create alphys-zdata/backupz/web
</pre>
</pre>


Filsystemet blir mountet av seg selv:
Filsystemet blir mountet av seg selv:
<pre>
<pre>
nosferatu# df -h /backupz/web
alphys# df -h /backupz/web
Filesystem    Size    Used  Avail Capacity  Mounted on
Filesystem    Size    Used  Avail Capacity  Mounted on
backupz/web    17G     0B    17G     0%    /backupz/web
backupz/web    14T     0B    14T     0%    /backupz/web
</pre>
</pre>


Line 41: Line 35:
Sjekk ut backupscriptet, rediger det (la deg inspirere av en av de eksisterende backupjobbene), kontroll er endringene, og sjekk det inn igjen:
Sjekk ut backupscriptet, rediger det (la deg inspirere av en av de eksisterende backupjobbene), kontroll er endringene, og sjekk det inn igjen:
<pre>
<pre>
nosferatu# co -l backup.sh  
alphys# co -l backup.sh  
nosferatu# vim backup.sh  
alphys# vim backup.sh  
nosferatu# rcsdiff -u backup.sh
alphys# rcsdiff -u backup.sh
nosferatu# ci -u backup.sh
alphys# ci -u backup.sh
</pre>
</pre>


Line 59: Line 53:
Denne kommandoen gir deg en liste over alle snapshots:
Denne kommandoen gir deg en liste over alle snapshots:
<pre>
<pre>
nosferatu# zfs list -t snapshot
alphys# zfs list -t snapshot
</pre>
</pre>
Legg merke til at hjemmeområdet heter /backupz/decibel/export/home.
Legg merke til at hjemmeområdet heter /backupz/homepvv/export/home.
Dette er selvfølgelig rart på flere nivåer, for decibel har ikke vært oppe på en stund; mappenavnet er gammelt.  
Dette er selvfølgelig rart på flere nivåer, for decibel har ikke vært oppe på en stund; mappenavnet er gammelt.  
Ta det med knusende ro; dette er fra microbel og er bare et eksempel på litt latskap.
Etter dette navnet kommer en alfakrøll med dato til backupen.
Etter dette navnet kommer en alfakrøll med dato til backupen.


Line 69: Line 62:
Så gjenstår det bare å cd til snapshottet. Eksempelvis:
Så gjenstår det bare å cd til snapshottet. Eksempelvis:
<pre>
<pre>
nosferatu# cd /backupz/decibel/export/home/.zfs/snapshot/20151021
alphys# cd /backupz/homepvv/export/home/.zfs/snapshot/20151021
</pre>
</pre>
Hent det du trenger.
Hent det du trenger.
Dette vil være read-only, og vil oppføre seg litt merkelig.
Dette vil være read-only, og vil oppføre seg litt merkelig.
__NOTOC__
__NOTOC__

Revision as of 22:12, 4 February 2017

Backup blir tatt av decibel (backup av /home) og bacchus (backup av /local/adm/). Backupserveren er alphys.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 eller endre backupjobber

Logg inn på alphys som root og gå inn i /backupz. Vi prøver å bevare samme filsystem om vi flytter tjenester mellom bokser, og derfor heter en del av sharene bare "web", "databases" og lignende. Her må man bruke litt skjønn. Det er mulig å omstrukturere litt med zfs rename om det lå under en hostnavn-basert katalog før.

Sørg for at alphys kan logge inn

For at alphys skal komme inn med SSH-nøkkelen sin må du først ssh-e til boksen manuelt, slik at alphys cacher ssh-nøkkelen. Når alt er OK skal du få dette svaret når du prøver å SSH-e fra alphys til boksen:

Lage nytt filsystem

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

alphys# zfs create alphys-zdata/backupz/web

Filsystemet blir mountet av seg selv:

alphys# df -h /backupz/web
Filesystem     Size    Used   Avail Capacity  Mounted on
backupz/web     14T      0B     14T     0%    /backupz/web

Oppdatering av backupscriptet

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

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

Husk å skrive en vettug commitbeskjed.

Pass også på så du ikke ender opp med å kjøre masse backupjobber på samme maskin samtidig. Om du har flere jobber mot samme boks (fordi dataene skal i ulike zfs-filsystemer) kan du eventuelt gruppere dem i et subshell som du legger i bakgrunnen.

Gjennoprette enkeltfiler fra backup

Vi bruker zfs-snapshots som backup. Derfor er det veldig enkelt å hente ut filer. Det er greit å vite hvilken maskin filen lå på, men det antas at du allerede vet dette.

Få en liste over alle snapshots

Denne kommandoen gir deg en liste over alle snapshots:

alphys# zfs list -t snapshot

Legg merke til at hjemmeområdet heter /backupz/homepvv/export/home. Dette er selvfølgelig rart på flere nivåer, for decibel har ikke vært oppe på en stund; mappenavnet er gammelt. Etter dette navnet kommer en alfakrøll med dato til backupen.

Navigere rundt i snapshot

Så gjenstår det bare å cd til snapshottet. Eksempelvis:

alphys# cd /backupz/homepvv/export/home/.zfs/snapshot/20151021

Hent det du trenger. Dette vil være read-only, og vil oppføre seg litt merkelig.