PR-BK-01
Rev.: 00
Calesita
1. renombrar los directorios de backup de modo que el de "hoy" (daily.0) se llame "ayer" (daily.1), el de "ayer" sea "anteayer" (daily.2) y así sucesivamente. De aquí viene lo de 'calesita' porque los directorios van "girando"
2. copiar en el directorio de 'hoy', con hardlinks*, el backup de 'ayer'
3. traer los cambios (archivos nuevos, cambiados o borrados) desde los servidores a respaldar al directorio de "hoy"
4. Si es domingo o primero de mes se crea un directorio limpio "hoy" para que la siguiente copia de enlaces inicie limpia*. Luego se limpia el último directorio de la serie (daily.6, weekly.3)
Va adjunto el script
* Un hardlink es una entrada en la tabla de directorio que dice a que inodo y bloques de datos apunta un archivo, a diferencia de los symlink , que solo son un puntero a un archivo, de modo que si se borra el archivo original queda un symlink "roto" que apunta a algo inexistente. Se puede hacer varias copias y si se borra alguna de ellas las otras siguen en su lugar (solo se saca la entrada, y las copias de los archivos realmente no ocupan mas espacio que esta entrada en la tabla de directorios). Con esto se crea la ilusión de tener una copia completa, pero los archivos que no cambiaron entre cada backup en realidad no son transferidos ni ocupan mas espacio que en su lugar original; de ahí el nombre de "cuántico", porque los archivos están y no están en los directorios de cada backup.
Conviene empezar cada noche copiando los enlaces a un directorio en blanco (ver notas al respecto en http://www.mikerubel.org/computers/rsync_snapshots/#Incremental ), pero en nuestro caso caso es tal el volumen de información que cuando empecé a escribir el script propio a veces tomaba hasta día y medio el borrado, eso creaba el problema que cuando arrancaba el backup de "hoy" todavía seguía limpiando ayer y en realidad no se había hecho la copia de datos y se acumulaban los trabajos de backup sin que se haga realmente. La limpieza del último mensual la hago manualmente, y repartida durante varios días, un poco cada día, un par de veces al año.
Se ejecuta todas las noches, y se guardan los últimos 6 días, los últimos 3 domingos y el primero del mes actual y del anterior. Se almacena fundamentalmente servidores de archivos: anexolx, campusfs, campuslx, central, central-campus, dnsa, dnsb, firmadigital, haproxy, logger, odevdb, oraapex, oraprod, tomeeplume, wl-forms11g, wl12prod, www, wwwdesa
Termina, según el volumen de archivos modificados (nuevos y borrados), entre 3 y 10 de la mañana.
Diario
Es un simple rsync de todo* el servidor que se actualiza cada noche con los cambios en los servidores (archivos nuevos, modificados y borrados). Al terminar, envía al storage de tape-backup la orden para copiar en cinta los backups.
Los servidores resguardados son: campuslx, anexolx, campusfs, anexofs, wl12prod, central, central-campus, central-a, central-me, oraapex, tomeeplume, haproxy, notas, wwwdesa, www, logger, dnsa, dnsb, firmadigital, oraprod, oraprod_dump, odevdb, tomeegen, tomeegen1, itop, arzo-www, arzo-tomee, arzo-ldap, arzo-pg-prod
*excluyendo directorios de archivos temporales y logs
Cinta
Iniciando con una copia completa de un servidor a hacer backup, se realiza en cuatro pasos:
1. traer de los servidores de backup (calesita y diario) con rsync las diferencias (solo archivos modificados o nuevos) y almacenarlos en un directorio de diferencias
2. actualizar con rsync desde los servidores de backup la copia completa para poder trabajar al día siguiente con las nuevas diferencias
3. grabar en cinta el directorio con las diferencias
4. actualizar la copia completa que se guarda en otro servidor de pellegrini
5. Se alamacen la copia física de la cinta en caja fuerte de pellegrini