Mòdul Professional 6 - UF2: TREBALL Còpies de Seguretat
Índex
1. Llicència d'ús
2. Imatges
Aquestes són les imatges del Servidor Moodle necessàries per fer les còpies i per desprès, un cop fetes, verificar que són suficients per recuperar el sistema en cas d'error crític.
- OVA Servidor Moodle (FUNCIONAL). Mateixa imatge però des del ROBUST del institut.
- OVA Servidor Moodle (AMB ERROR, ON CAP RECUPERAR EL MOODLE AMB LES CÒPIES FETES). (versió ROBUST)
2.1. Credencials
Els usuaris/contrasenyes de les màquines són:
- S.O.: root/L4c3t4n14! i rgimenezh/moltdificil
- MariaDB: root/L4c3t4n14!
- Usuari de MariaDB per Moodle: moodleuser/L4c3t4n14!
- Moodle: admin/L4c3t4n14!
2.2. Modificacions prèvies
Pel que fa a la xarxa, perquè la VM funcioni correctament i pugueu veure el Moodle que hi té instal·lar cal:
- Modificar
/etc/network/interfaces
i col·locar-hi una IP estàtica del vostre rang personal. - Modificar l'arxiu de
hosts
del vostre equip perquè l’adreçamoodlebackup.cat
apunti a la IP estàtica que heu assignat a Moodle.
3. Què cal fer?
El document és molt gran, per a donar-vos una idea ràpida de què cal que feu i entregueu a la memòria, és bàsicament:
- Implementació: Tot l'apartat d'implementació.
- Simulacre: Utilitzar l'OVA del servidor Moodle amb error i volcar-hi la còpia generada. Verificar que tot ha anat bé i podeu accedir al Moodle. En cas de que no hi pugueu accedir, analitzeu i documenteu les causes i com ho arranjarieu-ho.
4. Planificació
4.1. Estudi del sistema
DADES | MIDA | FREQÜÈNCIA CANVIS |
---|---|---|
/var/www/html | 277 Mb | Anual / bianual |
/var/www/moodledata | 19Mb->60 Gb | Diària |
Base de dades | 1,4Mb | Diària |
/etc | 5Mb | Anual |
4.1.1. Relacions (integritat):
Les tres primeres són del Moodle i per tant s'han de tractar igual.
Tot i que etc ho podem tractar separat, donat que ocupa tant poc, o inclourem amb la resta de dades del Moodle.
4.2. Requisits del sistema de còpies
4.2.1. Marge de recuperació
Tenir còpies de 24 hores abans.
4.2.2. Històric
A nivell legislatiu necessitem guardar notes del curs anterior, per tant esborrarem dades de 18 messos d'antiguitat (a partir del Gener eliminem dades del curs anterior començant per Setembre).
4.2.3. Emmagatzematge de còpies
Servidor de còpies (Debian) simuli un servior extern i on farem la transferència utilitzant el servei SSH amb la comanda scp
.
4.3. Temporització
4.3.1. Finestra de còpies
Farem còpies a partir de les 2:00 AM per evitar les hores típiques de treball i entrega d'activitats.
4.3.2. Esquema de còpies
- Completa
- Primer dia de mes.
- Diferencials
- Cada divendres.
- Incrementals
- Diàries.
Eliminar arxius >= 18 messos d'antiguitat.
5. Implementació
IMPORTANT: Aquesta és la part que heu de resoldre vosaltres de forma autònoma. El "cap" us ha donat les instruccions de fer el sistema de còpies del Moodle especificat abans, i vosaltres heu d'implementar-ho.
5.1. Srv Moodle
En el servidor del Moodle crearem i progrararem uns scripts per fer les còpies de seguretat, que desrpés seràn recollides pel servidor de còpies mitjançant scp
.
5.1.1. MySQLDump
Recordeu que per fer còpia de la base de dades no podem copiar els arxius sinó que cal fer una còpia amb la comanda mysqldump
. La sintàxis és:
mysqldump [opcions] <bbdd> > <arxiu_sortida>
Per exemple:
mysqldump -u root -pL4c3t4n14! moodle > backup_bbdd-$(date +%Y-%m-%d).sql
NOTA: Fixeu-vos en el detall que no hi ha espai entre l'opció
-p
i el password.
NOTA: Remireu l'apartat de Dates automàtiques de l'apartat dedicat a TAR.
5.1.2. TAR
Els noms dels arxius resultatns han de ser:
- completa-ANY-MES-DIA.tar.gz
- diferencial-ANY-MES-DIA.tar.gz
- incremental-ANY-MES-DIA.tar.gz
Totes les dates han de ser automatitzades (agafades el sistema).
IMPORTANT: Assegureu-vos de que els
tar
estàn funcionant correctament i fan còpies completes, diferencials i incrementals de forma respectiva. Això vol dir que cal que feu proves ja que si en corregir això no funciona el sistema de còpies no servirà de res i per tant la pràctica estarà mal feta!!!
NOTA: Recordeu que
tar
funciona diferent a altres comandes, el primer paràmetre és el destí i el segon (i següents) els origens de dades per fer el TAR.
- TAR Complert
Simplement fent un tar.
- TAR Diferencial
Amb el paràmetre
-N
seguit de la data de l'última complerta. Aquesta data ha de ser automàtica (no pot ser fixa). - TAR Incremental
La incremental utilitza el paràmetre
-g
seguit d'un arxiu on es guardarà ua snapshot de l'estat del fitxers. Quan tornem a llançar un tar amb el mateix paràmetre i mateix arxiu, compararà els arxius a comprimir amb la snapshot i tan sols copiarà els que s'hagin modificat. - Dates automàtiques
Per posar noms i dates que s'actualitzin de forma automàtica amb la data i hora del sistema heu d'utilitzar la comanda
date
amb els paràmetres adients per a que us mostri (mireu el tutorial per tenir exemples).Si volem incloure el valor retornat dins d'un text (per exemple el nom d'un arxiu) haurem de posar la comanda entre accents oberts
$(date)
.
5.1.3. Script final
Caldrà generar scripts per als tres tipus de còpies. El que cal que facin és:
- Eliminar les còpies anteriors (ja estàn teòricament al servidor de còpies).
- Fer còpia de la base de dades amb
mysqldump
. - Fer la còpia corresponent amb
tar
.
5.1.4. CRON
Caldrà programar l'execució dels scripts seguint l'esquema de còpies.
IMPORTANT: Vigileu de nou en entendre com esteu programant l'execució dels scripts amb el CRON i verifiqueu que realment esteu programant seguint l'esquema de còpies plantejat.
5.2. Srv Còpies
Cal muntar un servidor de còpies per emmagatzemar tots els arxius i simular que tenim un servidor en un altre edifici on tindrem les còpies segures. Aquest servidor tan sols cal que siguin un Debian amb el servei SSH.
Serà l'encarregat de connectar-se al servidor de Moodle, recollir els arxius de backup i eliminar els backups superiors a 18 messos.
5.2.1. SCP
La comanda scp
serveix per fer còpies entre ordinadors remots sempre que l'ordinador remot tingui un servidor ssh com openssh-server
. La comanda és tal com:
scp <origen> <destí>
On:
- origen
- Si és el servidor remot SSH (enm aquest cas el servidor de Moodle) indicarem l'origen de la còpia de la següent forma: <usuari>@<srvremot>:<pathdestí> (p.e.: root@10.34.12.22:/tmp/backup*).
- destí
- Path cap a la carpeta destí con copiarem les dades (p.e.: backup).
- SSHPASS
La comanda
scp
demanarà password cada cop que s'executi, per automatitzar-ho del tot l'haurem de combinar ambsshpass
que té el format:sshpass -p <password> <comanda SSH/SCP>
i per tant la comanda final serà quelcom semblant a:sshpass -p moltdificil scp /tmp/complerta-*.tar rgimenezh@10.34.22.33:/backup/
5.2.2. Eliminar arxius anteriors als 18 messos
A partir d'aquí creeu uns scripts en aquest servidor que, mitjançant la comanda scp
, s'endugui les còpies fetes, les elimini un cop copiades del servidor de Moodle i finalment elimini de si mateix els arxius més antics de 18 messos.
Per fer-ho caldrà utilitzar la comanda find
amb els paràmetres -mtime
i -delete
tal que així:
find /backup/* -mtime +5 -delete
On:
- /backup/*
- És el directori i els arxius a eliminar.
- -mtime
- Són els dies d'antiguitat dels arxius, en el exemple +5 significa 5 dies d'antiguitat.
- -delete
- Eliminar els arxius.
5.2.3. Scripts i CRON
Cal automatitzar que unes hores després de fer les còpies, el servidor de còpies les reculli i també elimini els arxius d'històric sobrants. Per tant:
- Fer un
scp
per recollir les còpies del servidor de Moodle. - Eliminar les còpies més antigues de 18 messos.
6. Procediments
6.1. Gestió i emmagatzematge de còpies
Les còpies es gestionaràn totalment amb l'usuari root i per tant tan sols l'administrador del sistema en tindrà accés i control.
A nivell d'emmagatzematge, el servidor de còpies estarà en una sala distanciada del servidor de Moodle, a l'aula 1.33 (Coordinació Informàtica). A aquesta sala tan sols hi tindrà accés el personal de la Coordianció de la mateixa forma que a l'armari on hi ha el servidor de còpies.
El Servidor de còpies tan sols tindrà el compte root habilitat, que disposarà de contrasenya l'administrador del sistema.
6.2. Recuperació de còpies
Per a realitzar una recuperació parcial ho podrà solicitar el propietari de la infomració en qüestió, o en el seu defecte el Cap de Departament de l'àrea associada.
Per a una recuperació total, caldrà el vist i plau de l'administrador i del director del centre.
6.3. Simulacres
Es realitzarà un simulacre de recuperació a principis d'any, no més tard del 31 de Març. Per fer-ho es recuperaràn les dades del dia anterior sobre un servidor de característiques de HW similars a les del Servidor Moodle actual.
Aquest simulacre el realitzarà el Administrador, junt amb el personal de la Coordinació Informàtica i es registraràn temps de recuperació així com qualsevol incidència de cara a millorar el sistema de còpies.
7. Entrega
La memòria del treball ha de contenir:
- Implementació del sistema de copies amb proves de funcionament.
- Verificació de les còpies
8. Webgrafía
Recursos per repassar els conceptes de M2 i cerca ajuda de forma autònoma:
- Nebul4ck: Tutorial en castellà sobre com utilitzar la comanda
tar
per fer els diferents tipus de còpies (completa, diferencial i incremental). - GeekyTheory: Explicació de com programar tasques amb
crontab
. - CronTab Guru: Web on podeu posar la vostra configuració de la temporització de
crontab
i verificar que fa el que espereu. També conté explicacions, exemples i trucs. - ExplainShell: Aquí podeu escriure una comanda concreta de la shell de Linux i us explica paràmetre a paràmetre que fa cada cosa.
- Redhat: Petit tutorial d'ús de
sshpass
. - LinuxTotal: Tutorial de com utilitzar
mysqldump
. - ubunlog: Exemples d'ús de la comanda
date
, però no hi ha com aniuar-la amb els accents oberts. - StackExchange: Com eliminar arxius més antics que X dies amb la comanda
find
.