FreeBSD kézikönyv
Előző | Fejezet 18. Háttértárak | Következő

# 18.12. Alapvető tudnivalók a biztonsági mentésről

A dump(8), tar(1) és cpio(1) a három legfontosabb biztonsági mentésekkel kapcsolatos program.

## 18.12.1. Mentés és helyreállítás

A UNIX® típusú rendszerekben a biztonsági mentést hagyományosan a `dump` és `restore` programok végzik. A meghajtókat lemezblokkok összeségeként kezelik, az állományrendszerek által létrehozott állományok, linkek és könyvtárak szintje alatt. Eltérően más, biztonsági mentést végző szoftverektől, a `dump` az adott eszközön egy egész állományrendszert képes lementeni. Nem képes csak az állományrendszer vagy egy több állományrendszerre kiterjedő könyvtárszerkezet egy részét lementeni. A `dump` nem állományokat és könyvtárakat ír a szalagra, hanem nyers adatblokkokat, amelyek állományokat és könyvtárakat formáznak. A `restore` parancs az adatokat alapértelmezés szerint a `/tmp` könyvtárba tömöríti ki. Ha nem lenne elegendő helyünk a `/tmp` könyvtárban, akkor a `TMPDIR` környezeti változó átállításával ehelyett megadhatunk egy olyat, ahol már kellő mennyiségű terület áll rendelkezésre a `restore` akadálytalan lefutásához.

> Megjegyzés: Ha a `dump` parancsot a gyökér könyvtárban adjuk ki, akkor nem fogja lementeni a `/home` vagy `/usr` vagy bármilyen más könyvtárat, mivel ezek jellemző módon más állományrendszerek csatlakozási pontja vagy más állományrendszerekre mutató szimbolikus linkek.

A `dump` parancsnak vannak olyan rigolyái, amelyek még az AT&T UNIX 6. verziójából (1975 környékéről) maradtak vissza. Az alapértelmezett paraméterezése 9 sávos szalagokat feltételezi (6250 bpi), nem pedig a napjainkban elterjedt nagy írássűrűsségű (egészen 62 182 ftpi-s) adathordozókat. Ezek az alapértelmezések természetesen paranccsorból felülbírálhatóak, és így a manapság alkalmazott szalagos meghajtók teljes kapacitása is kihasználható vele.

Emellett az `rdump` és `rrestore` programok segítségével hálózaton keresztül is le tudjuk menteni az adatainkat egy másik számítógépre csatlakoztatott szalagos egységre. Mind a két program az rcmd(3) és a ruserok(3) parancsokat használja a távoli szalagos meghajtó eléréséhez. Az `rdump` és `rrestore` paramétereinek a távoli számítógép használatához kell illeszkedniük. Amikor egy FreeBSD rendszerű számítógépet az `rdump` paranccsal egy Sun rendszerű, `komodo` nevű számítógépre mentünk, amelyhez egy Exabyte szalagos meghajtó csatlakozik, akkor ezt a írjuk be:

    # /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1

Figyelem: az `.rhosts` állományon keresztül hitelesítésnek megvannak a maga biztonsági kockázatai. Ne felejtsük el felmérni ezt a saját környezetünkben sem.

A `dump` és `restore` parancsokat az `ssh` használatával még biztonságosabbá tehetjük.

Példa 18-1. A `dump` használata az ssh alkalmazással

    # /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
              célfelhasználó@cél.gép.hu dd of=/nagyállományok/dump-usr-l0.gz

Vagy az `RSH` környezeti változó megfelelő beállításával használhatjuk a `dump` beépített módszerét:

Példa 18-2. A `dump` használata az ssh alkalmazással, az `RSH` környezeti változó beállításával

    # RSH=/usr/bin/ssh /sbin/dump -0uan -f célfelhasználó@cél.gép.hu:/dev/sa0 /usr

## 18.12.2. `tar`

