Portál AbcLinuxu, 5. května 2025 15:05
Instalace, nejběžnější postupy při zálohování i obnově, nestandardní funkce a nejčastější problémy a jak je řešit.
Většinu základních informací lze vyčíst už na webu www.mondorescue.org. K čemu je to vlastně dobré? Existuje přece tolik možností, jak zálohovat počítač s Linuxem (vizte seriál Zálohování v Linuxu). Ano, existuje mnoho způsobů, jak se vypořádat se zálohami, a každý si jistě vybere ten svůj oblíbený. Všechno záleží na tom, co všechno od záloh očekáváte.
Někomu stačí zálohovat data, někomu MBR a /etc, někomu stačí seznam instalovaných balíčků a /etc. Já jsem si zvolil MondoRescue, protože mi poskytuje vše, co potřebuji. Zálohuje on-the-fly (tzn. nemusím restartovat nebo přebootovávat), zálohuje MBR, rozdělení disků, LVM, SW RAID, GRUB nebo LILO, a to vše na CD/DVD, disk image, NFS nebo pásku. Ideální je samozřejmě také ke klonování instalací, ale hodí se také jako záchranné liveCD pro daný počítač.
Nehodí se k zálohování otevřených souborů, zejména velkých souborů např. databází, které pak většinou stejně nejdou obnovit, a na zálohování mají své utility. Takže data zálohuji jiným způsobem. K dospozici jsou jak zdrojáky, tak předkompilované binární balíčky pro vybrané distribuce (např. Red Hat, SUSE, Mandrake, Mandriva, Slackware, Fedora, Gentoo). Já osobně mám nejvíce zkušeností s mondorescue na CentOS, momentálně ve verzi 5. Pro něj má mondorescue svůj vlastní repozitář, takže je instalace o to snažší.
Co k tomu budete potřebovat? Libovolný počítač se svou oblíbenou distribucí (pokud pro ní existují balíčky, tím lépe, jinak budete muset kompilovat ze zdrojáků).
Před instalací doporučuji zkontrolovat některé nezbytné parametry v jádře. Pokud si kompilujete jádro sami, budete vědět, kam sáhnout. Pokud používáte jádro distribuční, většinou je již připraveno a není třeba nic měnit. Tady je výčet ovladačů, které budete potřebovat:
Pokud je vše zkontrolováno nebo se vám to nechce kontrolovat a čekáte, jak to dopadne, pokračujeme instalací. Máte-li distro, které nabízí mondorescue prostřednictvím repozitářů, pak stačí jednoduše přidat repozitář k ostatním. U mého CentOS 5 to je v souboru /etc/yum.repos.d/CentOS-Base.repo a přidáme tam toto:
[mondo]
name=mondo
baseurl=http://mondorescue.linjection.org/ftp/rhel/5/
Pak už jen stačí pomocí nějakého manažeru balíčků provést instalaci. U CentOS to je pomocí yum, spustím tedy yum install mondo
. U jiných distribucí to bude podobné (urpmi, apt-get). Můžeme také instalovat pomocí RPM, ale v tom případě musíme nejprve stáhnout potřebné balíčky (mindi, mindi-busybox, mondo, afio, cdrecord, mkisofs, gzip, buffer). Instalaci pak provedeme příkazem rpm -ivh *.rpm
.
Že je instalace v pořádku, můžeme ověřit spuštěním mondoarchive
bez parametrů. Spustí se, resp. měla by se spustit, interaktivní část aplikace a hned na úvodní obrazovce se program ptá, kam si přejeme zálohovat. Pokud toto nevidíte, pravděpodobně něco chybí a většinou se to také rovnou dočtete z chybové hlášky na terminálu nebo v souborech /var/log/mondoarchive.log a /var/log/mindi.log. V dobách před YUMem se mi stávalo, že jsem zapomněl nějaký ten balíček nainstalovat, takže chyba se dala rychle odstranit dodatečnou instalací chybějícího balíčku.
Pokud vše funguje a vy jste stále ještě v hlavním menu programu mondoarchive, můžete rovnou pokračovat a v menu si vybrat kam, co, jak atd. Slušelo by se však nejdříve popsat hlavní programy. Není totiž jeden a nejmenuje se mondorescue. Je jich více, vlastně dva hlavní> mindi a mondo.
Mindi nedělá v podstatě nic jiného než zálohu běžícího jádra, včetně potřebných modulů a samozřejmě tak, aby se dalo nabootovat, tzn. na disketu nebo disk (myšleno CD/DVD). Ideální jako záchranný disk. Pokud vám to stačí, dál nemusíte číst - spusťe si mindi
a udělejte bootovací floppy nebo si nechte připravit mindi.iso. To vypalte a máte vystaráno. Pokud se vám smaže MBR nebo jádro, k disku se dostanete pomocí vypáleného média.
Mondo je souhrnný název pro dva programy. Jsou to mondoarchive a mondorestore (asi nemá smysl rozepisovat, co který dělá). Mondorestore asi nebudete nikdy pouštět, protože se spouští sám, pokud nabootujete ze záchranného CD/DVD. Naopak mondoarchive, to je základ. Jak jsme si už ukazovali, stačí jej spustit bez parametrů a interaktivně vybrat a nastavit vše potřebné, ale hlavní síla mondorescue je podle mě právě v neinteraktivním použití. Proto ani nebudu popisovat interaktivní menu (je sice anglicky, ale není tam co zkazit). Mondoarchive můžeme spustit neinteraktivně s parametry třeba rovnou z cronu každou noc, jednou za týden, dle potřeby. Já osobně zálohuji pouze OS a jeho nastavení, data většinou ne, takže mám skriptem hlídány md5sumy všech důležitých souborů. Pokud skript najde změnu, tak mne upozorní mailem, že je třeba udělat zálohu, nebo ji rovnou sám udělá. Asi si říkáte, kdo mění média v mechanice? Nikdo! Zálohuji totiž na disk do iso souboru(ů). V dobách CD to bylo hned několik CD, ale v současnosti to je jedno DVD. Program totiž data komprimuje. Na výběr je výchozí bzip2, gzip nebo lzo. Pak také můžeme určit úroveň komprese. Ale pojďme rovnou na praktický příklad.
Samozřejmostí je pracovat jako root, jinak bychom nemuseli mít přístup k některým souborům. Takže pod rootem nebo v sudu napíšeme:
mondoarchive -Oi9F -d /iso -E "/data /dsk1 \
/var/log/httpd /tmp /public" -s 4200m
O - chceme zálohovat (pak existuje ještě -V což je verifikace)
i - výstup do iso souboru (jinak bude rovnou smažit na média nebo na pásku)
9 - maximální komprese (0 - 9)
F - jinak se na konci zálohování ptá, chceme-li navíc kromě bootovatelného média vytvořit i diskety, -F zruší vytváření bootovatelných disket
d - kam chci výsledný iso soubor
E - které adresáře vynechat, nazálohovat
s - maximální velikost jednoho iso (lze zadat cokoli, 700m, 650m apod., podle toho, na jaké médium to hodláte posléze vypálit)
Po spuštění tohoto příkazu se na obrazovce budou vypisovat informace o průběhu zálohy, odhad zbávajícího času apod. Pokud se vám to nebude líbit a raději byste měli méně podrobné ale graficky hezčí výpisy, můžete použít parametr -g (gui). Na konci dostanete většinou informaci o tom, že záloha proběhla v pořádku. Výsledný iso soubor nebo soubory najdeme ve specifikovaném adresáři, v našem případě v /iso. Tady POZOR: pokud spustíte zálohu a v -d adresáři jsou nějaké *.iso soubory (třeba předchozí záloha), budou bez oznámení smazány! (Stačí je přejmenovat třeba na *.is.) ISO soubory můžeme zkontrolovat např. v mc nebo zkusit připojit mount -o loop /iso/mondoarchive.iso /mnt/cdrom
.
Příkaz mondoarchive nejprve zavolá mindi, který, jak už jsem psal, udělá zálohu jádra, modulů, MBR, GRUB nebo LILO a v neposlední řadě také tabulku rozdělení disků, resp. /etc/fstab. Tady může nastat problém, pokud spustíte zálohu a máte připojený nějaký disk, resp. oddíl, který není ve fstab. Záloha se sice provede, ale při obnově se data obnoví do adresáře, nikoli na samostatný oddíl. Doporučuji zkontrolovat fstab i připojené oddíly (je jedno, jestli jsou LVM nebo SW RAID či fyzické). Další věc, na kterou bych chtěl upozornit, je pořadí oddílů. V některé starší verzi mondorescue (konkrétně mindi) se mi stalo, že když jsem měl ve fstab oddíly napřeskáčku, tak se při obnově vyskytly problémy a musel jsem to řešit ručně. Podobně může vzniknout problém, pokud je mezi oddíly mezera, resp. čísla nenavazují. "Špatný" fstab:
/dev/sda2 /swap ....... /dev/sda4 /home ......... /dev/sda3 /opt ....... /dev/sda1 / .......
"správný" fstab:
/dev/sda1 / ....... /dev/sda2 /swap ....... /dev/sda3 /opt ....... /dev/sda4 /home .........
Rád bych také zmínil labely [označení]. V určité verzi s nimi byly problémy a já jsem všechny labely z fstabů dával pryč. Pak se situace zlepšila, ale občas se stane, že se při obnově oddíly "neolabelují" a je třeba to udělat ručně - buď přímo při obnově nebo později. Tolik program mindi.
Pak se do tmp adresáře (jeho umístění lze určit parametry -S a -T) zapíše seznam všech souborů, které se následně rozdělí do tzv. setů. Tzn. do jednoho archivu se vejde vícero malých souborů a ty se teprve následně komprimují. Zajímavý je soubor biggielist.txt. Ano, jsou tam soubory, které jsou větší než velikost setů. Tyto soubory se naopak rozdělí a komprimují se jejich části. Často se mi stává, že spustím zálohování a zapomenu vyřadit nějaké velké soubory (typicky zálohy jiných počítačů nebo logy Apache). Nic není ztraceno, velké soubory se zpracovávají úplně nakonec, takže mohu klidně editovat soubor biggielist.txt a něco nebo klidně i všechno vymazat, pěkně "zaživa". Pokud se blíží k velikosti, kterou jsme mu určili, spustí klasický mkisofs, udělá první iso a pokračuje dál.
Obnovení doporučuji rozhodně vyzkoušet, ideálně po každé záloze, minimálně však jednou, třeba na podobném stroji. Pokud vše funguje, tak stačí nabootovat z média a při první nabídce napsat nuke
a odentrovat. Nuke znamená, že se na nic nebude ptát a pokusí se obnovit rozdělení disků, MBR, FS a data bez ptaní. Tady bych rád podotknul, že pokud narazí např. na to, že předtím byl disk SCSI a teď je SATA, tak se program přepne do interaktivního módu a bude chtít vědět, co dál. Stejné to je, pokud místo nuke stiskneme rovnou enter v hlavní nabídce. Volba expert není jen pro experty, je to vlastně na míru udělané rescue CD/DVD - nespustí se žádná obnova, pouze se načte jádro a initrd a dostaneme se do shellu. Volba compare provede porovnání zálohy s daty na disku.
Pokud jsme neměnili HW nebo provádíme obnovu na totožném HW, volba nuke je ideální. Program nejprve rozdělí disk(y) na oddíly, udělá na nich FS (windowsáci by řekli naformátuje), připojí je do /mnt/RESTORING a začne obnovovat data. Nakonci zapíše zavaděč, labely (viz výše) a skončí. Pokud vše proběhlo bez chyb, po stisku CTRL+ALT+DEL nám nabootouje buď obnovený OS nebo jeho klon na jiném HW (pozor na stejnou IP).
V ideálním případě to je vše, ale bohužel nežijeme v ideálním světě, a tak mohou sem-tam nastat komplikace
Typicky jinou věcí, která nám znemožní automatickou neinteraktivní obnovu, je jiný typ disku SATA/PATA/SCSI. V přehledném editoru přepíšeme /dev/sda1 na /dev/hda1 nebo třeba /dev/cciss/c0d0p1 (dle HW) a pokračujeme. Program nám také nabídne úpravu zavaděče a fstab a bude chtít vědět, kam zapsat zavaděč. To je také občas kámen úrazu - zřídka (za určitých podmínek) se nezapíše nebo zapíše špatně zavaděč a systém nenabootuje. Toto je možné opravit např. v chrootnutém prostředí v módu expert nebo rovnou na konci obnovy.
Program nemá problém ani se SW RAID, akorát jedna taková nepříjemnost je, že dokud se neprovede rebuild (synchronizace) raidovaných disků, nebude pokračovat. Lze to řešit násilným rozbitím RAIDu (nikoli však RAID 0).
Nejčastějším problémem při obnově zálohy na úplně jiném HW je to, že nevidí disky. Zálohovali jsme PATA disky a v novém železe jsou už SATA, nebo dokonce SCSI. V některých BIOSech se dá u SATA nastavit, že se mají jevit jako PATA (jde patrně o nějakou emulaci, protože to je hodně pomalé) a pak už není problém obnovu udělat, nastartovat systém, překompilovat jádro nebo initrd, nastavit BIOS zpět a nastartovat už jako SATA. V případě SCSI toto možné asi není; pokud dělám zálohu, tak se snažím, aby jádro a hlavně initrd obsahoval ovladače pro zařízení, na kterém budu provádět obnovu (pokud to vím dopředu).
Občas se také stane, že záloha projde bez chyby, ale výsledek nejde nabootovat, resp. jde, ale jádro se zasekne nebo píše, že je corrupted. Sám nevím, čím to je; řeším to provedením zálohy s jiným jádrem (resp. v jiném jádře, což znamená restart serveru, případně rekompilaci jádra).
Docela velkým problémem jsou moduly, i když je použito jádro a moduly, které k sobě pasují. Při obnově se vypisují chyby při insmodech některých modulů (asi za to může mindi-busybox). Snažím se to důležité dávat rovnou do jádra při kompilaci (minimálně ovladače disků resp. řadičů), ale je to různé. Pokud máme ovladače USB v jádře, je také možné nabootovat a provést obnovu z externí mechaniky.
Z toho výčtu by se mohlo zdát, že jde o problematický a nestabilní SW, ale opak je pravdou. Ještě se mi nestalo, že bych data nějak nevysekal ručně, i když se objevily dost těžké problémy (hlavně v Red Hat 6.2). Takže jsem s Mondo nadmíru spokojen. Používám jej aktivně k zálohování, klonování i instalaci serverů. Doporučuji vyzkoušet, možná přečíst man, případné dotazy zodpovím v diskuzi.
# Wolfram Schlich (26 Nov 2005) # has security issues and will be removed from portage # due to upstream behaviour, see bug #106497Pokud mate, s jakymi zkusenostmi? Diky
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.