User Tools

Site Tools


navody:vps:datasety

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
navody:vps:datasety [2015/08/03 08:36] – vytvořeno petrnavody:vps:datasety [2016/09/12 09:46] – [Snapshoty] popis mazani Aither
Line 4: Line 4:
 se používají na data VPS i NAS. Koncept datasetu nahrazuje exporty z se používají na data VPS i NAS. Koncept datasetu nahrazuje exporty z
 NASu. S datasetem VPS lze pracovat stejně jako s NASem. NASu. S datasetem VPS lze pracovat stejně jako s NASem.
 +
 +{{:navody:vps:dataset_vps.png?300|}}
  
 Proč se vůbec s datasety obtěžovat? Zejména kvůli možnosti nastavení Proč se vůbec s datasety obtěžovat? Zejména kvůli možnosti nastavení
Line 11: Line 13:
 Operace, které s nimi můžete provádět, jsou stejné. vpsAdmin umožňuje Operace, které s nimi můžete provádět, jsou stejné. vpsAdmin umožňuje
 vytváření subdatasetů a nastavování ZFS properties. vytváření subdatasetů a nastavování ZFS properties.
 +
 +{{:navody:vps:dataset.png?300|}}
  
 Pomocí properties lze optimalizovat výkon databází, apod. Ve většině Pomocí properties lze optimalizovat výkon databází, apod. Ve většině
 případů je nemusíte vůbec řešit. případů je nemusíte vůbec řešit.
  
-Rozdíl mezi datasety VPS a NASu je v nastavování kvóty. Pro datasety VPS +Rezervovaná jména datasetů jsou: ''private''''vpsadmin''''branch-*'' a ''tree.*''.
-se používá refquota - místo zabrané snapshoty není zahrnuto. Datasety +
-NASu naopak quota - místo zabrané snapshoty je zahrnuto. vpsAdmin +
-automaticky nabízí správný typ kvóty. +
- +
-Rezervovaná jména datasetů jsou: private, vpsadmin, branch-*tree.*.+
 Tyto názvy nelze použít. Tyto názvy nelze použít.
 +
 +===== Velikost datasetů a zabrané místo =====
 +V seznamu datasetů se zobrazují tři sloupečky: //Used space//, //Referenced space//
 +a //Available space//. //Used space// zahrnuje místo zabrané datasetem, jeho snapshoty
 +i všemi potomky. //Referenced space// zobrazuje jen místo, které zabírá odpovídající dataset,
 +snapshoty ani subdatasety se nepočítají.
 +
 +//Available space// zobrazuje volné místo v aktuální datasetu s ohledem na nastavenou kvótu.
 +
 +===== Kvóty datasetů =====
 +Pro datasety VPS se používá //Reference quota// - místo zabrané snapshoty
 +a subdatasety není zahrnuto. Datasety NASu naopak //Quota// - místo zabrané
 +snapshoty a subdatasety je zahrnuto. vpsAdmin automaticky dle kontextu nabízí správný typ kvóty.
 +
 +U VPS nechceme, aby se do zabraného místa počítalo
 +místo zabrané snapshoty, protože by se zmenšila velikost disku VPS, o tolik,
 +kolik dat je změněno mezi vytvořenými snapshoty.
 +Každý dataset je samostatný a nesdíli místo s nadřazenými datasety, ani se
 +svými potomky.
 +
 +Naopak na NASu je použita property quota a do té se počítá místo zabrané
 +snapshoty i subdatasety. Pokud se na NASu udělají snapshoty, budou
 +ubírat místo z celkové velikosti. Taky je jedno, že subdatasetu na NASu lze
 +dat větší kvótu, než má uživatel k dispozici, protože se stejně uplatní kvóta
 +z datasetu nejvyšší úrovně, tzn. ve výchozím stavu 250 GB.
 +
 +Z toho vyplývá, že k vytvoření subdatasetu VPS musí být nejdříve uvolněno místo, tzn.
 +nějaký jiný (sub)dataset VPS musí být zmenšen minimálně o 10 GB. Na NASu záleží jen na kvótě nejvýše
 +postaveného datasetu a kvóty subdatasetů můžou být libovolné.
  
 ===== Snapshoty ===== ===== Snapshoty =====
  
 Zálohování probíhá pomocí ZFS snapshotů, které jsou vidět v menu Zálohování probíhá pomocí ZFS snapshotů, které jsou vidět v menu
