Att använda band är väldigt annorlunda mot att använda externa hårddiskar eller USB-stickor att göra backup på. Istället för att bara skicka filerna till en monterad enhet i systemet måste man här använda speciella program och hålla reda på vart på bandet man är. Ett band är precis vad det låter som, ett band, precis som de gamla kasettbanden eller VHS-banden. Det innebär att datan lagras i en lång sekvens på bandet, alla filerna efter varandra. En fil på bandet är då en tar-fil som har en början och ett slut. tar-filen i sin tur innehåller alla de filer som vi har gjort backup på. De flesta band som idag används i backupsyfte rymmer långt över 1 gb. Den bandstationen jag själv använder och som jag kommer att använda i denna artikel är en DAT-bandare som rymmer 72 gb data. Fast egentligen ryms inte 72 gb data på bandet då dessa 72 gb avser komprimerad data. Notera här att komprimeringen är inget jag behöver bry mig om själv eftersom bandstationen sköter allt detta i hårdvaran. Hårdvarukomprimeringen har många fördelar jämfört med om vi skulle komprimerat datan själv. Den största fördelen är att vår dators CPU inte belastas med komprimeringen, allt sker i bandstationen. I princip alla bandstationer använder inbyggd komprimering.

Nedan visas en enkel skiss på hur band lagrar data. Tar-filerna nedan på bandet är just tar-filerna, inte de enskilda filerna som vi har tagit backup på.

Hur band lagrar data

Bandstationer under Linux

Bandstationer i Linux dyker upp som /dev/st0 för första SCSI-bandstationen (samt även USB-enheter), och som /dev/ht0 för första IDE-bandstationen. I mitt system är min bandstation /dev/st0 eftersom det är en extern USB-enhet. Använder man enheten /dev/st0 så kommer bandet automatiskt att spolas tillbaks till början efter varje operation. Vill man att bandet skall stanna där den senaste operationen tog slut måste man istället använda enheten /dev/nst0 (n för non-rewinding). Detsamma gäller för IDE-enheterna, här heter alltså den icke-tillbakaspolande enheten /dev/nht0. Om vi ska förflytta oss på bandet måste vi använda oss av en non-rewinding enhet, annars kommer bandet spolas tillbaks från början så fort kommandot har utförts.

Program

De program vi kommer att använda här för att göra backup och för att styra bandstationen är tar och mt. tar använder vi ofta för att packa ihop och skicka filer över internet. Men tar är faktiskt egentligen avsett för just bandbackuper. Namnet tar kommer just från tape archive.

Vi gör en backup

Det enklaste sättet att förstå sig på bandbackuper är att testa sig fram lite. Så här kommer jag att visa hur man kan göra flera backuper på samma band, enligt skissen ovan. Här kommer vi att göra backup på tre hemkataloger på systemet, där varje hemkatalog ligger för sig själv på bandet. Så om vi enbart vill återställa Lisas hemkatalog kan vi spola fram bandet till Lisas tar-fil och återställa endast den.

Skapa backupen

/home ser ut som följande på mitt system.

root@red-dwarf:/home# ls -l
total 40
drwxr-xr-x  2 joakim joakim  4096 okt 11 22:00 joakim
drwxr-xr-x  2 kalle  kalle   4096 okt 11 22:05 kalle
drwxr-xr-x  3 lisa   lisa    4096 okt 11 22:03 lisa
drwx------  2 root   root   16384 apr 27 19:50 lost+found

Det är alltså katalogerna joakim, kalle och lisa som vi ska ta backup på. Vi börjar med att starta vår bandstation, sätta i ett band och kontrollera statusen. Statusen kontrollerar vi med kommandot mt.

root@red-dwarf:/home# mt -f /dev/st0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 0
block number = 0

Här ser vi att vi står i början av bander (file number = 0 och block number = 0). Inga fel har heller detekteras på bandet eller bandstationen så vi går vidare med backupen.

ANNONS FÖR VÅRA EGNA BÖCKER Demonerna på internet

Först gör vi backup av joakims hemkatalog. Därefter kontrollerar vi var på bandet vi befinner oss med mt-kommandot igen. Observera att jag här hela tiden använder /dev/nst0 för att bandet inte ska spolas tillbaks automatiskt.

root@red-dwarf:/home# tar cvf /dev/nst0 joakim/
joakim/
joakim/.bashrc
joakim/story.txt
joakim/.bash_history
joakim/wallpaperimage.jpg
joakim/.bash_logout
joakim/toys-wallpaper-hd-16339-17046-hd-wallpapers.jpg
joakim/2iphone.jpg
joakim/.profile
joakim/alice.txt
joakim/.viminfo

root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 1
block number = 0

Vi befinner oss nu på filnummer ett. Kom ihåg att vi alltid börjar räkna från noll, så filnummer ett är egentligen den andra filen. Det vill säga att vi står efter den första filen (fil 0). Nu fortsätter vi med backupen av Kalles hemkatalog och kontrollerar sedan återigen vart vi befinner oss på bandet.

root@red-dwarf:/home# tar cvf /dev/nst0 kalle/
kalle/
kalle/spreadsheet.csv
kalle/.bashrc
kalle/.bash_history
kalle/hugesheet.csv
kalle/.bash_logout
kalle/417259.jpg
kalle/Sample-Spreadsheet-500000-rows.csv
kalle/.profile