A tar(1) is az AT&T UNIX 6. verziójáig nyúlik vissza (tehát nagyjából 1975-ig). A `tar` az állományrendszerrel szoros együttműködésben dolgozik, állományokat és könyvtárakat ír a szalagra. A `tar` ugyan nem ismeri a cpio(1) által felkínált összes lehetőséget, de nincs is szüksége olyan szokatlan paranccsoros összekapcsolásokra, mint a `cpio` parancsnak.

A FreeBSD 5.3 vagy későbbi változataiban a GNU `tar` és az alapértelmezés szerinti `bsdtar` egyaránt elérhető. A GNU változat a `gtar` paranccsal hívható meg. Az `rdump` parancshoz hasonló felírásban képes kezelni a távoli eszközöket. Tehát így tudjuk használni a `tar` parancsot a `komodo` nevű Sun számítógép Exabíte szalagos meghajtójának elérésére:

    # /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1

Ugyanez eltérhető a `bsdtar` használatával is, amikor az `rsh` programmal összekapcsolva küldünk át a távoli szalagos egységre.

    # tar cf - . | rsh hálózati-név dd of=szalagos-eszköz obs=20b

Ha a hálózaton keresztül mentés során fontos számunkra a biztonság, akkor az `rsh` parancs helyett az `ssh` parancsot használjuk.

## 18.12.3. `cpio`

A cpio(1) eredetileg a UNIX szalagos programjai és szalagos egységei között közvetített. A `cpio` parancs (többek közt) képes a byte-ok sorrendjének felcserélésére, több különböző archívum formátuma szerint írni és adatokat közvetíteni más programok felé. Ez utóbbi lehetősége miatt a `cpio` kíválóan alkalmas a telepítőeszközök számára. A `cpio` nem képes bejárni a könyvtárszerkezetet, és az állományok listáját a szabványos bemeneten keresztül kell megadni neki.

A `cpio` nem támogatja a biztonsági mentés átküldését a hálózaton. Programok összekapcsolásával és az `rsh` használatával tudunk adatokat küldeni távoli szalagos meghajtókra.

    # for f in könyvtár_lista; do
    find $f >> mentési.lista
    done
    # cpio -v -o --format=newc < backup.list | ssh felhasználó@gép "cat > mentőeszköz"

Ahol a `könyvtár_lista` a menteni kívánt könyvtárak listája, a `felhasználó`@`gép` a mentést végző gép felhasználójának és hálózati nevének együttese, valamint a `mentőeszköz`, ahova a mentés kerül (például `/dev/nsa0`).

## 18.12.4. `pax`

A pax(1) az IEEE/POSIX® válasza a `tar` és `cpio` programokra. Az évek során a `tar` és a `cpio` különböző változatai egy kissé inkompatibilissé váltak. Ezért a szabványosításuk kiharcolása helyett inkább a POSIX létrehozott egy új archiváló segédprogramot. A `pax` megpróbálja írni és olvasni a `cpio` és `tar` formátumok legtöbb változatát, valamint emellett további saját formátumokat is kezel. A parancskészlete inkább a `cpio` parancséra emlékeztet, mintsem a `tar` parancséra.

## 18.12.5. Amanda

Az Amanda (Advanced Maryland Network Disk Archiver) egy kliens-szerver alapú mentési rendszer, nem pedig egy önálló program. Az Amanda szerver menti tetszőleges számú számítógép adatát egyetlen szalagra, melyek az Amanda klienst futtatják és hálózaton keresztül hozzá csatlakoznak. A nagy mennyiségű és nagy kapacitású lemezekkel rendelkező rendszerekben közvetlenül a mentéshez szükséges idő nem áll rendelkezésre a feladat elvégzéséhez. Az Amanda viszont képes megoldani ezt a problémát. Az Amanda képes egy “saját lemez” használatával egyszerre több állományrendszerről is biztonsági mentést készíteni. Az Amanda “archívumkészleteket” hoz létre: az Amanda konfigurációs állományában megadott állományrendszerekről készít teljes mentést egy adott idő alatt egy adott mennyiségű szalagra. Az “archívumkészlet” ezenkívül még tartalmaz egy napi inkrementális (vagy különbözeti) mentést is minden egyes állományrendszerről. A sérült állományrendszerek visszaállításához mindig a legújabb teljes biztonsági mentésre és a hozzá tartozó inkrementális mentésekre van szükségünk.

