Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| drafts:2026-07-10-kb-czech-fixes:navody:vps:zalohy [2026/07/10 18:16] – Create Czech vpsAdmin localization draft aither | drafts:2026-07-10-kb-czech-fixes:navody:vps:zalohy [2026/07/12 12:50] (aktuální) – Remove obsolete localization review draft aither | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | <note warning> | ||
| - | ====== Zálohy ====== | ||
| - | |||
| - | Zálohy jsou u nás realizovány pomocí ZFS snapshotů. Při vytvoření snapshotu se | ||
| - | uchová obraz všech dat v datasetu, tak jak v tu chvíli vypadají. | ||
| - | Když tedy data po vytvoření snapshotu změníme nebo smažeme, vždy se k nim | ||
| - | můžeme vrátit. | ||
| - | |||
| - | Ze snapshotu můžeme data libovolně [[navody: | ||
| - | celý dataset [[# | ||
| - | ale přijdeme o všechny data (změny), které proběhly od vytvoření snapshotu. | ||
| - | |||
| - | Snapshoty jsou vidět v menu Zálohy. Tam je možné je také vytvářet. | ||
| - | |||
| - | {{: | ||
| - | |||
| - | Zálohování VPS probíhá tak, že každý den v 01:00 se v rámci jednoho node | ||
| - | udělá snapshot všech datasetů najednou. Poté jsou snapshoty přesunuty na | ||
| - | backuper.prg. Snapshoty uchováváme po dobu 14 dnů, starší se mažou. K tomu je možné | ||
| - | si vytvořit 6 snapshotů navíc pro vlastní potřebu. Vytvořené snapshoty VPS však nelze libovolně | ||
| - | mazat, je nutné počkat, až se samy odrotují v rámci denních záloh. | ||
| - | |||
| - | Pozor! NAS **není zálohován** na backuper.prg. Snapshoty jsou | ||
| - | pouze lokální a slouží jen jako ochrana proti nechtěnému smazání či poškození dat. | ||
| - | |||
| - | ===== Mazání snapshotů ===== | ||
| - | Mazat jdou jen snapshoty z NASu. U snapshotů VPS je nutné počkat, až se samy odrotují v rámci | ||
| - | denních záloh. | ||
| - | |||
| - | ===== Obnova záloh ===== | ||
| - | |||
| - | Obnova vždy funguje na úrovni datasetu. Když má VPS subdatasety a rootfs je | ||
| - | obnoven ze zálohy, subdatasety obnoveny nejsou. Tzn. je možno obnovit | ||
| - | jakýkoliv dataset, aniž by to mělo vliv na ostatní datasety. | ||
| - | |||
| - | NAS je možné snapshotovat pouze **manuálně**. Jelikož ale není zálohován na | ||
| - | backuper, obnova se chová stejně jako '' | ||
| - | starší snapshot **smaže** všechny novější snapshoty. Je to **nevratná** operace. | ||
| - | |||
| - | Pro obnovu dat ze zálohy na NASu bez smazání snapshotů si zvolený | ||
| - | snapshot moutněte do VPS a data vykopírujte. | ||
| - | |||
| - | ===== Stahování záloh ===== | ||
| - | |||
| - | Zálohy můžeme stahovat buď přes webové rozhraní nebo [[navody: | ||
| - | CLI má výhodu v tom, že nemusíme čekat na e-mail s odkazem na stažení zálohy, | ||
| - | ale stahujeme ihned, připadně jde celý proces automatizovat. Můžeme stáhnout buď | ||
| - | tar.gz archiv, nebo přímo ZFS data stream (i inkrementálně). | ||
| - | |||
| - | ==== Inkrementální zálohy ==== | ||
| - | |||
| - | Inkrementální záloha obsahuje pouze změněná data od předchozího snapshotu. | ||
| - | Aby klient dokázal vyhodnotit, které snapshoty lze stahovat inkrementálně, | ||
| - | každý snapshot obsahuje // | ||
| - | identifikátorem mohou být přeneseny inkrementálně. Tok historie naruší reinstalace | ||
| - | VPS nebo obnova ze zálohy, poté je identifikátor historie navýšen o 1 a | ||
| - | znovu se musí stáhnout plná záloha. | ||
| - | |||
| - | Identifikátor historie je znázorněn v tabulce se seznamem snapshotů v menu Zálohy. | ||
| - | |||
| - | ==== Stažení zálohy do souboru ==== | ||
| - | |||
| - | < | ||
| - | $ vpsfreectl snapshot download --help | ||
| - | snapshot download [SNAPSHOT_ID] | ||
| - | |||
| - | Command options: | ||
| - | -f, --format FORMAT | ||
| - | -I, --from-snapshot SNAPSHOT_ID | ||
| - | -d, --[no-]delete-after | ||
| - | -F, --force | ||
| - | -o, --output FILE Save the download to FILE | ||
| - | -q, --quiet | ||
| - | -r, --resume | ||
| - | -s, --[no-]send-mail | ||
| - | -x, --max-rate N | ||
| - | --[no-]checksum | ||
| - | </ | ||
| - | |||
| - | Není-li ID snapshotu předáno programu jako argument, interaktivně se na něj | ||
| - | zeptá: | ||
| - | |||
| - | < | ||
| - | $ vpsfreectl snapshot download | ||
| - | Dataset 14 | ||
| - | (1) @2015-12-04T00: | ||
| - | VPS #198 | ||
| - | (2) @2015-12-01T09: | ||
| - | (3) @2015-12-01T09: | ||
| - | (4) @2015-12-01T11: | ||
| - | (5) @2015-12-01T11: | ||
| - | (6) @2015-12-01T11: | ||
| - | (7) @2015-12-01T11: | ||
| - | (8) @2015-12-01T12: | ||
| - | (9) @2015-12-01T12: | ||
| - | (10) @2015-12-01T12: | ||
| - | (11) @2015-12-01T12: | ||
| - | (12) @2016-02-29T09: | ||
| - | (13) @2016-02-29T10: | ||
| - | (14) @2016-02-29T10: | ||
| - | Pick a snapshot for download: | ||
| - | |||
| - | </ | ||
| - | |||
| - | Budeme stahovat 4. snapshot ('' | ||
| - | |||
| - | < | ||
| - | Pick a snapshot for download: 4 | ||
| - | The download is being prepared... | ||
| - | Downloading to 198__2015-12-01T12-25-56.tar.gz | ||
| - | Time: 00:01:37 Downloading 0.3 GB: [=====================================================================================] 100% 992 kB/s | ||
| - | </ | ||
| - | |||
| - | Přepínačem '' | ||
| - | stream, nebo inkrementální data stream. Ve výchozím stavu dojde ke stažení | ||
| - | tar.gz archivu. | ||
| - | |||
| - | Soubor můžeme buď nechat pojmenovat vpsAdminem | ||
| - | ([[https:// | ||
| - | nebo si zvolit vlastní umístění pomocí přepínače '' | ||
| - | '' | ||
| - | |||
| - | Program umožňuje stáhování přerušit (třeba '' | ||
| - | navázat. Pokud není použit přepínač '' | ||
| - | program se uživatele zeptá, jestli má pokračovat ve stahování, | ||
| - | znovu. | ||
| - | |||
| - | < | ||
| - | Stahování lze navázat jen v případě, že připravený soubor na serveru mezitím | ||
| - | nebyl smazán (přepínač '' | ||
| - | stahování. | ||
| - | </ | ||
| - | |||
| - | ==== ZFS data stream ==== | ||
| - | |||
| - | < | ||
| - | $ vpsfreectl snapshot send --help | ||
| - | snapshot send SNAPSHOT_ID | ||
| - | |||
| - | Command options: | ||
| - | -I, --from-snapshot SNAPSHOT_ID | ||
| - | -d, --[no-]delete-after | ||
| - | -q, --quiet | ||
| - | -s, --[no-]send-mail | ||
| - | -x, --max-rate N | ||
| - | --[no-]checksum | ||
| - | </ | ||
| - | |||
| - | Rozdíl oproti '' | ||
| - | stdout a to v nekomprimované formě, abychom ho mohli propojit přimo se | ||
| - | '' | ||
| - | |||
| - | < | ||
| - | $ vpsfreectl snapshot send <id> | zfs recv -F < | ||
| - | </ | ||
| - | |||
| - | Inkrementální data stream lze vyžádat přepínačem '' | ||
| - | |||
| - | < | ||
| - | $ vpsfreectl snapshot send <id2> -- --from-snapshot <id1> | zfs recv -F < | ||
| - | </ | ||
| - | |||
| - | ==== Automatizované stahování záloh ==== | ||
| - | |||
| - | Automatizované stahování záloh řeší příkazy '' | ||
| - | '' | ||
| - | a druhý ID datasetu. | ||
| - | |||
| - | Tyto příkazy vyžadují nainstalované ZFS, vytvořený zpool a práva roota. | ||
| - | Program lze spustit buď přímo pod rootem, nebo bude za běhu používat sudo. | ||
| - | |||
| - | Při spuštění se stáhnou snapshoty s aktuálním identifikátorem historie, které | ||
| - | ještě lokálně neexistují, | ||
| - | inkrementální přenos, program musí najít snapshot, který je přitomen lokálně a | ||
| - | zároveň je na serveru. Z toho vyplývá, že je potřeba zálohy stahovat minimálně | ||
| - | jednou za 14 dní, protože poté bude náš nejnovější lokální snapshot smazán ze | ||
| - | serveru a program nebude schopen pokračovat ve stahování záloh -- nebude existovat | ||
| - | žádný společný snapshot. | ||
| - | |||
| - | < | ||
| - | $ vpsfreectl backup vps --help | ||
| - | backup vps [VPS_ID] FILESYSTEM | ||
| - | |||
| - | Command options: | ||
| - | -p, --pretend | ||
| - | -r, --[no-]rotate | ||
| - | -m, --min-snapshots N Keep at least N snapshots (30) | ||
| - | -M, --max-snapshots N Keep at most N snapshots (45) | ||
| - | -a, --max-age N Delete snapshots older then N days (30) | ||
| - | -x, --max-rate N | ||
| - | -q, --quiet | ||
| - | -s, --safe-download | ||
| - | --retry-attemps N Retry N times to recover from download error (10) | ||
| - | -i, --init-snapshots N | ||
| - | --[no-]checksum | ||
| - | -d, --[no-]delete-after | ||
| - | --no-snapshots-as-error | ||
| - | --[no-]sudo | ||
| - | </ | ||
| - | |||
| - | Pokud program nedostane ID VPS/ | ||
| - | zeptá, nebo se pokusí jej zjistit sám. Argument '' | ||
| - | vždy. Měl by obsahovat jméno datasetu, do kterého chceme zálohy ukládat. | ||
| - | |||
| - | <note warning> | ||
| - | První argument programu je **ID VPS/ | ||
| - | datasetu matoucí, jelikož ID není stejné jako název datasetu, ale obojí je | ||
| - | většinou číslo. | ||
| - | </ | ||
| - | |||
| - | Než program spustíme na ostro, může se hodit přepínač '' | ||
| - | nám vypíše, co by program udělal, tedy jaké snapshoty by stáhnul a případně | ||
| - | smazal. | ||
| - | |||
| - | Přepínačem '' | ||
| - | uvolnilo místo pro ty nové. Nezměníme-li další nastavení, budeme mít minimálně | ||
| - | 30 snapshotů (což aktualně znamená 30 denní historii), maximálně 45 snapshotů | ||
| - | (pokud si nějaké vytvoříme manuálně) a budou se mazat snapshoty starší nez 30 | ||
| - | dní. | ||
| - | |||
| - | Obsah datasetu '' | ||
| - | neměl vytvářet další subdatasety/ | ||
| - | subdatasetech, | ||
| - | |||
| - | === Ukázka použití === | ||
| - | |||
| - | < | ||
| - | $ vpsfreectl backup vps storage/ | ||
| - | (1) VPS #198 | ||
| - | (2) VPS #199 | ||
| - | (3) VPS #202 | ||
| - | Pick a dataset to backup: 2 | ||
| - | Will download 8 snapshots: | ||
| - | @2016-03-07T18: | ||
| - | @2016-03-07T18: | ||
| - | @2016-03-07T18: | ||
| - | @2016-03-10T10: | ||
| - | @2016-03-10T10: | ||
| - | @2016-03-10T11: | ||
| - | @2016-03-10T14: | ||
| - | @2016-03-10T14: | ||
| - | |||
| - | Performing a full receive of @2016-03-07T18: | ||
| - | The download is being prepared... | ||
| - | Time: 00:00:56 Downloading 0.3 GB: [====================================================================================] 100% 1755 kB/s | ||
| - | Performing an incremental receive of @2016-03-07T18: | ||
| - | The download is being prepared... | ||
| - | Time: 00:00:00 Downloading 0.0 GB: [=======================================================================================] 100% 0 kB/s | ||
| - | </ | ||
| - | |||
| - | Můžeme si všimnout, že program stáhne první snapshot v plné velikosti a | ||
| - | všechny další pak inkrementálně. | ||
| - | |||
| - | Seznam snapshotů vypíšeme pomocí '' | ||
| - | < | ||
| - | $ sudo zfs list -r -t snapshot storage/ | ||
| - | NAME | ||
| - | storage/ | ||
| - | storage/ | ||
| - | storage/ | ||
| - | storage/ | ||
| - | storage/ | ||
| - | storage/ | ||
| - | storage/ | ||
| - | storage/ | ||
| - | </ | ||
| - | |||
| - | K vlastním datům se lze dostat přes speciální adresář '' | ||
| - | < | ||
| - | $ ls -1 / | ||
| - | 2016-03-07T18: | ||
| - | 2016-03-07T18: | ||
| - | 2016-03-07T18: | ||
| - | 2016-03-10T10: | ||
| - | 2016-03-10T10: | ||
| - | 2016-03-10T11: | ||
| - | 2016-03-10T14: | ||
| - | 2016-03-10T14: | ||
| - | </ | ||
| - | |||
| - | K pravidelnému stahování záloh se dá použít cron. Zápis v crontabu může vypadat | ||
| - | takto: | ||
| - | |||
| - | < | ||
| - | MAILTO=tvuj@mail | ||
| - | |||
| - | # Example of job definition: | ||
| - | # .---------------- minute (0 - 59) | ||
| - | # | .------------- hour (0 - 23) | ||
| - | # | | .---------- day of month (1 - 31) | ||
| - | # | | | .------- month (1 - 12) OR jan, | ||
| - | # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun, | ||
| - | # | | | | | | ||
| - | # * * * * * user-name command to be executed | ||
| - | 0 7 * * * root vpsfreectl backup vps 199 storage/ | ||
| - | </ | ||
| - | |||
| - | Program se tedy spustí každý den v 7 ráno (kdy už by měly být zálohy ve | ||
| - | vpsFree přeneseny na backuper.prg) a budou se stahovat maximální rychlostí | ||
| - | 1 MB/s. Výstup příkazu nám zašle cron na e-mail nastavený v proměnné | ||
| - | '' | ||
| - | Proto má program přepínač '' | ||
| - | případné chyby. | ||
| - | |||
| - | < | ||
| - | Pokud budeme zálohy stahovat pod rootem, ale '' | ||
| - | pod obyčejným uživatelem, | ||
| - | [[navody: | ||
| - | </ | ||
| - | |||
| - | === Stažení plné zálohy po pomalé/ | ||
| - | |||
| - | Příkaz '' | ||
| - | protože nestahuje do žádného souboru, ale data hned předává ZFS. Jestliže máme | ||
| - | k dispozici jen pomalou nebo nespolehlivou linku, může se stát, že stahování | ||
| - | selže a bude nutné jej restartovat -- od začátku. Můžeme si ale pomoct | ||
| - | přepínačem '' | ||
| - | pak je předá ZFS. Díky tomu je možné kdykoli stahování přerušit a později | ||
| - | v něm pokračovat. Nevýhodou je, že je k tomu potřeba 2x více místa na disku, protože | ||
| - | jsou data v jednu chvíli v dočasném souboru i v ZFS datasetu. Dočasný soubor je vytvořen | ||
| - | v adresáři, ze kterého je program spuštěn. | ||
| - | |||
| - | Na další problém můžeme narazit při dlouhé době stahování. Program při prvním | ||
| - | spuštění totiž stahuje všechny snapshoty, od nejstaršiho po nejnovější. Pokud | ||
| - | ale stahujeme ten nejstarší snapshot moc dlouho, může dojít k jeho smazání ze | ||
| - | serveru, což vede k tomu, že ho později nemůžeme použít k inkrementálnímu stahování a | ||
| - | musíme stahovat plnou zálohu znovu. Pro tyto případy existuje přepínač | ||
| - | '' | ||
| - | posledních snapshotů. Nejbezpečnější je použít '' | ||
| - | máme až 14 dní na dokončení stahování (poslední přerušení může nastat po 7 | ||
| - | dnech). Není to ale všelék, protože pokud je program ukončen a znovu spuštěn v jiný | ||
| - | den, poslední snapshot bude jiný a stahování začne nanovo, není-li hodnota | ||
| - | '' | ||
| - | |||
| - | === Detekce chybějící zálohy === | ||
| - | |||
| - | Někdy se může stát, že z nějakého důvodu denní záloha neproběhne a program tedy nebude | ||
| - | mít co stáhnout. Tato situace normálně není považována za chybu -- jednoduše | ||
| - | jsou všechny snapshoty už staženy a program nemá co dělat. Probíhá-li však | ||
| - | stahování záloh automaticky za pomocí cronu, nijak se nedozvíme o tom, že se | ||
| - | žádné zálohy nestahují. Z tohoto důvodu má program přepínač | ||
| - | '' | ||
| - | co stáhnout, skončí s chybou. Chyby nejsou potlačeny přepínačem '' | ||
| - | takže nám ji cron pošle na e-mail a o výpadku se dozvíme. | ||
| - | |||
| - | === Stahování záloh pod obyčejným uživatelem s využitím sudo === | ||
| - | |||
| - | Nechceme-li '' | ||
| - | běžet i pod neprivilegovaným uživatelem. K práci se ZFS pak využije sudo. | ||
| - | |||
| - | V následující ukázce budeme program instalovat a používat pod uživatelem | ||
| - | '' | ||
| - | |||
| - | < | ||
| - | # useradd -m -d / | ||
| - | # su vpsfree | ||
| - | $ gem install --user-install vpsfree-client | ||
| - | </ | ||
| - | |||
| - | Následující řádky vložte do ''/ | ||
| - | |||
| - | < | ||
| - | Defaults: | ||
| - | vpsfree ALL=(root) NOPASSWD: /sbin/zfs | ||
| - | </ | ||
| - | |||
| - | Uživatel '' | ||
| - | což je nezbytné, pokud jej chceme pouštět cronem. | ||
| - | |||
| - | Nyní zkusíme program spustit manuálně a potom jej umístíme do crontabu. Zkusme | ||
| - | si tedy vyžádat a uložit autentizační token: | ||
| - | |||
| - | < | ||
| - | # su vpsfree | ||
| - | $ vpsfreectl --auth token --new-token --token-lifetime permanent --save user current | ||
| - | </ | ||
| - | |||
| - | Dostanete-li chybu, že program neexistuje, bude potřeba specifikovat celou | ||
| - | cestu, nebo přidat správný adresář do '' | ||
| - | '' | ||
| - | ''/ | ||
| - | |||
| - | Máme-li funkčního klienta, můžeme stáhnout první zálohu do datasetu, který si | ||
| - | vytvoříme. V této ukázce se bude zálohovat VPS #123 do datasetu | ||
| - | '' | ||
| - | |||
| - | < | ||
| - | # su vpsfree | ||
| - | $ sudo zfs create -p storage/ | ||
| - | $ vpsfreectl backup vps 123 storage/ | ||
| - | </ | ||
| - | |||
| - | Další zálohy budeme stahovat pravidelně cronem, do souboru | ||
| - | ''/ | ||
| - | |||
| - | < | ||
| - | PATH=/ | ||
| - | MAILTO=tvuj@mail | ||
| - | HOME=/ | ||
| - | |||
| - | 0 7 * * * vpsfree vpsfreectl backup vps storage/ | ||
| - | </ | ||
| - | |||
| - | V '' | ||
| - | programu už nemusíme předávat ID VPS, při prvním spuštění si jej totiž uloží. | ||
| - | |||
| - | === Stahování záloh pod obyčejným uživatelem s využitím delegace práv === | ||
| - | |||
| - | Solaris/ | ||
| - | různým uživatelům. Program v tomto případě vůbec nepotřebuje práva roota, ani | ||
| - | sudo. | ||
| - | |||
| - | Potřebné práva budeme přidělovat uživateli '' | ||
| - | |||
| - | < | ||
| - | # zfs create storage/ | ||
| - | # zfs allow vpsfree create, | ||
| - | </ | ||
| - | |||
| - | Aby mohl uživatel vytvářet subdatasety a připojit je, musí mít i práva na | ||
| - | úrovni adresářů a souborů: | ||
| - | |||
| - | < | ||
| - | # chown vpsfree: | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | Na FreeBSD je potřeba upravit nastavení kernelu tak, aby umožnil uživatelům mount: | ||
| - | |||
| - | < | ||
| - | # sysctl vfs.usermount=1 | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Teď můžeme začit stahovat zálohy. Přepínačem '' | ||
| - | program nesnažil použít sudo. | ||
| - | |||
| - | < | ||
| - | # su vpsfree | ||
| - | $ vpsfreectl backup vps 123 storage/ | ||
| - | </ | ||
| - | |||
| - | |||
| - | ==== Obecné přepínače ==== | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ===== Obnova stažené zálohy ===== | ||
| - | |||
| - | Obnova VPS ze stažené zálohy není nijak automatizována. Staženou zálohu lze do VPS | ||
| - | nahrát pomocí [[navody: | ||
| - | |||
| - | Po nastartovaní VPS v nouzovém režimu máme přístup k disku VPS " | ||
| - | bychom nabootovali live CD. Obsah zálohy rozbalíme do adresáře, kde je disk VPS připojen. | ||
| - | Po restartu VPS nastartuje z obnoveného systému. Pokud záloha obsahuje jinou distribuci, | ||
| - | než která ve VPS byla, je potřeba upravit nastavení ve vpsAdminu. | ||
| - | |||
| - | ===== Získanie zálohy stránky z automatického zálohovacieho systému ===== | ||
| - | |||
| - | V [[navody: | ||
| - | |||
| - | |||
| - | < | ||
| - | aither | ||
| - | kerrycze | ||
| - | </ | ||