root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 2
block number = 0

Mycket riktigt befinner vi oss nu på filnummer två (alltså vid starten av den tredje filen, som inte finns än). Se bilden här nedan vart vi befinner oss på bandet.

Bandets filmarkeringar

Nu bestämmer vi oss för att göra klart Lisas backup en annan dag och spolar tillbaks bandet och stänger av bandstationen. Detta gör vi med mt -f /dev/st0 rewind.

När vi några dagar senare vill fortsätta med backup och återgå till filnummerposition två (starten till den tredje filen) använder vi återigen mt-kommandot, denna gång med fsf 2. Vi kontrollerar därefter att vi befinner oss på rätt plats med status och gör sedan backupen med tar.

root@red-dwarf:/home# mt -f /dev/nst0 fsf 2

root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 2
block number = 0

root@red-dwarf:/home# tar cvf /dev/nst0 lisa/
lisa/
lisa/.bashrc
lisa/visualization_-_sun_and_sky_demo.dwg
lisa/.bash_history
lisa/FL_insurance_sample.csv.zip
lisa/.bash_logout
lisa/.profile
lisa/__MACOSX/
lisa/__MACOSX/._FL_insurance_sample.csv
lisa/big_buck_bunny_720p_2mb.mp4
lisa/Sample-SQL-File-10000rows.sql

root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 3
block number = 0

Fler filer på bandet

Nu befinner vi alltså på filnummer tre (fyra eftersom vi börjar på noll). Nu ska kontrollera så att allting verkligen stämmer. Låt oss börja med att se så att Joakims filer fortfarande finns som första filen på bandet (filnummer noll). Här använder vi asf till mt som betyder att vi vill gå till den absouluta positionen (samma sak som att spola tillbaks bandet till noll, och sedan utgå därifrån).

root@red-dwarf:/home# mt -f /dev/nst0 asf 0

root@red-dwarf:/home# tar tvf /dev/st0
drwxr-xr-x joakim/joakim     0 2016-10-11 22:00 joakim/
-rw-r--r-- joakim/joakim  3526 2016-10-11 21:56 joakim/.bashrc
-rw-r--r-- joakim/joakim     9 2016-10-11 21:59 joakim/story.txt
-rw------- joakim/joakim   499 2016-10-11 22:00 joakim/.bash_history
-rw-r--r-- joakim/joakim 185615 2015-12-19 14:25 joakim/wallpaperimage.jpg
-rw-r--r-- joakim/joakim    220 2016-10-11 21:56 joakim/.bash_logout
-rw-r--r-- joakim/joakim 501977 2016-09-03 08:46 joakim/toys-wallpaper-hd-16339-17046-hd-wallpapers.jpg
-rw-r--r-- joakim/joakim 200051 2015-12-19 14:28 joakim/2iphone.jpg
-rw-r--r-- joakim/joakim    655 2016-10-11 21:56 joakim/.profile
-rw-r--r-- joakim/joakim      6 2016-10-11 22:00 joakim/alice.txt
-rw------- joakim/joakim    599 2016-10-11 22:00 joakim/.viminfo

Mycket riktigt, här finns alla joakims filer. Nu spolar vi fram bandet till filnummer två och ser efter ifall lisas filer finns där.

root@red-dwarf:/home# mt -f /dev/nst0 asf 2

root@red-dwarf:/home# tar tvf /dev/st0
drwxr-xr-x lisa/lisa         0 2016-10-11 22:03 lisa/
-rw-r--r-- lisa/lisa      3526 2016-10-11 21:56 lisa/.bashrc
-rw-r--r-- lisa/lisa    553297 2011-11-08 20:10 lisa/visualization_-_sun_and_sky_demo.dwg
-rw------- lisa/lisa       414 2016-10-11 22:03 lisa/.bash_history
-rw-r--r-- lisa/lisa    866400 2013-01-29 21:51 lisa/FL_insurance_sample.csv.zip
-rw-r--r-- lisa/lisa       220 2016-10-11 21:56 lisa/.bash_logout
-rw-r--r-- lisa/lisa       655 2016-10-11 21:56 lisa/.profile
drwxrwxr-x lisa/lisa         0 2013-01-29 21:51 lisa/__MACOSX/
-rw-r--r-- lisa/lisa       603 2013-01-29 21:50 lisa/__MACOSX/._FL_insurance_sample.csv
-rw-r--r-- lisa/lisa   2107842 2016-10-08 21:40 lisa/big_buck_bunny_720p_2mb.mp4
-rw-r--r-- lisa/lisa    870367 2016-10-08 21:40 lisa/Sample-SQL-File-10000rows.sql

Japp, även lisas filer låg precis där de skulle, vid filposition två.

På detta viset arbetar man med bandbackuper. Mer information om tar och mt finns i manualsidorna (man mt och man tar).


Nyhetsbrev
Nyhetsuppdateringar från tidningen direkt till din inkorg, helt kostnadsfritt. Avsluta när du vill.

Kommentarer

Kommentarsfältet är modererat. Det innebär att alla kommentarer granskas av ansvarig utgivare före publicering.

Du väljer själv om du vill ange ditt riktiga namn, en pseudonym eller vara helt anonym. Ingen registrering behövs.