Varmuuskopiointi

Linux.fista
Versio hetkellä 26. lokakuuta 2007 kello 00.49 – tehnyt LP (keskustelu | muokkaukset) (työkaluille oma otsikko)
Siirry navigaatioon Siirry hakuun
Sivu on yhteistyöartikkeli, koska se on tärkeästä aiheesta, mutta tarvitsee vielä laajennusta ja muuta kehittelyä. Laaja tietosisältö ei ole yhteistyöartikkelin ainoa tavoite, vaan on syytä muistaa myös merkitsemiskäytännöt.


Ilman säännöllistä varmuuskopiointia on vain ajan kysymys, milloin menettää tietokoneella säilyttämiään tiedostoja. Ne voivat hävitä esimerkiksi levyrikon, haittaohjelman, huolimattoman päivityksen, muun erehdyksen tai tulipalon seurauksena. Varmuuskopiointi ei kuitenkaan ole vaikeaa.

Mitä kopioida

  • kotihakemistot (/home)
  • mahdolliset muut käyttäjien tiedostot (/valokuvat tms.)
  • sähköpostikansiot (kotihakemistossa tai palvelimen omissa hakemistoissa)
  • mahdolliset muut palvelinten hakemistoissa olevat tiedostot (/srv/www yms.)
  • järjestelmän asetukset (/etc)
  • kiintolevyn MBR sekä tieto loogisten osioiden sijainnista levyllä
  • pakettitietokanta (/var/lib/dpkg, dpkg --get-selections tms.)
  • itse tehdyt skriptit ja itse käännetyt ohjelmat tai ainakin niihin tehdyt muutokset (/usr/local yms.)
  • varmuuskopioinnin järjestelyihin liittyvää tietoa, esimerkiksi listaa kopioiduista tiedostoista

Lisäksi pitää olla jokin tapa saada järjestelmä pystyyn mahdollisen levyrikon jälkeen. Oman jakelun asennusmedia saattaa olla sopiva. Jos varmuuskopiointiin käyttää jotakin hiukankin epätavallisempaa ohjelmaa tai tiedostomuotoa, ohjelma ja sen asetukset pitää olla tallessa sellaisessa muodossa, että varmuuskopiot saa palautettua.

Eri tiedostot kaipaavat kopiointia eri väliajoin: valokuvista riittää, kun niistä on muutama kopio, nehän eivät yleensä muutu. Asetustiedostot pitää kopioida ainakin suuremman päivityksen yhteydessä. Kotihakemistot ja sähköpostit pitää kopioida usein. Vain muuttuneiden tiedostojen kopioiminen on helppoa, mutta kauan muuttumatta ollut tiedosto pitää kuitenkin voida palauttaa kohtuullisen tuoreesta kopiosta.

Milloin ja mihin

Tilastollisesti tiedostoja tuhoutuu eniten käyttäjän virheiden, haittaohjelmien ja ohjelmavirheiden takia. Tiedoston rikkoontumista ei välttämättä huomaa heti, joten osa vanhoista varmuuskopioista kannattaa säilyttää. Tavallista on säilyttää päivittäiset kopiot jonkin aikaa ja välillä otettu koko järjestelmän varmuuskopio "ikuisesti".

Tärkeistä tieostoista kannattaa ottaa kopioita työn kuluessa, aina välillä ja aina ennen ja jälkeen suuremman muutoksen tekemistä. Tähän riittänee tallentaminen eri nimellä, mutta versionhallintajärjestelmääkin voi käyttää.

Päivittäinen muuttuneiden tiedostojen varmuuskopiointi on hyvä tehdä automatisoidusti (cron+anacron), jottei se unohdu, mielellään vähintään toiselle kovalevylle. Kovalevyjen rikkoontumiset ovat tavallinen syy tietojen menettämiselle. RAID-peilaus auttaa yhden levyn rikkoontuessa. Toiselle koneelle kopioiminen suojaa jonkin verran myös haittaohjelmilta, ohjelmavirheiltä ja käyttäjävirheiltä, CD-levylle tai DVD:lle kopioiminen vielä paremmin (mutta levynpolton automatisointi on hankalaa).

