Rootmanual:lysrdiff: Skillnad mellan sidversioner
Poj (diskussion | bidrag) (→Implementation: Lade till info om var i Datorhandboken det finns lite mer dokumentation) |
Sebth (diskussion | bidrag) |
||
(4 mellanliggande sidversioner av samma användare visas inte) | |||
Rad 10: | Rad 10: | ||
<br /></code> |
<br /></code> |
||
<li>Distribuera ut nya backupjobb på backuppartitionerna:<br /><code> |
<li>Distribuera ut nya backupjobb på backuppartitionerna:<br /><code> |
||
distribute -i 1/0 |
distribute-tasks -i 1/0 |
||
<br /></code> |
<br /></code> |
||
<li>Köra alla jobb som hör till vissa partitioner:<br /><code> |
<li>Köra alla jobb som hör till vissa partitioner:<br /><code> |
||
backup-all 1/0 |
backup-all 1/0 |
||
</code> |
</code> |
||
<li>Läsa tillbaka den nyaste backupen av calles hemkatalog:<br /> |
<li>Läsa tillbaka den nyaste backupen av calles hemkatalog:<br /> |
||
Rad 52: | Rad 52: | ||
== Implementation == |
== Implementation == |
||
Källkoden lagras i |
Källkoden lagras i Git. Man kan checka ut den anonymt: |
||
git clone https://git.lysator.liu.se/lysator/lysrdiff.git |
|||
Lysdridff är installerat under /opt/LYSrdiff på backupservern (för tillfället [[ |
Lysdridff är installerat under /opt/LYSrdiff på backupservern (för tillfället [[oden]]). |
||
En central del är filen var/tasks. Varje rad beskriver ett backupjobb. Varje rad består av fyra delar: |
En central del är filen var/tasks. Varje rad beskriver ett backupjobb. Varje rad består av fyra delar: |
||
Rad 72: | Rad 72: | ||
== category == |
== category == |
||
{{Föråldrad}} |
|||
För tillfället finns följande kategorier (antalet subkategorier 2007-01-16 inom parentes): |
För tillfället finns följande kategorier (antalet subkategorier 2007-01-16 inom parentes): |
||
Rad 136: | Rad 138: | ||
== Praktiskt == |
== Praktiskt == |
||
{{Föråldrad}} |
|||
För att off-site-backupen ska vara aktuell måste man byta A- och |
För att off-site-backupen ska vara aktuell måste man byta A- och |
||
B-diskarna med jämna mellanrum. Oftare är bättre än mindre ofta. |
B-diskarna med jämna mellanrum. Oftare är bättre än mindre ofta. |
||
=== Diskar === |
=== Diskar === |
||
6 diskar är i bruk: |
6 diskar är i bruk: |
||
* 1 perm |
* 1 perm |
||
Rad 151: | Rad 157: | ||
=== Rotera diskar === |
=== Rotera diskar === |
||
# Begär att backupsystemet tar paus. |
# Begär att backupsystemet tar paus. |
||
## <tt>$ su</tt> |
## <tt>$ su</tt> |
Nuvarande version från 28 mars 2016 kl. 18.33
Lathund
- Sätta PATH så LYSrdiff-prylarna finns med:
PATH=/opt/LYSrdiff/bin:$PATH
- Skapa ny lista av backupjobb som ska köras:
fetch-backup-work
- Distribuera ut nya backupjobb på backuppartitionerna:
distribute-tasks -i 1/0
- Köra alla jobb som hör till vissa partitioner:
backup-all 1/0
- Läsa tillbaka den nyaste backupen av calles hemkatalog:
rdiff-backup --force -r 0B --null-separator \
--remote-schema 'ssh -a -k -x -i /root/.ssh/backupkey %s /opt/LYSrdiff/bin/rdiff-backup --server' \
/lysrdiff/0/perm/lysrdiff/backups/home/calle/files home::/export/home/calle
Flaggan--force
behövs om katalogen redan finns. - Se status:
lysrdiff-status
Bakgrund
Lysator har haft många backupsystem genom åren. En gemensam faktor är att de varit bandbaserade. En annan gemensam faktor är att banden och/eller bandarna strulat.
De två senaste backupsystemen har använt komplexa programvaror: Legato Networker och Bacula. Legato Networker kostar pengar. Lysator använde en begagnad licens till en gammal version av programvaran. Den fungerade inte så bra när man skulle läsa tillbaka ett stort filträd. Det tog timmar bara att bygga upp indexet. Det kunde dröja en dag innan man upptäckte att bandet var trasigt, så att man inte kunde läsa tillbaka sin backup.
Bacula är fri programvara. Det kostar utvecklingstid, ty det har fortfarande många barnsjukdomar. Det är precis som Networker väldigt långsamt när det ska läsa tillbaka filer.
Disk blir bara billigare och billigare. Det är numera ekonomiskt försvarbart att ta backup till disk. Tack vare billiga USB-diskar kan man till och med använda disk för off-site-backup.
I oktober 2006 hade Lysator varit utan fungerande backup ett tag. (Några ad-hoc-rsync-speglingar gjordes, så situationen var inte helt akut, men ändå inte acceptabel.) Ett förslag om att Lysator skulle investera drygt 35000 kronor på ett Linux-RAID-system för att köra TSM (en proprietär backuplösning) lades fram. Några stofilrötter tyckte det var för mycket pengar att lägga på ett system, som de trodde hade stora möjligheter att misslyckas. Och ceder trodde att man skulle kunna få till ett minst lika bra backupsystem för en bråkdel av kostnaden.
Detta är bakgrunden till backupsystemet LYSrdiff.
Filosofi
Disk är billigt.
rdiff-backup är en bra byggsten när man bygger ett backupsystem.
Lysator har många saker som det är värt att ta backup av. Ett backupsystem bör göras så att de olika backuperna är oberoende av varandra. Om t ex en användares namngivning av sina filer triggar en bugg i rdiff-backup ska det inte påverka alla andra användare -- isolera skadan!
RAID är komplext. Backupsystemet ska vara stabilt. Man får stabilitet genom att använda beprövad teknik, och hålla sig undan från sluten hårdvara eller mjukvaru-RAID som bara används av 0.3% av Linuxanvändarna. Det är bättre att använda ext3 som alla andra, och spegla diskar "manuellt" med rsync.
Ett backupsystem måste vara utbyggbart: man måste kunna stoppa in mer disk, man måste kunna dela upp backupjobbet på flera backupservrar om det visar sig att en backupserver inte räcker till för belastningen.
Implementation
Källkoden lagras i Git. Man kan checka ut den anonymt:
git clone https://git.lysator.liu.se/lysator/lysrdiff.git
Lysdridff är installerat under /opt/LYSrdiff på backupservern (för tillfället oden).
En central del är filen var/tasks. Varje rad beskriver ett backupjobb. Varje rad består av fyra delar:
- category - kategori, t ex "home" eller "lyswww"
- subcategory - de flesta kategorier har någon typ av underkategorier. För "home" är det t ex användarnamn.
- server - den dator man ska logga in på för att komma åt disken.
- serverpath - den katalog som det ska tas backup på.
Filen var/tasks skapas av fetch-backup-work.
backup-one-task tar backup av ett backupjobb. backup-all loopar över alla backupjobb. backup-repeatedly loopar över alla backupjobb om och om igen.
Det finns en del blandad, extra dokumentation under Kategorin Lysrdiff här i Datorhandboken
category
För tillfället finns följande kategorier (antalet subkategorier 2007-01-16 inom parentes):
- home (1493): användarkataloger, tagna från NIS-mappen auto_home
- lyswww (962): användares websidor, tagna från /lysator/lyswww/users/common
- mail (716): användarnas mailkataloger, tagna från /var/mail (lenin:/home)
- roxen (220): användares websidor, tagna från /lysator/lyswww/users/roxen_only
- lyscvs (219): CVS-projekt från stalingrad
- ftp-pub (53): Filer publicerade på Lysators FTP-server
- lsvn (45): Subversion-projekt från stalingrad
- lyssvn (10): Subversion-projekt från poseidon
- lenin (5): Systemdiskar för lenin
- sedesopim (4): Systemdiskar för sedesopim
- poseidon (2): Systemdiskar för poseidon
- kilauea (2): Systemdiskar för kilauea
- medreg (1): Medlemsregistret
- lyskom (1): LysKOM-databasen
- hanna (1): Systemdisk för hanna
- quota1: användarkataloger i /home/quota1.
Status
Backup tas manuellt ca en gång per dygn. Det tar ca 8 timmar att köra igenom backupen en runda. Med de undantag som listas nedan tas det backup av allt i de kategorier som nämns ovan.
- För många av systemdiskarna tas det bara mycket begränsade backuper. Målet är att ha backup av systemspecifik konfiguration, inte att kunna återställa systemen från backupen.
Kommande kategorier
- quota1 - användarnas quota-skyddade partitioner
- lysdisk - lysdiskpartitioner som inte är $HOME, om det finns några sådana kvar
- ? - saker som ligger bland $HOME-katalogerna men inte finns i auto_home (om det finns något sådant)
- ...och säkert en hel massa annat
Milstenar
Redan passerade milstenar.
- Skapa proof-of-concept-scripts på sedesopim, och kör dem på ledig disk som finns där. Passerad 2006-10-12.
- Få styrelsen att finansiera inköp av en USB-disk. Passerad 2006-10-14.
- Checka in lysrdiff i subversion. Passerad 2006-10-14.
- 2006-10-15: Dokumentera lysrdiff på denna sida. Passerad 2006-10-15.
- 2006-10-15: Beställ USB-disk. Passerad 2006-10-15.
- 2006-10-18: Hämta ut USB-disken. Passerad 2006-10-18.
- 2006-10-19: Koppla in USB-disken. Passerad 2006-10-18. Diskens post i LysINV.
- 2006-10-22: Avslutad backup av alla hemkataloger, alla användar-web-kataloger (common och Roxen). Passerad 2006-10-26, med undantag för lysdisk-användare (på grund av hårdvaruproblem med Manhattan). Förseningen beror till största del på att det tog mer tid än väntat att kopiera stora mängder data, och till viss del på reparationsarbeten på Manhattan och en oplanerad omboot av sedesopim som skedde av misstag.
- 2006-12-01: Undersök om någon av de datorer Lysator redan har duger till att köra LYSrdiff. Resultat: nej, vi har ingen passande dator. Passerad 2007-01-16.
- 2006-10-29: Avslutad backup av LysKOM-databasen, projekt-web-kataloger, lysdiskar som inte är hemkataloger, /pkg/cfengine. Passerad 2007-01-16, mer eller mindre. Det finns inte kvar några lysdiskar, och /pkg/cfengine finns det inte plats för. I stället tas det backup av en massa annat (se ovan).
Planerade milstenar:
- 2006-11-05: Inventera vad annat som det bör tas backup av, och ta backup av det.
- 2006-12-10: Skriva utvärderingsrapport om hur systemet har fungerat under försöksperioden fram till detta datum. Föreslå inköp av mer hårdvara för att få till spegling på backupservern, off-site-lagring av backuper, och att backupsystemet går på ett separat system i stället för på sedesopim.
Praktiskt
För att off-site-backupen ska vara aktuell måste man byta A- och
B-diskarna med jämna mellanrum. Oftare är bättre än mindre ofta.
Diskar
6 diskar är i bruk:
- 1 perm
- 1 A
- 1 B
- 2 perm
- 2 A
- 2 B
De som heter perm är permanent inkopplade. Varje disk har två partitioner, 0 och 1.
Rotera diskar
- Begär att backupsystemet tar paus.
- $ su
- # touch /opt/LYSrdiff/etc/hold
- Vänta tills inga backupjobb körs
- Avmontera disken:
- # umount /lysrdiff/1/A/0
- # umount /lysrdiff/1/A/1
- Byt disk.
- Montera disken:
- # mount /lysrdiff/1/B/0
- # mount /lysrdiff/1/B/1
- Ta bort din begäran om paus:
- # rm /opt/LYSrdiff/etc/hold
Förbereda diskar för användning
- Partitionera (för tillfället stöder lysrdiff diskar med två partitioner, vill man göra fler får man ändra i kodbasen).
- Formatera till ext3.
- Lägg till i fstab och LysINV
- (Montera?)
- Kör lysrdiff-label-disk för att skapa kataloger och filer som behövs på disken.
- Klart för användning