-Backups. Tam je možné je také vytvářet a mazat.+Backups. Tam je možné je také vytvářet. Vytvořené snapshoty VPS nelze 
 +smazat, je nutné počkat, až se samy odrotují v rámci denních záloh. 
 + 
 +{{:navody:vps:backups.png?300|}}
  
 Zálohování VPS probíhá tak, že každý den v 01:00 se v rámci jednoho node Zálohování VPS probíhá tak, že každý den v 01:00 se v rámci jednoho node
Line 37: Line 68:
 ===== Mounty ===== ===== Mounty =====
  
-Mounty byly přesunuty z menu NAS do detailů VPS. Mountovat lze datasety+Mounty lze vidět v detailech VPS. Mountovat lze datasety
 i snapshoty. Do jakékoliv VPS jde mountnout jakýkoliv dataset či i snapshoty. Do jakékoliv VPS jde mountnout jakýkoliv dataset či
 snapshot. Mounty jednotlivých snapshotů nahrazují trvalý mount záloh do snapshot. Mounty jednotlivých snapshotů nahrazují trvalý mount záloh do
 /vpsadmin_backuper. /vpsadmin_backuper.
 +
 +{{:navody:vps:mounts.png?300|}}
  
 Každý snapshot může být v jednu chvíli připojen pouze jednou, datasety Každý snapshot může být v jednu chvíli připojen pouze jednou, datasety
Line 48: Line 81:
 dataset 'raz/dva' je připojen nad dataset 'raz' není ošetřena. dataset 'raz/dva' je připojen nad dataset 'raz' není ošetřena.
  
-Mount lze pouze vytvořit a smazat. Nelze jej v průběhu jen tak odpojit a +{{:navody:vps:mounts_detail.png?300|}} 
-znovu připojit.+ 
 +Mount lze dočasně odpojit tlačítkem "Disable/Enable". Toto nastavení je 
 +perzistentní mezi restarty VPS.
  
 ===== Obnova záloh ===== ===== Obnova záloh =====
Line 68: Line 103:
 ===== Stahování záloh ===== ===== Stahování záloh =====
  