Välillä pitää tehdä varmuuskopio kaikista kopioitavista tiedostoista, jota käytetään pohjana järjestelmän palautuksessa levyrikon jäljiltä. Uudelle kiintolevylle asennetaan ensin perusjärjestelmä, sitten pakettitietokannan varmuuskopioitujen tietojen perusteella ennenkin asennettuina olleet ohjelmat (mukaan lukien käytetty varmuuskopiointiohjelma), sitten viimeinen täysi varmuuskopio ja viimeisenä sen jälkeen muuttuneet tiedostot. Operaation toimivuutta olisi hyvä joskus kokeilla vaihtamalla tietokoneeseen tyhjä kiintolevy käytetyn kiintolevyn sijaan ja palauttamalla järjestelmä sille. Myös yksittäisen tiedoston tietyn version palauttamista on hyvä kokeilla.

Ainakin välillä varmuuskopio olisi hyvä saada turvaan toiseen rakennukseen (tulipalojen, tulvien, salaman aiheuttamien laiterikkojen yms. varalta).

On hyvä käyttää varmuuskopiointiin useampaa tekniikkaa. Internetin kautta on helppoa siirtää varmuuskopio ystävän tai palveluntarjoajan kiintolevylle, jossa se on turvassa omaa taloa kohdanneesta onnettomuudesta, mutta helposti hävitettävissä inhimmillisen erehdyksen myötä. DVD saattaa muuttua ajan myötä lukukelvottomaksi, mutta kirjahyllyssä se on haittaohjelmilta turvassa.

Työkalut

Hyviä työkaluja tiedostojen varmuuskopiointiin kahden eri koneen välillä ovat mm. Rsync ja Unison. Perinteisiä varmuuskopiointiin soveltuvia työkaluja ovat mm. tar, dump ja cpio, joiden käyttöön varmuuskopiointiin on ohjeita ja esimerkkiskriptejä. Näistä ohjeista voi saada vinkkejä, vaikkei kyseistä ohjelmaa käyttäisikään.

Yleensä varmuuskopiot on otettu nauhalle, mutta ohjelmat voivat hyvin tehdä arkistonsa muuallekin. Nykyisillä isoilla kiintolevyillä tärkeiden tiedostojen kopio yleensä mahtuu levylle, josta sen voi siirtää muualle tarpeen mukaan,

Eri tarpeisiin tehtyjä erityisiä varmuuskopiointiohjelmistoja on runsasti. Varmuuskopiointiohjelmia ja tiedostomuotoja valittaessa on hyvä muistaa, että kopion pitää olla palautettavissakin. Onko tiedostomuoto sellainen, että sen saa palautettua vielä kymmenen vuoden kuluttua siitä, kun ohjelman tekijä lopetti ohjelman ylläpidon? Entä miten hyvin tiedostot saa palautettua bittiruton jäljiltä? Viimeksimainittu on ongelma erityisesti, jos arkisto pakataan tai salataan.

Rsync

Rsync on hyvä ratkaisu varmuuskopiointiin, jos:

  1. Haluaa varmuuskopioida toiselle koneelle verkon yli
  2. Varmuuskopioitavia tiedostoja on paljon, mutta vain harvat niistä muuttuvat päivittäin
  3. Jos varmuuskopioitavien tiedostojen joukossa on paljon suuria tiedostoja, jotka eivät juuri koskaan muutu
  4. Haluaa minimoida varmuuskopiointiin / tiedostojen siirtoon käytetyn ajan ja kaistan

Tämä komento kopioi ssh:n yli /home/tunnus/ kansion sisällön koneella, jonka ip on 192.168.0.1, sijaitsevaan /home/tunnus2/backup/-hakemistoon. rsync kirjautuu sisään tunnus2:n tunnuksilla toiselle koneelle.

/usr/bin/rsync -avz -e ssh /home/tunnus/ tunnus2@192.168.0.1:/home/tunnus2/backup/

Ylläolevassa on tosin se vika, että se ei ole täysin automaattinen, vaan se kysyy tunnus2:n salasanaa. Tästä pääsee eroon kun luo SSH:ta varten avainparin.

Ylläolevaa voi vielä kehittää paremmaksi tekemällä vastaanottavalle koneelle skriptin joka tekee paketin koko backup kansiosta ja tallentaa sen päivämäärällä varustetulla nimellä ja poistelee automaattisesti vanhimpia paketteja.

Katso myös