Linux E X P R E S

Facebook

Partimage – bezpečné zálohování

Určitě jste se již setkali se situací, kdy došlo k havárii hardwaru, a tím i ke ztrátě všech nebo části dat. Po tomto zjištění obvykle následuje standardní otázka, někdy s lehce ironickým úsměvem, "máte zálohována data?" a obvykle se dočkáte odpovědi "ne", případně "ne, proč?" Abychom se vyvarovali těchto tragikomických scén, představíme si software pro zálohování, který můžeme vzhledem jeho možnostem zařadit do skupiny zálohovacích systémů.


Partimage je linuxový/UNIXový nástroj určený k zálohování diskových oddílů různých formátů do souboru s obrazem. Výsledný obraz může být komprimován metodou GZIP/BZIP2 pro ušetření diskového prostoru a rozdělen na více částí pro případ kopírování na výměnná média, jako jsou disketa, ZIP, CD, DVD a další. Zálohy můžeme od verze 0.6.0 ukládat na vzdálený síťový disk. Spuštění zálohovacího serveru lze provést v prostředí chroot.

Jak to funguje

Data jsou pouze kopírována. Pro urychlení nejsou zapisovány volné bloky do zálohy, neprovádí tedy stejnou operaci jako příkaz dd, který načte vše i volné bloky. Výrobce doporučuje používat tento nástroj pro větší objemy dat, například 1GB oddíl může být komprimován pomocí GZIP až na výsledných 400 MB.

Podporované souborové systémy (FS)

Název              Popis                           Verze
ext2fs/ext3fs   standardní pro Linux            stable
ReiserFS        nový výkonný žurnálovací FS     stable
FAT16/32        FS pro DOS a Windows            stable
HPFS            FS pro IBM OS/2                 stable
JFS             žurnálovací FS od IBM pro AIX   stable
XFS             žurnálovací FS od SGI pro Irix  stable
UFS             Unix File System                beta
HFS             MacOS                           beta
NTFS            Windows NT, 2000 a XP           experimental

Používat Partition Image můžeme dvěma způsoby, buď zadáme z příkazové řádky celý příkaz s množstvím voleb, nebo spustíme program bez voleb v režimu GUI. Spouštění musíme provádět jako uživatel root. Pokud zálohujeme oddíl, musíme zadat dvě důležité věci. První je oddíl, který budeme archivovat, musíme jej zadat v linuxové podobě /dev/xxx.

Druhá důležitá věc je soubor, do kterého budeme data ukládat, tento soubor se nazývá obraz (image). Pokud nevíme, jaké máme na disku (discích) oddíly a jakého jsou typu, můžeme to zjistit příkazem fdisk, nebo si můžeme zobrazit podobný výpis pomocí příkazu cat /proc/partitions, ale ten asi nebude pro všechny srozumitelný.

fdisk -l
Disk /dev/hda: 61.4 GB, 61492838400 bytes
255 heads, 63 sectors/track, 7476 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  systém
/dev/hda1   *           1        7476    60050938+   c  W95 FAT32 (LBA)
Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  systém
/dev/hdb1               1        7295    58597056   83  Linux
/dev/hdb2            7296       19457    97691265    5  Extended
/dev/hdb5            7296       19331    96679138+  83  Linux
/dev/hdb6           19332       19457     1012063+  82  Linux swap / Solaris

Obrázek: partimage 1.jpg

V grafickém režimu uvidíme tabulku s možností výběru oddílu pro zálohování (save), nebo obnovu ze zálohy (restore). Čísla v pravé části nás informují o celkové velikosti oddílu. Pokud chceme zjistit obsazené bajty, můžeme to zjistit příkazem df -hT, v kolonce Used. Na stejné obrazovce dále zadáme jméno souboru obrazu s plnou cestou a akci, kterou budeme provádět:

  • zálohování, uložení oddílu do nového obrazu (Save partition into a new image file);
  • obnova dat ze zálohy obrazu (Restore partition from an image file);
  • obnova MBR (Restore an MBR from the image file).

Budeme-li provádět obnovu nebo zálohovat na vzdálený server, musíme zadat IP adresu a port, na kterém je spuštěn zálohovací server partimaged. Pamatujte na to, že při obnově dojde k přepsání dat na cílovém oddílu, obvykle k nenávratnému. Chceme-li zálohovat namountovaný oddíl, budeme na tuto skutečnost upozorněni. Máme-li jistotu, že během zálohování nedojde k žádným změnám na tomto oddíle, přemluvíme partimage potvrzením stiskem Continue. Pokud máme program zkompilován s podporou SSL, můžeme ji využít pro bezpečný přenos dat po síti. Před použitím SSL musíme mít vygenerován certifikát, to nám zajistí openssl:

openssl req -new -x509 -outform PEM > partimaged.csr
openssl rsa -in privkey.pem -out partimaged.key 
openssl x509 -in partimaged.csr -out partimaged.cert -signkey partimaged.key

V případě neaktivní podpory SSL jsme o tom informováni na posledním řádku této obrazovky (SSL Disable at compile time), binární staticky kompilovaná distribuovaná verze je bez této podpory. Klávesou [F5] (Next) se posuneme na další krok, Abort násilně ukončí činnost a [F6] provede korektní ukončení.