A konfigurációs állomány segítségével precíz irányítást gyakorolhatunk a létrehozott mentések és az Amanda által keltett hálózati forgalom felett. Az Amanda a fentiek közül bármelyik programmal képes az adatokat szalagra rögzíteni. Az Amanda portként vagy csomagként is elérhető, alapértelmezés szerint nem települ.

## 18.12.6. Ne csináljunk semmit

A “Ne csináljunk semmit” nem egy újabb számítógépes program, hanem egy igen gyakran alkalmazott mentési stratégia. Nem kell beruházni. Nem kell semmilyen biztonsági mentési rendet követni. Egyszerűen semmit se csinálunk. Ha véletlenül valami történne az adatainkkal, akkor csak mosolyogjunk és törődjünk bele!

Amennyiben az időnk és adataink keveset vagy éppen semmit se érnek, akkor a “Ne csináljunk semmit” az elérhető legjobb biztonsági mentési megoldás számítógépünk számára. De legyünk óvatosak, mert a UNIX egy igen hasznos eszköz, és fél éven belül könnyen úgy találhatjuk magunkat, hogy mégis csak vannak értékes adataink.

A “Ne csináljunk semmit” tökéletesen megfelelő mentési módszer a `/usr/obj` és a hozzá hasonló módon a számítógépen automatikusan generált könyvtárak és állományok esetében. Ugyanilyen példa lehetne a kézikönyv HTML vagy PostScript® változata. Ezek a formátumok ugyanis az SGML források alapján keletkeznek, így a HTML vagy PostScript állományok mentése nem életbevágó. Az SGML állományokat viszont már annál inkább mentsük!

## 18.12.7. Melyik a legjobb?

dump(8) Pont. Elizabeth D. Zwicky komolyan letesztelte az itt felsorolt összes programot. A UNIX állományrendszerek jellegzetességeinek és rajtuk az összes adatunk megőrzésének egyértelműen a `dump` felel meg a legjobban. Elizabeth a minden egyes program tesztjéhez olyan állományrendszereket hozott létre, amelyek rengeteg különféle szokatlan helyzetet tartalmaztak (valamint néhány nem annyira szokatlant). Az érintett jellegzetességek: lyukas állományok, lyukas állományok és egy halom nulla, állományok érdekes karakterekkel a nevükben, olvashatatlan és írhatatlan állományok, eszközök, a mentés közben méretüket változtató állományok, a mentés közben keletkező és megszűnő állományok és még sok minden más. Az eredményeit a LISA V-ben jelentette meg 1991 októberében. Lásd A biztonsági mentéshez és archiváláshoz használt programok tesztje (angolul).

## 18.12.8. Az adatok helyreállítása vészhelyzetben

### 18.12.8.1. A katasztrófa előtt

Csupán négy lépést kell megtennünk az esetleges katasztrófák bekövetkezésének esetére.

Először is két példányban nyomtassuk ki az egyes lemezek lemezcímkéjét (például a `bsdlabel da0 | lpr` paranccsal) valamint az állományrendszerek táblázatát (az `/etc/fstab` állományt) és az összes rendszerindításkor megjelenő üzenetet.

A második lépésben készítenünk kell egy “élő” rendszerrel rendelkező CD-lemezt. Ezen a lemezen megtalálható minden, ami el tudunk indítani egy helyreállításhoz elegendő rendszert. Ekkor a felhasználó futtatni tudja például a dump(8), restore(8), fdisk(8), bsdlabel(8), newfs(8), mount(8) és a többi segédprogramot. Ez az image a FreeBSD/i386 8.1-RELEASE kiadáshoz az ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-i386-livefs.iso címről tölthető le.

