Jump to content
Geekforum.cz

Jak zálohovat server


ntdrt
 Share

Recommended Posts

O co jde

Každej kdo má server a provozuje tam nějaký služby, tak si určitě položí otázku - jak svoje data chránit? Disky nemají nekonečnou životnost. Poskytovatelé serverů se ve většině případů o vaše zálohy nestarají, či mají za obnovu velký poplatek a navíc strašně dlouhý odstup jednotlivých záloh - například záloha jednou týdně - přijít o data za celý týden je velmi nepříjemné, i ten jeden den je dost.

 

Takže o zálohy se bude muset člověk postarat sám. Ale jak? Nejdřív je dobrý si uvědomit, že záloha musí chránit data v několika scénářích...

 

Pokud selže hardware, tak musím mít k dispozici kopii všech potřebných souborů - to je celkem hračka, řekněme, že si každý den udělám zálohu, můj server bude mít 20GB dat, tak záloha bude mít také 20GB dat.

 

Pak ale přichází druhý scénář - blbuvzornost, pokud si něco smažu já a všimnu si toho za týden, tak co teď? Zálohu mám jen 24 hodin zpátky, ale v té době už soubor byl smazaný a tak se smazal i ze zálohy. Takže logicky potřebuji zálohovat nejen poslední den, ale například poslední měsíc (to ochrání i to, že například poslední záloha může být poškozená, protože zrovna v tu dobu chcípl server). Tady se naráží na místo, pokud budu mít 20GB dat, tak za měsíc to je už přes půl tera dat. Pokud bych měl 100GB, tak hups a zálohy mají 3TB. Takže tudy určitě cesta nevede, jelikož by sme se nedoplatili za úložný prostor. Řešením je nedělat úplné zálohy, ale uchovávat jen rozdíly. Pokud má moje záloha 20GB dat, tak se za dej rozhodně celá nezmění, spíše se změní velice malá část (např. 500MB), takže by bylo o hodně moudřejší uchovávat tento rozdíl, než pokaždé dělat celou zálohu a tak duplikovat obrovské množství dat.

 

Zkrátka zálohy nejsou taková sranda a je plno aspektů, na které se musí myslet. Ve výsledku by chtěl člověk asi toto:

  • automatické zálohy v určitém intervalu (jednou denně, dvakrát denně, ...)
  • minimalizovat velikost zálohy - uchovávat rozdíly, tj. "verzovat"
  • zálohovat pokud možno vše najednou - zálohovat zkrátka celý file-system (tím se nám ušetří spousta práce a na nic nezapomeneme)
  • uložit data mimo server, na nějaké spolehlivé úložiště
  • v některých případech budeme potřebovat i šifrování
  • a samozřejmě minimalizovat cenu

Čím zálohovat

Nyní známe problém a požadavky - jaké je ale řešení? Mě osobně se velice osvědčil program duplicity. Umí vytvářet zálohy pomocí rozdílů, umí šifrování, data se rozdělují na balíčky, které se následně komprimují - komprese nám ušetří část místa a rozdělení na balíčky nám ušetří výkon. V systému je totiž běžně obrovské množství malých souborů, ty jsou pro ukládání a manipulaci velkou zátěží a tak seskupení několika tisíců malých souborů do jednoho archivu je určitě užitečné. Navíc podporuje celou řadu úložišť.

 

Zkrátka duplicity umí všechno co si jenom můžeme přát - navíc je zadarmo (opensource). Samozřejmě nic nemůže být dokonalé a i duplicity má své temné stránky - což je z mého pohledu hlavně konfigurace a nasazení na systém. Není to jednoduché, musíte skládat celou řadu parametrů, starat se o čištění starých záloh a tak dále a tak dále - je to komplexní záležitost a snadno se na něco zapomene.

 

Naštěstí existuje řešení - duply. Duply je doplněk k duplicity, který umožní zálohovat pomocí profilů a obstará za nás všechnu špinavou práci. Je také zadarmo a také opensource.

 

Kam uložit data

Teď přichází další těžká otázka a to je kam svá data nahrát. Budeme potřebovat poměrně veliký prostor, ideální by bylo, kdyby se přizpůsobil našim potřebám. Naštěstí dnes existují cloudová řešení a ta přesně splňují naše požadavky.

 

Osobně používám Amazon S3 - cena je přijatelná, platíte jen to co využijete. Platí se za využitý prostor, přenesená data (pouze out, tj. co stáhnete) a za počet požadavků. Uvedené ceny jsou bez DPH.

 

Cena za jeden GB je $0,03 (tj. 0,6 Kč), což je relativně přijatelné, za 1TB zapaltíte 600 Kč, čím víc dat uložíte, tím máte cenu nižší. Jiná datová uložiště sice nabídnou 1TB místa za menší částku, ale tam nemáte možnost růstu. Platíte 1TB, i když prostor nevyužíváte a v případě uložení většího objemu dat je složité úložiště rozšiřovat a je s tím zkrátka spousta práce.

 

