Pregled
Postavljanje okruženja
Sigurnosne kopije
Automatizacija
Obnova
Pregled
Iako Vultr ima sustav sigurnosne kopije za cjelokupne slike sustava, to radi na razini bloka i zahtijeva da se sigurnosna kopija vrati na VM prije nego što se podaci mogu vratiti. Osim toga, sigurnosne kopije se pohranjuju samo kratko vrijeme i ne pružaju pravo inkrementalno sigurnosno kopiranje.
Enter Duplicity - Duplicity se nadovezuje na legendarni rsync i pruža mogućnost pohranjivanja inkrementalnih sigurnosnih kopija zajedno s šifriranjem podataka u mirovanju putem GPG-a. Sukladan je Posix-u i prenosi samo delte između backup pokretanja, čime se smanjuje ukupni zahtjev za širinom pojasa.
Postavljanje okruženja
Terminologija
- Izvorni host - poslužitelj koji će imati sigurnosnu kopiju svojih podataka. Za ovaj vodič ima IP adresu: 10.1.10.1
- Backup host - Odredišni poslužitelj za sigurnosne kopije. Za ovaj vodič ima IP adresu: 10.1.10.2
- /backupdir - Izvorni direktorij na izvornom hostu koji se koristi za sigurnosne kopije u ovom vodiču. To možete promijeniti tako da odgovara vašem okruženju.
- /destdir - Odredišni direktorij na hostu sigurnosne kopije koji se koristi za sigurnosne kopije u ovom vodiču. To možete promijeniti tako da odgovara vašem okruženju.
- Potpuna sigurnosna kopija - Cijela kopija izvornog skupa podataka.
- Inkrementalna sigurnosna kopija - Kopija svih promjena napravljenih od posljednje sigurnosne kopije.
Instalacija Duplicity
Ubuntu 14.04:
sudo apt-get update
sudo apt-get install duplicity python-paramiko
CentOS (zahtijeva EPEL):
sudo yum install duplicity python-paramiko
Ubuntu 12.04/Debian 7:
sudo apt-get update
sudo apt-get install ncftp python-paramiko python-pycryptopp lftp python-boto python-dev librsync-dev
wget https://launchpad.net/duplicity/0.7-series/0.7.02/+download/duplicity-0.7.02.tar.gz
tar xzvf duplicity*
cd duplicity*
sudo python setup.py install
Moramo instalirati iz izvora jer su paketi Duplicity unutar Debiana 7 i Ubuntu 12.04 pokvareni zbog promjene u pozadinskoj SSH biblioteci.
Provjerite je li Duplicity instaliran tako što ćete pokrenuti:
duplicity -v
Trebao bi vratiti sljedeći izlaz (verzija može biti drugačija):
duplicity 0.6.18
Postavljanje provjere autentičnosti bez ključa za SSH
Sljedeći korak je postavljanje provjere autentičnosti temeljene na certifikatu za SSH između backup hosta i izvornog hosta. To će omogućiti izvornom poslužitelju SSH u host backup bez upisivanja šifre. Vultr ima sjajan članak koji objašnjava kako to učiniti: Kako generirati SSH ključeve .
Sigurnosne kopije
Pokretanje prve (potpune) sigurnosne kopije
Pokrenimo potpunu sigurnosnu kopiju! Ovo će poslati punu kopiju podataka s izvornog poslužitelja na odredište.
duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Možete dodati dodatne mape uključivanjem više --include="[dir]"izjava.
Navodi --no-encryptionda se podaci ne kriptiraju na odredištu. Podaci će biti šifrirani tijekom transporta dok prolaze kroz SSH tunel.
--exclude="**" /Opcija je trik za backup svega što je samo u uključuju popis (i ništa drugo).
Pokretanje inkrementalnog sigurnosnog kopiranja
Pokretanje inkrementalne sigurnosne kopije vrlo je jednostavno - samo promijenite fullzastavicu u incrementalzastavicu.
duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Automatizacija
Pišite automatizirane skripte
Pokretanje ovih naredbi svaki put kada vam je potrebna sigurnosna kopija je teško - što ako imamo skripte koje će nam to riješiti?
Potpuna skripta za sigurnosnu kopiju
Pokrenite naredbu.
nano /usr/local/bin/backup-full
Dodajte sljedeći sadržaj.
#!/bin/bash
duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Inkrementalna sigurnosna skripta
nano /usr/local/bin/backup-incremental
Dodajte sljedeći sadržaj.
#!/bin/bash
duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Učinite skripte izvršnim
Da bi skripte bile izvršne, pokrenite sljedeću naredbu.
chmod +x /usr/local/bin/backup-*
Sada možete napraviti sigurnosnu kopiju pokretanjem backup-fulli backup-incrementaliz ljuske. Baš super!
Postavljanje cron
Napravimo sigurnosne kopije automatski! Postavljanjem crona za pokretanje gore navedenih skripti u određeno vrijeme, možemo osigurati da se sigurnosne kopije izvode u redovitim intervalima.
Pokrenite sljedeću naredbu.
crontab -e
Dodajte sljedeće na dno datoteke.
10 01 * * 1,2,3,4,5,6 backup-incremental
10 01 * * 7 backup-full
Ovo će pokrenuti potpunu sigurnosnu kopiju svake nedjelje u 1:10 ujutro, a izvodit će se inkrementalne sigurnosne kopije svaki drugi dan u 1:10 ujutro.
Obnova
Godzilla je uništio Seattle i moramo moći vratiti podatke iz sigurnosnog VPS-a u New Yorku!
duplicity --no-encryption --file-to-restore / ssh://user@backupserver:22/destdir/
Ako trebamo vratiti podatke od prije 3 dana:
duplicity --no-encryption -t 3D --file-to-restore / ssh://user@backupserver:22/destdir/
Na -t 3Dopcija sredstva vratiti backup od prije tri dana. Slične opcije poput -t 1M(prije mjesec dana) ili -t 5H(prije 5 sati) također rade.