A harmadik lépésben igyekezzünk minél gyakrabban szalagra menteni. Mindig gondoljuk arra, hogy a legutolsó mentés óta létrehozott változatásaink teljesen el fognak veszni. A mentéseket tartalmazó szalagokat tegyük írásvédetté.

A negyedik lépésben ellenőrizzük a a második lépésben készített helyreállító lemezünket és a biztonsági mentéseket tartalmazó szalagokat. Jegyezzük le az eljárást. Ezeket a jegyzeteket is rakjuk el rendszerindító lemezzel, a kinyomtatott adatokkal és a mentéseket tartalmazó szalagokkal együtt. Ezek a jegyzetek megvédenek minket attól, hogy a helyreállítás közbeni kétségbeesésünkben nehogy véletlenül tönkretegyük a biztonsági mentéseinket. (Hogy miként is? Például ha a `tar xvf /dev/sa0` parancs helyett izgalmunkban a `tar cvf /dev/sa0` parancsot gépeljük be, akkor azzal felülírjuk a biztonsági mentéseinket).

A fokozott biztonság kedvéért minden alkalommal készítsünk rendszerindító lemezt és legalább két mentést. Az egyiket valamilyen távoli helyen tároljuk. Ez a távoli hely NE ugyanannak az épületnek az alagsora legyen! Számos cég alaposan megtanulta ezt a szabályt a Világkereskedelmi központ tragédiája kapcsán. Ez a távoli hely számítógépeinkből és merevlemezes meghajtóinkól is fizikailag jól elkülöníthető, jelentős távolságban legyen.

### 18.12.8.2. A katasztrófa után

Az alapvető kérdés: a hardver túlélte? Ha rendszeresen készítettünk biztonsági mentéseket, akkor a szoftverek miatt egyáltalán nem kell aggódnunk.

Ha a hardver megsérült, akkor a számítógép használatának újból megkezdése előtt javasolt cserélni a meghibásodott alkatrészeket.

Ha a hardverrel minden rendben találtunk, akkor helyzezzük be a helyreállításhoz használatos “élő” rendszert tartalmazó lemezt a CD-meghajtóba, és indítsuk el vele a számítógépet. Ezután nemsokára a telepítési menü jelenik meg. Itt a megfelelő ország után a Fixit -- Repair mode with CDROM/DVD/floppy or start a shell (“Helyreállítás CD/DVD/floppy használatával, vagy parancssor indítása”), majd a CDROM/DVD -- Use the live filesystem CDROM/DVD (“A CD/DVD-n található élő rendszer használata”) menüpontokat válasszuk. A `restore` és a többi segédprogram a `/mnt2/rescue` könyvtárban lesznek elérhetőek.

Egyenként állítsuk vissza az egyes állományrendszereket.

A `mount` paranccsal próbáljuk meg csatlakoztatni az első lemezünk rendszerindító partícióját (például `mount /dev/da0a /mt`). Ha a lemezcímke megsérült, akkor `bsdlabel` alkalmazásával partícionáljuk újra a lemezt és címkézzük meg a korábban kinyomtatott címke adatainak megfelelően. A `newfs` segítségével újra hozzuk létre az állományrendszereket. Írható-olvasható módban csatlakoztassuk újra a lemez rendszerinító partícióját (`mount -u -o rw /mnt`). A biztonság mentést végző program és a biztonsági mentést tartalmazó szalagok használatával állítsuk helyre az állományrendszer tartalmát (például `restore vrf /dev/sa0`). Válasszuk le az állományrendszert (például `umount /mnt`). Mindegyik sérült állományrendszerre ismételjük a folyamatot.

Ahogy működőképessé vált a rendszerünk, mentsük az adatainkat új szalagokra. Akármi is okozta a rendszer összeomlását vagy az adatvesztést, ismét lecsaphat. Ha most áldozunk erre még egy órát, akkor azzal a későbbiekben számos kellemetlenségtől óvhatjuk meg magunkat.

Előző | Tartalom | Következő
Mentési stratégiák | Fel | Hálózat, memória és állomány alapú állományrendszerek

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.