Obrázek: partimage 2.jpg

Dalším krokem je nastavení voleb pro kompresi, rozdělení souboru s obrazem, akce po dokončení zálohování/obnovy a další. Čím větší komprese, tím trvá zpracování déle, ale máme menší výsledný soubor. V případě komprese bzip2 vzniká omezení v podobě nemožnosti obnovení MBR ze zálohy. Pokud archivujeme na výměnná média (např. ZIP) a zálohovaný objem dat přesahuje kapacitu média, použijeme volbu pro rozdělení.

Můžeme zvolit pevnou velikost části obrazu v kB (Into files whose size is:...), nebo automatickou kontrolu zaplnění volného místa (Automatic split when no space left). Možné akce po úspěšném ukončení jsou tyto: Wait, Halt, Reboot a Quit. Jsou zde další volby pro kontrolu oddílu před zálohováním (Check partition before save), vložení popisky (Enter description) a přepsání existující zálohy bez upozornění (Overwrite without prompt).

Pokud máme zatrženou volbu pro popisek, budeme v dalším kroku vyzváni k jeho zadání. Volbu pro upozornění bez přepsání doporučuji ponechat neaktivní. Nalezne-li partimage v cílovém adresáři stejné jméno souboru se zálohou, upozorní nás na to a nabídne zadání nového jména (Change), přepsání (Owerwrite), nebo ukončení (Cancel). Po stisku Change nebo Owerwrite se zobrazí okno se statistikou o zálohovaném oddíle, stiskem OK rozběhneme proces zálohování (kopírování). Během zálohování vidíme informace o času a zálohovaných bajtech.

Zálohovací server

Server je v tomto případě počítač, na kterém je spuštěn program partimaged a jsou na něm umístěny obrazy se zálohou. Server dokáže komunikovat současně s několika klienty současně. Zálohování na síť provádíme obvykle z těchto důvodů:

  • máme pouze jeden oddíl na počítači, který chceme zálohovat;
  • nemáme volné místo pro obraz na lokálním počítači;
  • pro zvýšení bezpečnosti. Data jsou ukládána na jiný stroj a v případě havárie disku nebo napadení virem nebudou zálohovaná data zničena;
  • když máme stejný obraz pro více počítačů se stejnými oddíly a hardwarem.

První věc, kterou uděláme před spuštěním serveru, je, že v rámci bezpečnosti vytvoříme speciálního uživatele partimag příkazem useradd -c "Partimaged User" -s /sbin/nologin partimag, nebudeme pro něj vytvářet domovský adresář -m a nepovolíme přihlášení do systému. Pod tímto uživatelem se bude spouštět server, nenastavujte SUID bit pro pardimaged. Server obvykle naslouchá na TCP portu 4025, zařízení eth0. Pokud používáte na své síti DHCP, dbejte na to, aby měl zálohovací stroj přidělovánu stále stejnou IP adresu - nastavte statickou. Také nezapomeňte na nastavení firewallu pro výše uvedený port.

Musíme mít na serveru vytvořeny uživatelské účty, v našem případě je to uživatel linus, pro přístup ze zálohovaných klientů. Seznam uživatelských jmen, kterým povolíme přístup na zálohovací server, zapíšeme do souboru /usr/etc/partimaged/partimagedusers. Práva k tomuto souboru nastavíme na 600 a bude patřit uživateli partimag. Vše můžeme provést příkazem

mkdir /usr/etc/partimaged && echo \\
linus > /usr/etc/partimaged/partimagedusers\\
&&  chmod 600 /usr/etc/partimaged/partimagedusers

Pokud tento soubor nebude existovat, server se nespustí a upozorní nás na chybějící soubor.


Příkazový řádek

Server

  • ./partimaged - spuštění serveru s GUI. Zobrazí se stavové okno informující o připojení klientů.
  • ./partimaged -D -p5555 spuštění serveru v režimu démona na nestandardním portu 5555.

Klient

./partimage -z1 -o -d save /dev/hdb7 /mnt/storage/test_hdb7.partimg.gz

Spustí zálohování oddílu hdb7 do souboru test_hdb7.partimg.gz s kompresí gzip, bez otázky přepíše starou zálohu a nebude požadovat popisek.

./partimage restore /dev/hdb7 /mnt/storage/test_hdb7.partimg.gz.000

Rychlé rozbalení zálohy. Partimage automaticky přidal příponu 000, to v případě, kdy máme obraz rozdělen na více částí.


Závěr

Program partimage je spolehlivý a dostatečně robustní zálohovací systém vhodný jak pro domácí použití, tak pro malé a střední firmy. Jeho popularitu a spolehlivost dokazuje to, že je součástí live distribucí pro záchranu systému, jako je například System Rescue CD. Pomocí partimage můžeme také provádět hromadnou instalaci (klonování) operačního systému, pokud máme na více strojích totožný hardware. Správce sítí potěší možnost logování, skriptování, spuštění a ovládání z příkazové řádky - jak serveru, tak klienta.

Obrázek: partimage 3.jpg

Diskuze (1) Nahoru