Vështrim i përgjithshëm
Vendosja e mjedisit
Rezervimet
Automatizimi
Restaurimi
Vështrim i përgjithshëm
Ndërsa Vultr ka një sistem rezervë për të gjithë imazhet e sistemit, kjo funksionon në nivel blloku dhe kërkon që kopja rezervë të rikthehet në një VM përpara se të dhënat të mund të restaurohen. Për më tepër, kopjet rezervë ruhen vetëm për një kohë të shkurtër dhe nuk ofrojnë një zgjidhje të vërtetë rezervë shtesë.
Enter Duplicity - Duplicity bazohet në rsync legjendar dhe ofron mundësinë për të ruajtur kopje rezervë shtesë së bashku me enkriptimin e të dhënave në qetësi nëpërmjet GPG. Është në përputhje me Posix dhe transferon vetëm deltat ndërmjet ekzekutimeve rezervë, duke reduktuar kështu kërkesën e përgjithshme të gjerësisë së brezit.
Vendosja e mjedisit
Terminologjia
- Pritësi i burimit - Serveri i cili do të ketë të dhënat e tij rezervë. Për këtë tutorial, ai ka adresën IP: 10.1.10.1
- Pritësi rezervë - Serveri i destinacionit për kopje rezervë. Për këtë tutorial, ai ka adresën IP: 10.1.10.2
- /backupdir - Drejtoria e burimit në hostin burimor që përdoret për kopje rezervë në këtë tutorial. Ju mund ta ndryshoni këtë për t'iu përshtatur mjedisit tuaj.
- /destdir - Drejtoria e destinacionit në hostin rezervë të përdorur për kopje rezervë në këtë tutorial. Ju mund ta ndryshoni këtë për t'iu përshtatur mjedisit tuaj.
- Rezervimi i plotë - E gjithë kopja e të dhënave burimore.
- Rezervimi në rritje - Kopje e të gjitha ndryshimeve të bëra që nga rezervimi i fundit.
Instalimi i Duplicity
Ubuntu 14.04:
sudo apt-get update
sudo apt-get install duplicity python-paramiko
CentOS (kërkon 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
Ne duhet të instalojmë nga burimi pasi paketa Duplicity brenda Debian 7 dhe Ubuntu 12.04 janë prishur për shkak të një ndryshimi në bibliotekën SSH të backend.
Kontrolloni dy herë nëse Duplicity është instaluar duke ekzekutuar:
duplicity -v
Duhet të kthejë daljen e mëposhtme (versioni mund të jetë i ndryshëm):
duplicity 0.6.18
Vendosja e vërtetimit pa çelës për SSH
Hapi tjetër është konfigurimi i vërtetimit të bazuar në certifikatë për SSH midis hostit rezervë dhe hostit burimor. Kjo do të mundësojë që serveri burim të SSH në hostin rezervë pa shtypur një frazë kalimi. Vultr ka një artikull të shkëlqyeshëm që shpjegon se si ta bëjmë këtë: Si të gjeneroj çelësat SSH .
Rezervimet
Ekzekutimi i rezervës së parë (të plotë).
Le të bëjmë një kopje rezervë të plotë! Kjo do të dërgojë një kopje të plotë të të dhënave nga serveri burim në destinacion.
duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Ju mund të shtoni dosje shtesë duke përfshirë --include="[dir]"deklarata të shumta .
Të --no-encryptionspecifikon se të dhënat nuk janë të koduar në destinacion. Të dhënat do të kodohen gjatë transportit ndërsa po kalojnë nëpër tunelin SSH.
--exclude="**" /Opsion është një mashtrim për çdo gjë rezervë që është vetëm në të përfshijë listë (dhe asgjë tjetër).
Ekzekutimi i rezervimit në rritje
Kryerja e një kopje rezervë shtesë është shumë e thjeshtë - thjesht ndryshoni fullflamurin në incrementalflamur.
duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Automatizimi
Shkruani skripta të automatizuara
Të duhet të ekzekutosh këto komanda sa herë që të nevojitet një kopje rezervë është një zvarritje - po sikur të kishim skripta për ta trajtuar atë për ne?
Skript i plotë rezervë
Ekzekutoni komandën.
nano /usr/local/bin/backup-full
Shtoni përmbajtjen e mëposhtme.
#!/bin/bash
duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Skript shtesë rezervë
nano /usr/local/bin/backup-incremental
Shtoni përmbajtjen e mëposhtme.
#!/bin/bash
duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Bëni skriptet të ekzekutueshme
Për t'i bërë skriptet të ekzekutueshme, ekzekutoni komandën e mëposhtme.
chmod +x /usr/local/bin/backup-*
Tani mund të kryeni një kopje rezervë duke ekzekutuar backup-fulldhe backup-incrementalnga brenda shell. Shum bukur!
Konfiguro cron
Le t'i bëjmë kopjet rezervë automatike! Duke vendosur cron për të ekzekutuar skriptet e mësipërme në kohë të caktuara, mund të sigurohemi që kopjet rezervë të kryhen në intervale të rregullta.
Ekzekutoni komandën e mëposhtme.
crontab -e
Shtoni sa vijon në fund të skedarit.
10 01 * * 1,2,3,4,5,6 backup-incremental
10 01 * * 7 backup-full
Kjo do të ekzekutojë një kopje rezervë të plotë çdo të dielë në orën 1:10 të mëngjesit dhe do të ekzekutojë kopje rezervë shtesë çdo ditë tjetër në orën 1:10 të mëngjesit gjithashtu.
Restaurimi
Godzilla ka shkatërruar Seattle dhe ne duhet të jemi në gjendje t'i marrim të dhënat nga VPS rezervë në Nju Jork!
duplicity --no-encryption --file-to-restore / ssh://user@backupserver:22/destdir/
Nëse na duhet të rivendosim të dhënat e 3 ditëve më parë:
duplicity --no-encryption -t 3D --file-to-restore / ssh://user@backupserver:22/destdir/
Të -t 3DMjetet opsion rivendosur një kopje rezervë nga tre ditë më parë. Opsione të ngjashme si -t 1M(për një muaj më parë) ose -t 5H(për 5 orë më parë) gjithashtu funksionojnë.