Visió general
Configuració de l'entorn
Còpies de seguretat
Automatització
Restauració
Visió general
Tot i que Vultr té un sistema de còpia de seguretat per a les imatges del sistema sencer, això funciona a nivell de bloc i requereix que la còpia de seguretat es restableixi a una màquina virtual abans que es puguin restaurar les dades. A més, les còpies de seguretat només s'emmagatzemen durant un curt període de temps i no proporcionen una veritable solució de còpia de seguretat incremental.
Introduïu Duplicity: Duplicity es basa en el llegendari rsync i ofereix la possibilitat d'emmagatzemar còpies de seguretat incrementals juntament amb xifrar les dades en repòs mitjançant GPG. És compatible amb Posix i només transfereix deltes entre execucions de còpia de seguretat, reduint així el requisit general d'amplada de banda.
Configuració de l'entorn
Terminologia
- Amfitrió d'origen: servidor del qual es farà una còpia de seguretat de les seves dades. Per a aquest tutorial, té l'adreça IP: 10.1.10.1
- Amfitrió de còpia de seguretat: servidor de destinació per a les còpies de seguretat. Per a aquest tutorial, té l'adreça IP: 10.1.10.2
- /backupdir: directori font a l'amfitrió font utilitzat per a les còpies de seguretat en aquest tutorial. Podeu canviar-ho perquè coincideixi amb el vostre entorn.
- /destdir - Directori de destinació a l'amfitrió de còpia de seguretat utilitzat per a les còpies de seguretat en aquest tutorial. Podeu canviar-ho perquè coincideixi amb el vostre entorn.
- Còpia de seguretat completa: còpia sencera del conjunt de dades d'origen.
- Còpia de seguretat incremental - Còpia de tots els canvis fets des de l'última còpia de seguretat.
Instal·lació de Duplicity
Ubuntu 14.04:
sudo apt-get update
sudo apt-get install duplicity python-paramiko
CentOS (requereix 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
Hem d'instal·lar des del codi font, ja que el paquet Duplicity de Debian 7 i Ubuntu 12.04 estan trencats a causa d'un canvi a la biblioteca SSH de fons.
Comproveu que Duplicity estigui instal·lat executant:
duplicity -v
Hauria de retornar la següent sortida (la versió pot ser diferent):
duplicity 0.6.18
Configuració de l'autenticació sense clau per a SSH
El següent pas és configurar l'autenticació basada en certificats per a SSH entre l'amfitrió de còpia de seguretat i l'amfitrió d'origen. Això permetrà que el servidor d'origen faci SSH a l'amfitrió de còpia de seguretat sense escriure una frase de contrasenya. Vultr té un article fantàstic que explica com fer-ho: Com puc generar claus SSH .
Còpies de seguretat
Execució de la primera còpia de seguretat (completa).
Fem una còpia de seguretat completa! Això enviarà una còpia completa de les dades del servidor d'origen a la destinació.
duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Podeu afegir carpetes addicionals incloent diverses --include="[dir]"declaracions.
Les --no-encryptionespecifica que les dades no s'ha de xifrar en la destinació. Les dades es xifraran durant el transport a mesura que passin pel túnel SSH.
L' --exclude="**" /opció és un truc per fer una còpia de seguretat de tot el que només es troba a la llista d'inclusió (i res més).
S'està executant una còpia de seguretat incremental
L'execució d'una còpia de seguretat incremental és molt senzill: només cal que canvieu la fullmarca a la incrementalbandera.
duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Automatització
Escriure scripts automatitzats
Haver d'executar aquestes ordres cada vegada que necessiteu una còpia de seguretat és un arrossegament; i si tinguéssim scripts per gestionar-ho per nosaltres?
Script de còpia de seguretat completa
Executeu l'ordre.
nano /usr/local/bin/backup-full
Afegeix el següent contingut.
#!/bin/bash
duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Script de còpia de seguretat incremental
nano /usr/local/bin/backup-incremental
Afegeix el següent contingut.
#!/bin/bash
duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" / ssh://user@backupserver:22/destdir/
Fer que els scripts siguin executables
Per fer que els scripts siguin executables, executeu l'ordre següent.
chmod +x /usr/local/bin/backup-*
Ara podeu fer una còpia de seguretat executant-lo backup-fulli backup-incrementaldes de l'intèrpret d'ordres. Molt xulo!
Configura cron
Fem les còpies de seguretat automàtiques! Si configureu cron per executar els scripts anteriors a hores especificades, ens podem assegurar que les còpies de seguretat es realitzen a intervals regulars.
Executeu la següent comanda.
crontab -e
Afegiu el següent a la part inferior del fitxer.
10 01 * * 1,2,3,4,5,6 backup-incremental
10 01 * * 7 backup-full
S'executarà una còpia de seguretat completa cada diumenge a la 1:10 a. m. i també s'executarà còpies de seguretat incrementals cada dos dies a l'1:10 a. m.
Restauració
Godzilla ha destruït Seattle i hem de poder recuperar les dades del VPS de còpia de seguretat de Nova York!
duplicity --no-encryption --file-to-restore / ssh://user@backupserver:22/destdir/
Si necessitem restaurar dades de fa 3 dies:
duplicity --no-encryption -t 3D --file-to-restore / ssh://user@backupserver:22/destdir/
L' -t 3Dopció significa restaurar una còpia de seguretat de fa tres dies. També funcionen opcions similars com -t 1M(fa un mes) o -t 5H(fa 5 hores).