Drift/Backup: Difference between revisions
(ssh-nøkkel-magi) |
(Flytt backuprutiner inn i denne siden) |
||
(10 intermediate revisions by 7 users not shown) | |||
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/ | Backupserveren er [[Maskiner/principal|principal.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å | Logg inn på principal 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 | === Sørg for at principal kan logge inn === | ||
For at | For at principal skal komme inn med SSH-nøkkelen sin må du først ssh-e til boksen manuelt, slik at principal 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 principal til boksen: | ||
=== Lage nytt filsystem === | === Lage nytt filsystem === | ||
Om det ikke allerede finnes en mappe under /backupz til dataene du skal ta backup av, opprett et | 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): | ||
<pre> | <pre> | ||
principal# zfs create principal/backupz/web | |||
</pre> | </pre> | ||
Filsystemet | Filsystemet blir mountet av seg selv: | ||
<pre> | <pre> | ||
principal# df -h /backupz/web | |||
Filesystem Size Used Avail Capacity Mounted on | Filesystem Size Used Avail Capacity Mounted on | ||
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> | ||
principal# co -l backup.sh | |||
principal# vim backup.sh | |||
principal# rcsdiff -u backup.sh | |||
principal# ci -u backup.sh | |||
</pre> | </pre> | ||
Line 51: | Line 45: | ||
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. | 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. | ||
=== Viktige ting å huske === | |||
Ikke backup '''/dev''' (fordi dette er tilkoblede "devices", og ikke egentlige filer) og '''/proc''' (fordi dette er info om prosessene som kjører på maskinen og heller ikke egentlige filer). | |||
== 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: | |||
<pre> | |||
principal# zfs list -t snapshot | |||
</pre> | |||
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: | |||
<pre> | |||
principal# cd /backupz/homepvv/export/home/.zfs/snapshot/20151021 | |||
</pre> | |||
Hent det du trenger. | |||
Dette vil være read-only, og vil oppføre seg litt merkelig. | |||
== Fjernlagring av sikkerhetskopier == | |||
PVV har to backupdisker, hver på 10 TB. | |||
Tanken er at en tilhører leder og en tilhører driftskoordinator, de er hver ansvarlige for å ta sikkerhetskopi hhv. høst og vår. | |||
Backupdiskene er kryptert med ytre rootpassord, og skal ikke lagres på Gløs. | |||
Diskene er tenkt å ha et kryptert ZFS filsystem, dette er imidlertid ikke satt opp pga. mangel på kryptering i FreeBSDs ZFS. | |||
__NOTOC__ | __NOTOC__ |
Latest revision as of 01:01, 10 December 2023
Backup blir tatt av decibel (backup av /home) og bacchus (backup av /local/adm/). Backupserveren er principal.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å principal 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 principal kan logge inn
For at principal skal komme inn med SSH-nøkkelen sin må du først ssh-e til boksen manuelt, slik at principal 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 principal 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):
principal# zfs create principal/backupz/web
Filsystemet blir mountet av seg selv:
principal# 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:
principal# co -l backup.sh principal# vim backup.sh principal# rcsdiff -u backup.sh principal# 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.
Viktige ting å huske
Ikke backup /dev (fordi dette er tilkoblede "devices", og ikke egentlige filer) og /proc (fordi dette er info om prosessene som kjører på maskinen og heller ikke egentlige filer).
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:
principal# 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.
Så gjenstår det bare å cd til snapshottet. Eksempelvis:
principal# 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.
Fjernlagring av sikkerhetskopier
PVV har to backupdisker, hver på 10 TB. Tanken er at en tilhører leder og en tilhører driftskoordinator, de er hver ansvarlige for å ta sikkerhetskopi hhv. høst og vår.
Backupdiskene er kryptert med ytre rootpassord, og skal ikke lagres på Gløs.
Diskene er tenkt å ha et kryptert ZFS filsystem, dette er imidlertid ikke satt opp pga. mangel på kryptering i FreeBSDs ZFS.