-Stahování snapshotů je nyní součástí vpsAdminuVygenerované archivy +Zálohy můžeme stahovat buď přes webové rozhraní nebo [[navody:vps:api#cli|CLI]]. 
-jsou vidět v menu Backups → DownloadsOdkazy jsou platné týden.+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átor historie// (číslo). Snapshoty se stejným 
 +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 Backups. 
 + 
 +==== Stažení zálohy do souboru ==== 
 + 
 +<code> 
 +$ vpsfreectl snapshot download --help 
 +snapshot download [SNAPSHOT_ID]      Download a snapshot as an archive or a stream 
 + 
 +Command options: 
 +    -f, --format FORMAT              archive, stream or incremental_stream 
 +    -I, --from-snapshot SNAPSHOT_ID  Download snapshot incrementally from SNAPSHOT_ID 
 +    -d, --[no-]delete-after          Delete the file from the server after successful download 
 +    -F, --force                      Overwrite existing files if necessary 
 +    -o, --output FILE                Save the download to FILE 
 +    -q, --quiet                      Print only errors 
 +    -r, --resume                     Resume cancelled download 
 +    -s, --[no-]send-mail             Send mail after the file for download is completed 
 +    -x, --max-rate N                 Maximum download speed in kB/s 
 +        --[no-]checksum              Verify checksum of the downloaded data (enabled) 
 +</code> 
 + 
 +Není-li ID snapshotu předáno programu jako argument, interaktivně se na něj 
 +zeptá: 
 + 
 +<code> 
 +$ vpsfreectl snapshot download 
 +Dataset 14 
 +  (1) @2015-12-04T00:00:02Z 
 +VPS #198 
 +  (2) @2015-12-01T09:08:28Z 
 +  (3) @2015-12-01T09:10:10Z 
 +  (4) @2015-12-01T11:25:55Z 
 +  (5) @2015-12-01T11:36:03Z 
 +  (6) @2015-12-01T11:54:51Z 
 +  (7) @2015-12-01T11:55:19Z 
 +  (8) @2015-12-01T12:02:27Z 
 +  (9) @2015-12-01T12:27:50Z 
 +  (10) @2015-12-01T12:37:50Z 
 +  (11) @2015-12-01T12:55:46Z 
 +  (12) @2016-02-29T09:56:03Z 
 +  (13) @2016-02-29T10:08:31Z 
 +  (14) @2016-02-29T10:08:35Z 
 +Pick a snapshot for download: 
 + 
 +</code> 
 + 
 +Budeme stahovat 4. snapshot (''@2015-12-01T11:25:55Z''): 
 + 
 +<code> 
 +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 
 +</code> 
 + 
 +Přepínačem ''%%--format%%'' vybereme, jestli chceme stáhnout tar.gz, data 
 +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://api.vpsfree.cz/v2.0/#root-snapshot_download-show|SnapshotDownload#Show.file_name]]), 
 +nebo si zvolit vlastní umístění pomocí přepínače ''%%--output%%''. Pokud je použit 
 +''%%--output=-%%'', výstup je přesměrován na stdout. 
 + 
 +Program umožňuje stáhování přerušit (třeba ''Ctrl+C'') a následně na něj opět 
 +navázat. Pokud není použit přepínač ''%%--resume%%'', nebo ''%%--force%%'', 
 +program se uživatele zeptá, jestli má pokračovat ve stahování, nebo začít 
 +znovu. 
 + 
 +<note> 
 +Stahování lze navázat jen v případě, že připravený soubor na serveru mezitím 
 +nebyl smazán (přepínač ''%%-[no-]delete-after%%''), což je až týden od prvního 
 +stahování. 
 +</note> 
 + 
 +==== ZFS data stream ==== 
 + 
 +<code> 
 +$ vpsfreectl snapshot send --help 
 +snapshot send SNAPSHOT_ID            Download a snapshot stream and write it on stdout 
 + 
 +Command options: 
 +    -I, --from-snapshot SNAPSHOT_ID  Download snapshot incrementally from SNAPSHOT_ID 
 +    -d, --[no-]delete-after          Delete the file from the server after successful download 
 +    -q, --quiet                      Print only errors 
 +    -s, --[no-]send-mail             Send mail after the file for download is completed 
 +    -x, --max-rate N                 Maximum download speed in kB/s 
 +        --[no-]checksum              Verify checksum of the downloaded data (enabled) 
 +</code> 
 + 
 +Rozdíl oproti ''snapshot download'' je, že data stream je vypisován rovnou na 
 +stdout a to v nekomprimované formě, abychom ho mohli propojit přimo se 
 +''zfs recv'': 
 + 
 +<code> 
 +$ vpsfreectl snapshot send <id> | zfs recv -F <dataset> 
 +</code> 
 + 
 +Inkrementální data stream lze vyžádat přepínačem ''%%-I, --from-snapshot%%'': 
 + 
 +<code> 
 +$ vpsfreectl snapshot send <id2> -- --from-snapshot <id1> | zfs recv -F <dataset> 
 +</code> 
 + 
 +==== Automatizované stahování záloh ==== 
 + 
 +Automatizované stahování záloh řeší příkazy ''backup vps''
 +''backup dataset''. Používají se stejně, akorát první má jako argument ID VPS 
 +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í, a to pokud možno inkrementálně. Aby fungoval 
 +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. 
 + 
 +<code> 
 +$ vpsfreectl backup vps --help 
 +backup vps [VPS_ID] FILESYSTEM       Backup VPS locally 
 + 
 +Command options: 
 +    -p, --pretend                    Print what would the program do 
 +    -r, --[no-]rotate                Delete old snapshots (enabled) 
 +    -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                 Maximum download speed in kB/s 
 +    -q, --quiet                      Print only errors 
 +    -s, --safe-download              Download to a temp file (needs 2x disk space) 
 +        --retry-attemps N            Retry N times to recover from download error (10) 
 +    -i, --init-snapshots N           Download max N snapshots initially 
 +        --[no-]checksum              Verify checksum of the downloaded data (enabled) 
 +    -d, --[no-]delete-after          Delete the file from the server after successful download (enabled) 
 +        --no-snapshots-as-error      Consider no snapshots to download as an error 
 +        --[no-]sudo                  Use sudo to run zfs if not run as root (enabled) 
 +</code> 
 + 
 +Pokud program nedostane ID VPS/datasetu jako argument, buď se na něj uživatele 
 +zeptá, nebo se pokusí jej zjistit sám. Argument ''FILESYSTEM'' musí být uveden 
 +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**, což může být v případě 
 +datasetu matoucí, jelikož ID není stejné jako název datasetu, ale obojí je 
 +většinou číslo
 +</note> 
 + 
 +Než program spustíme na ostro, může se hodit přepínač ''%%--pretend%%'', který 
 +nám vypíše, co by program udělal, tedy jaké snapshoty by stáhnul a případně 
 +smazal. 
 + 
 +Přepínačem ''%%--[no-]rotate%%'' se (de)aktivuje mazání starých snapshotů, aby se 
 +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 ''FILESYSTEM'' si program spravuje sám a uživatel by v něm 
 +neměl vytvářet další subdatasety/snapshoty. Stažené snapshoty jsou umístěny v 
 +subdatasetech, které jsou pojmenovány podle identifikátoru historie. 
 + 
 +=== Ukázka použití === 
 + 
 +<code> 
 +$ vpsfreectl backup vps storage/backup/199 
 +(1) VPS #198 
 +(2) VPS #199 
 +(3) VPS #202 
 +Pick a dataset to backup: 2 
 +Will download 8 snapshots: 
 +  @2016-03-07T18:12:58 
 +  @2016-03-07T18:13:21 
 +  @2016-03-07T18:18:35 
 +  @2016-03-10T10:18:03 
 +  @2016-03-10T10:18:30 
 +  @2016-03-10T11:49:00 
 +  @2016-03-10T14:28:00 
 +  @2016-03-10T14:33:12 
 + 
 +Performing a full receive of @2016-03-07T18:12:58 to storage/backup/199/
 +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:12:58 - @2016-03-10T14:33:12 to storage/backup/199/
 +The download is being prepared... 
 +Time: 00:00:00 Downloading 0.0 GB: [=======================================================================================] 100% 0 kB/s 
 +</code> 
 + 
 +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í ''zfs list'': 
 +<code> 
 +$ sudo zfs list -r -snapshot storage/backup/199 
 +NAME                                       USED  AVAIL  REFER  MOUNTPOINT 
 +storage/backup/199/1@2016-03-07T18:12:58     8K      -   284M 
 +storage/backup/199/1@2016-03-07T18:13:21     8K      -   284M 
 +storage/backup/199/1@2016-03-07T18:18:35     8K      -   284M 
 +storage/backup/199/1@2016-03-10T10:18:03     8K      -   285M 
 +storage/backup/199/1@2016-03-10T10:18:30     8K      -   285M 
 +storage/backup/199/1@2016-03-10T11:49:00   160K      -   285M 
 +storage/backup/199/1@2016-03-10T14:28:00   160K      -   285M 
 +storage/backup/199/1@2016-03-10T14:33:12      0      -   285M 
 +</code> 
 + 
 +K vlastním datům se lze dostat přes speciální adresář ''.zfs'': 
 +<code> 
 +$ ls -1 /storage/backup/199/1/.zfs/snapshot 
 +2016-03-07T18:12:58 
 +2016-03-07T18:13:21 
 +2016-03-07T18:18:35 
 +2016-03-10T10:18:03 
 +2016-03-10T10:18:30 
 +2016-03-10T11:49:00 
 +2016-03-10T14:28:00 
 +2016-03-10T14:33:12 
 +</code> 
 + 
 +K pravidelnému stahování záloh se dá použít cron. Zápis crontabu může vypadat 
 +takto: 
 + 
 +<code> 
 +MAILTO=tvuj@mail 
 + 
 +# Example of job definition: 
 +.---------------- minute (0 - 59) 
 +# |  .------------- hour (0 - 23) 
 +# |  |  .---------- day of month (1 - 31) 
 +# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... 
 +# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
 +# |  |  |  |  | 
 +# *  *  *  *  * user-name command to be executed 
 +  0  7  *  *  * root      vpsfreectl backup vps 199 storage/backup/199 -- --max-rate 1000 
 +</code> 
 + 
 +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é 
 +''MAILTO''. Po ověření funkčnosti je však zbytečné, aby e-mail chodil každý den. 
 +Proto má program přepínač ''%%--quiet%%'', který zajistí, že se vypíšou jen 
 +případné chyby. 
 + 
 +<note> 
 +Pokud budeme zálohy stahovat pod rootem, ale ''vpsfreectl'' byl nainstalován 
 +pod obyčejným uživatelem, musí se pro roota program 
 +[[navody:vps:api#cli|nainstalovat]] i se všemi závislostmi znovu. 
 +</note> 
 + 
 +=== Stažení plné zálohy po pomalé/nespolehlivé lince === 
 + 
 +Příkaz ''backup'' ve výchozím stavu neumožnuje přerušit a pokračovat ve stahování, 
 +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 ''%%--safe-download%%'', který nejdříve stáhne data do souboru a až 
 +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 datasetuDoč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č 
 +''%%--init-snapshots N%%'', který programu řekne, že chceme stáhnout jen ''N'' 
 +posledních snapshotů. Nejbezpečnější je použít ''%%--init-snapshots 1%%'', pak 
 +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 
 +''%%--init-snapshots%%'' patřičně upravena. 
 + 
 +=== 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č 
 +''%%--no-snapshots-as-error%%'', který se postará o to, že pokud program nemá 
 +co stáhnout, skončí s chybou. Chyby nejsou potlačeny přepínačem ''%%--quiet%%'', 
 +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 ''vpsfree-client'' instalovat či spouštět pod rootem, program umí 
 +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 
 +''vpsfree''. Nejdříve jej vytvoříme a nainstalujeme ''vpsfree-client'': 
 + 
 +<code> 
 +# useradd -m -d /home/vpsfree -s /bin/bash vpsfree 
 +# su vpsfree 
 +$ gem install --user-install vpsfree-client 
 +</code> 
 + 
 +Následující řádky vložte do ''/etc/sudoers.d/zfs'': 
 + 
 +<code> 
 +Defaults:vpsfree !requiretty 
 +vpsfree ALL=(root) NOPASSWD: /sbin/zfs 
 +</code> 
 + 
 +Uživatel ''vpsfree'' tedy bude moci spouštět ''zfs'' jako root a to bez hesla, 
 +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: 
 + 
 +<code> 
 +# su vpsfree 
 +$ vpsfreectl --auth token --new-token --token-lifetime permanent --save user current 
 +</code> 
 + 
 +Dostanete-li chybu, že program neexistuje, bude potřeba specifikovat celou 
 +cestu, nebo přidat správný adresář do ''$PATH''. Gemy se instalují do 
 +''~/.gem/ruby/<verze ruby>/'', na mém systému je cesta ke spouštěcím souborům konkrétně 
 +''/home/vpsfree/.gem/ruby/2.0.0/bin''
 + 
 +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 
 +''storage/backup/vps/123''
 + 
 +<code> 
 +# su vpsfree 
 +$ sudo zfs create -p storage/backup/vps/123 
 +$ vpsfreectl backup vps 123 storage/backup/vps/123 
 +</code> 
 + 
 +Další zálohy budeme stahovat pravidelně cronem, do souboru 
 +''/etc/cron.d/vpsfree'' vložte: 
 + 
 +<code> 
 +PATH=/bin:/usr/bin:/home/vpsfree/.gem/ruby/2.0.0/bin 
 +MAILTO=tvuj@mail 
 +HOME=/home/vpsfree 
 + 
 +0 7 * * * vpsfree vpsfreectl backup vps storage/backup/vps/123 -- --quiet 
 +</code> 
 + 
 +V ''PATH'' je uveden adresář obsahující ''vpsfreectl''. Všimněte si, že 
 +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/OpenIndiana a FreeBSD umožnuje delegovat práva pro ovládání datasetů 
 +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 ''vpsfree'': 
 + 
 +<code> 
 +# zfs create storage/backup/123 
 +# zfs allow vpsfree create,mount,destroy,receive storage/backup/123 
 +</code> 
 + 
 +Aby mohl uživatel vytvářet subdatasety a připojit je, musí mít i práva na 
 +úrovni adresářů a souborů: 
 + 
 +<code> 
 +# chown vpsfree:vpsfree /storage/backup/123 
 +</code> 
 + 
 +<note> 
 +Na FreeBSD je potřeba upravit nastavení kernelu tak, aby umožnil uživatelům mount: 
 + 
 +<code> 
 +# sysctl vfs.usermount=1 
 +</code> 
 +</note>
  
-===== Transakce =====+Teď můžeme začit stahovat zálohy. Přepínačem ''%%--no-sudo%%'' zajistíme, aby se 
 +program nesnažil použít sudo.
  
-Transakce nyní spadají do skupin nazvaných „transaction chain“. Každá +<code> 
-operace (vytvoření VPS, start, stop, klon, atd.) je reprezentována +# su vpsfree 
-jedním chainem, který seskupuje více transakcí. V transaction logu v +$ vpsfreectl backup vps 123 storage/backup/123 -- --no-sudo 
-pravém panelu se zobrazuje seznam deseti posledních chainů a jejich postup v +</code>
-procentech. Kliknutím na ID chainu lze vidět, jaké transakce obsahuje.+
  
-V ideálním případě se chain buď provede úplně a nebo vůbec. Pokud k 
-dojde k neočekávané či neošetřené chybě, bude muset zasáhnout administrátor. 
  
-Chainy se starají také o udržování konzistence databáze. Změny v +==== Obecné přepínače ==== 
-databázi se provedoujen když chain doběhne úspěšně. Může to být trochu +  * ''%%--[no-]delete-after%%'' rozhoduje o tomjestli se má stahovaný soubor po úspěšném stažení smazat ze serveru 
-matoucíkdyž se např. po změně hostname stále zobrazuje to staré. Po +  * ''%%--[no-]send-mail%%'' říká, jestli chceme stále dostat e-mail o tom, že je záloha připravena na serveru ke stažení 
-dokončení chainu se hostname aktualizuje bude správně.+  * ''%%--max-rate N%%'' nastavuje maximální rychlost stahování v kB/s 
 +  * ''%%--quiet%%'' potlačí všechen výstup, vypsány jsou pouze chyby 
 +  * ''%%--no-checksum%%'' vypne počítání kontrolu checksumu (sha256, což někdy může zdržovat)
  
-===== Zámky objektů =====+===== Obnova stažené zálohy =====
  
-S každým objektem (VPS, datasetsnapshot, apod.) lze v jednu chvíli +Obnova VPS ze stažené zálohy zatím není nijak automatizována. Jedním ze 
-provádět jen jednu operaci. Zámky slouží k zaručení konzistence, aby si +způsobů je připojit si dataset VPS, který chceme obnovitdo jiné VPS 
-pod sebou vpsAdmin sám nepodřezal větev.+(playground) a data překopírovat. Tento postup je popsán v 
 +[[navody:vps:oprava#pripojeni_rootfs|návodu na opravu VPS]].
  
-Pokud na vás vyskočí chybová hláška: „Resource is locked. Please try 
-again.“ znamená to, že objekt, se kterým chcete něco udělat, je uzamčen 
-a musíte počkat, až bude k dispozici.