Další položkou jsou přenesená data (pouze stažená z amazonu), kde máte zdarma první 1GB a poté se platí $0,12 (2,4 Kč) za další GB. Cena se zase s větším množstvím snižuje, ale za první TB zaplatíte 2398 Kč (bez DPH!). Zkrátka Amazon S3 není vůbec vhodný na časté stahování, pokud tam budete zálohovat a přenesete jednou za rok jen část zálohy, tak je cena přijatelná. U větších objemů je traffic opravdu drahý - což u zálohování nevadí, tam se 99% času využívá upload, který je zdarma.

 

Poslední položkou je počet požadavků, ten nás nemusí trápit vůbec, jelikož si můžeme nastavit zálohy, aby se "nakouskovaly" například na 100MB či 1GB a potom máme celou zálohu v řádech desítek/stovek souborů = stovky požadavků a to nás bude stát 0,1 Kč.

 

Ve výsledku využíváte úložiště méně, než je 1TB, na jedno VPS například těch 30GB dat, takže záloha např. 40GB a za to zaplatíte měsíčně do 30 Kč, což je určitě přijatelné. Vzhledem k tomu, že data jsou redundantně uložena a geograficky oddělené od vašeho serveru. Amazon S3 umožňuje i data šifrovat, takže se bude šifrovat přenos, samotná data a ještě celé úložiště, to musí stačit i tomu nejvíc paranoidnímu člověku.

 

Mě aktuálně chodí faktury na $0,05 s daní :).

 

Jak na to (debian/ubuntu)

Nejprve si musíme vytvořit účet na AWS (http://aws.amazon.com/), zadat všechny údaje, kreditní kartu, atp. Dále vytvořit kýbl v S3 storage (https://console.aws....egion=us-west-2), v mém případě "kolinger-backup". A jako poslední budem potřebovat přístupové údaje, ty vygenerujeme na stránce "Security credentials" (https://console.aws....rity_credential) a tam v záložce "Access Keys" vygenerujeme nový klíč, ten si někam uložíme (na bezpečné místo! pomocí tohoto klíče se dá ovládat celý AWS účet - smazat všechny zálohy atp.!), soubor obsahuje dva údaje, ty budem potřebovat později.

 

Teď potřebujem nainstalovat duplicity a duply, pak taky nějakou podporu pro S3 storage (ve výchozím stavu podporované není):

 

apt-get install duply python-boto

 

Dalším krokem si vytvoříme základní profil pomocí duply, syntax: duply <nazev-profilu> create, takže třeba:

 

duply full create

 

To nám vypíše nějaké hlášky a hlavně místo, kam se profil uložil, například /root/.duply/full/conf. Tento soubor si otevřeme v oblíbeném editoru (či stáhneme do PC) a upravíme:

  • jako první vidíme GPG_KEY a GPG_PW, což jsou parametry na nastavení šifrování, pro zjednodušení šifrování nepoužijeme a tudíž hodnotu GPG_KEY přepíšeme na disabled = GPG_KEY='disabled'
  • dále nás bude zajímat TARGET, tedy tam kam data budem ukládat, v našem případě to bude Amazon S3, takže adresa ve formátu s3://<vas-region>.amazonaws.com/<nazev-kybliku>, takže v mém případě mám kbelík "kolinger-backup" a je uložen v Irsku - s3://s3-eu-west-1.amazonaws.com/kolinger-backup
  • pro uvedený kbelík musíme zadat příslušný přístupové ID a klíč, což jsme si vygenerovaly v administraci amazonu výše - TARGET_USER obsahuje ID (AWSAccessKeyId) a TARGET_PASS samotný klíč (AWSSecretKey)
  • další parametr je nastavení složky, která se bude zálohovat - chceme celý file-systém, takže SOURCE='/'
  • zbytek údajů nastavovat nemusíme - popisky jsem celkem zřejmé - například nastavujeme jak dlouho se mají zálohy uchovávat (výchozí 1 měsíc), kolik plných záloh se má maximálně uchovat (výchozí 1) atp.

Aby byla konfigurace kompletní, tak musíme vyloučit ze zálohy některé nepotřebné soubory, já používám následující exclude-list:

 

/cdrom
/dev
/lost+found
/media
/mnt
/proc
/run
/sys
/tmp
/var/tmp

 

To uložíme jako soubor exclude, do složky s naším profilem - v mém případě /root/.duply/full/exclude

 

Tím je konfigurace kompletní a nyní můžeme provést první zálohu: duply full backup

Pokud chceme zálohy automatizovat, tak zadáme tento příkaz do CRONu (příkaz crontab -e), třeba 2x denně */12 * * * * duply full backup

 

Tak a teď se nám bude server sám aktualizovat do bezpečného cloudu a o nic se nemusíme starat.

 

Obnovení zálohy a další informace:

http://serverfault.c...-a-certain-date

http://blog.phusion....r-your-servers/

http://duply.net/?ti...y-documentation

http://duplicity.non...uplicity.1.html

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...