Categorías

Linux #03.13 Copias de Seguridad en Linux

¿Por qué Hacer Copias de Seguridad?
¿A Qué se Debe Hacer una Copia de Seguridad?
Políticas de Copias de Seguridad. Tipos Backups
Medios Utilizados para el Almacenamiento de Backups
Comandos y Aplicaciones Utilizados en la Realización de Backup

¿Por Qué Hacer Copias de Seguridad?

Un administrador de sistemas tiene una amplia variedad de tareas importantes, una de todas ellas es la realización de backups o copias de seguridad y la restauración del sistema en el caso de pérdida de datos.

Las copias de seguridad o salvaguarda del sistema son, con frecuencia, el único mecanismo de recuperación que poseen los administradores para poder restaurar una máquina, que por cualquier motivo, haya perdido DATOS.

Realizar backups del sistema, y su posterior verificación, es una forma importante de proteger los datos de posible corrupción o pérdida debido a algún tipo de fallo ya sea tanto hardware o software como humano.

No siempre es posible predecir o prevenir virus, accidentes, desastres naturales o ataques en tu sistema, por lo tanto es muy conveniente la realización de copias de seguridad periódicas de los datos del sistema.

Los DATOS es algo tan importante que en muchos casos no pueden ser reemplazados.

Los principales propósitos para realizar backups en un sistema son:

  • Permitir la restauración de ficheros individuales.
  • Permitir la restauración de sistema de ficheros enteros.

A continuación se van a numerar algunas de las razones por las que hacer copias de seguridad en una organización es muy importante:

  • Fallos de hardware: Los dispositivos hardware pueden estropearse.
  • Errores del usuario: Que se borren archivos o se sobrescriban accidentalmente.
  • Errores del administrador: Que se borre algún fichero o alguna cuenta de usuario por error.
  • Fallos de Software: Las aplicaciones informáticas pueden fallar dando lugar a una pérdida de DATOS.
  • Hacking: Que alguien entre en el sistema sin autorización y borre ficheros intencionadamente.
  • Robo: Una máquina se puede reemplazar en cambio los DATOS no.
  • Desastres naturales: Lluvia, Fuego, temblores de tierra. Pasa lo mismo que con Robo.
  • Otro tipo de desastres: explosiones, etc…

¿A Qué Se Debe Hacer una Copia de Seguridad?

Antes de comenzar a realizar un backup se debe decidir qué DATOS son importantes. Se debe decidir que ficheros se deben copiar para poder recuperar el sistema en el caso de que ocurra un problema.

Hay dos formas de pensar respecto a la realización de copias de seguridad:

  • Copiar sólo lo que sea único al sistema, incluyendo ficheros de usuarios, bases de datos, ficheros de configuración que se hayan modificado e importantes directorios del sistema que se hayan modificado.
  • Copiar Todo, porque restaurar un sistema completo es más fácil que restaurar uno incompleto y el medio de almacenamiento no es tan caro.

Lo que realmente se recomienda es hacer copias de seguridad de forma periódica a ficheros que contengan información vital del sistema o información de los usuarios.

Es interesante el tomar notas de todos los cambios que se hacen al sistema porque a la hora de realizar copias de seguridad es más fácil el hacer decisiones sobre lo que se debe copiar. Si se copia todo el sistema puede resultar muy caro debido al coste del medio de almacenamiento.

Existen distintas categorías de datos, y cada una de ellas requiere un plan de actuación independiente.

  • Sistema Operativo: Dependerá del proceso de instalación y actualización del sistema operativo. Se suelen tener los CDs de instalación por lo tanto no suele ser necesaria su copia. Si se han hecho cambio en el SO, se podrían sólo archivar dichos cambios, aunque con el paso del tiempo es difícil recordar todos los cambios realizados.
  • Aplicaciones: No se deben copiar las aplicaciones ya que se suelen tener los CDs de instalación o se pueden obtener de Internet
  • Ficheros y directorios del sistema. Algunos de los ficheros o carpetas a los que se debe hacer copia de seguridad:
    • Ficheros de configuración de /etc (/etc/passwd, /etc/inittab, /etc/crontab, /etc/fstab etc).
    • Ficheros de configuración de otros directorios como /usr/lib
    • Por supuesto se deben backup el directorio de cada usuario en /home
    • Importantes directorios del sistema que se hayan modificado como /bin, /usr/bin
    • También se pueden copiar los mensajes de correo de cada usuario del sistema.
    • Las fuentes del kernel si has actualizado o compilado tu propio kernel (/usr/src/linux)
    • No se deben hacerse copias del sistema de archivos virtual /proc, dispositivos montados en /mnt, de sistemas importados por la red, ni archivos temporales en /tmp
    • Ficheros especiales como shell o perl scripts.
    • Ficheros relacionados con la ejecución de un proyecto importante.

Políticas de Copias de Seguridad. Tipos Backups

1. Copia de Seguridad Completa:

También llamada Total o full backup. Se copian todos los datos, es decir, todos los archivos del sistema se copian al medio de almacenamiento.

  • Ventajas: Facilidad de realización.
  • Inconvenientes: Proceso muy lento, se consumen muchos recursos, y dificultad en el proceso de restauración al tener mayor número de cintas.

2. Copia de Seguridad Incremental o Progresiva:

Llamado Incremental backup. Con este tipo se hace copia a todos los archivos que han sido modificados desde realización de la última copia de seguridad (ya sea total o incremental).

Para localizar los ficheros modificados en los últimos 7 días: find /export/home/ -mtime 7 -print

  • Ventajas: Se ahorra tiempo en la ejecución del proceso. Se requiere menor capacidad de almacenamiento.
  • Inconvenientes: El proceso de restauración es más complejo. Se requiere una restauración completa y todas las incrementales hasta la fecha.

3. Copia de Seguridad Diferencial:

Differential Backup. Se hace copia a todos los archivos modificados desde la última copia total.

  • Ventajas: El proceso de restauración es más simple. Se requiere sólo la última copia completa y la última copia de seguridad diferencial.
  • Inconvenientes: Produce cierta redundancia de datos. Requiere mayor espacio en medio de almacenamiento y más tiempo de ejecución.

NIVELES DE COPIA DE SEGURIDAD

Copias completas son de Nivel 0. Las copias de nivel 1 guardan los archivos modificados desde la última copia de nivel 0 (desde el último backup completo) y las copias de nivel 2 guardan los archivos modificados desde la última copia de nivel 1, y así sucesivamente.

En realidad el nivel máximo utilizado en la práctica es el 2.

ESTRATEGIAS HABITUALES

Un plan de copias típico podría ser realizar periódicamente copias de nivel 0 y entre ellas copias de nivel 1.

Por ejemplo, hacer una copia total semanalmente y realizar copias incrementales o diferenciales cada día.

Otro ejemplo de estrategia podría ser: Copia total del sistema una vez al mes, y cada noche copiar los archivos que se hayan modificado en las últimas 24 horas o copiar cada semana los archivos que hayan cambiado en la última semana.

Los administradores de sistemas normalmente hacen un plan de copias según las particiones del disco. Las diferentes particiones requieren distinta planificación de copia de seguridad en la mayoría de los escenarios.

Algunas particiones, como /etc y los sistemas de ficheros de root deberían tener una copia de seguridad después de que se haga algún cambio que es demasiado importante para perder. Se debería hacerse copias totales de estos ficheros.

Por otro lado, se deberían realizar copias incrementales o diferenciales de las particiones que son solo usadas para almacenar archivos de usuarios.

Si se hacen backups de las particiones que tengan aplicaciones y programas, estas se deberían hacer cuando nuevos programas se hayan instalado o se haya hecho algún cambio importante.

Medios Utilizados para el Almacenamiento de Backups

Existen multitud de dispositivos diferentes donde almacenar nuestras copias de seguridad, desde un disco flexible hasta un SAN pasando por distintas unidades de cinta magnética de última generación, pero cada uno de estos medios va a tener sus ventajas e inconvenientes.

Las copias se deben hacer sobre un medio independiente del sistema, un medio que al mismo tiempo sea fiable, relativamente rápido, barato y de capacidad suficiente.

Tanto se utilice un medio como otro lo más importante a destacar es que este sea estándar.

Cada administrador deberá elegir el medio que más se adapte a las necesidades de su sistema informático. La elección de un medio u otro dependerá de muchos factores tales como:

  • La cantidad de datos a copiar
  • El tiempo disponible
  • El presupuesto del que se disponga.

Algunos de los medios de almacenamiento utilizados en la realización de backups en Linux son: cintas magnéticas, floppies, discos, CDs, DVDs, y el almacenamiento en Red. Estas son algunas de las ventajas e inconvenientes de los mismos: Ver imagen

Capacidades aproximadas de los distintos medios.

Cintas: 40GB-320GB

DVD: 4GB

CD: 700MB

Discos: 500GB

La lista de dispositivos disponibles en /dev pueden encontrarse en un archivo de texto que se encuentra en /usr/src/linux/Documentacion/devices.txt que se genera al descomprimir las fuentes del kernel. Algunos de ellos a modo de ejemplo:

/dev/ht0: IDE tape drive

/dev/nt0: IDE tape drive no rewind supported

/dev/rst0: QIC tape drive

/dev/st0: SCSI tape drive

/dev/iseries/vt0: IBM iseries tapes

El enlace simbólico que se suele utilizar para las cintas es /dev/tape

CINTAS MAGNÉTICAS

Los dispositivos de backup por excelencia hasta el momento han sido las cintas magnéticas, ya que presentan ciertas ventajas frente a otro medio, estas podrían ser alta capacidad, fiabilidad, durabilidad de los datos. Pero en cambio, las cintas también presentan algunas desventajas, como podrían ser su lentitud y su uso limitado.

Hay una amplia variedad de tipos de cintas disponibles y Linux soporta la mayoría. El siguiente cuadro muestra algunas de las características de algunos tipos de cintas magnéticas disponibles en el mercado: Ver imagen

Además de todos estos tipos, existen otras clases tales como AIT (Advance Intelligent Tape), 3480 Tape, 3490 Tape, 3590 Tape, 9840, 9940. Y entre los fabricantes de cintas magnéticas nos encontramos con Imation, Quantum, Fuji, Maxell, HP, IBM, TDK, Verbatim, Seagate  Sony. (Ver fotografía)

Además existen bibliotecas y racks de unidades de cintas magnéticas que son utilizadas, sobre todo, para el almacenamiento de datos. Hay bibliotecas pueden llegar a almacenar hasta 300.000 cintas.

Si cada cinta es capaz de almacenar 200GB, en total se almacenarían unos 60000TB.

Comandos y Aplicaciones Utilizados en la Realización de Backup

En Linux hay una gran variedad de programas que permiten al administrador de sistemas realizar copias de seguridad. Estos programas van desde la realización de un script, que se automatiza con cron, hasta la utilización de paquetes de software.

Cada distribución ofrece distintas herramientas para realizar esta tarea y cada una va a tener sus beneficios dependiendo del entorno.

Dentro de las utilidades que existen para realizar backups hay dos tipos:

  • Las orientadas a copiar sistemas de ficheros enteros.
  • Las orientadas a copiar ficheros y directorios individualmente.

Una característica importante a la hora de realizar backups es el poder seleccionar archivos del backup a la hora de la restauración.

Esto te permite el sólo tener que restaurar ciertos archivos, en caso de que accidentalmente se borren, en lugar de tener que realizar la restauración completa.

Pasemos a nombrar los programas más comunes, incluyendo tanto comandos como aplicaciones basadas en GUI.

CP:

La forma más sencilla de realizar copias sería el hacer simples copias de los ficheros y directorios. Da la opción de copiar ficheros y directorios individualmente, pero no empaqueta ni comprime. Solo se utiliza en las ocasiones que se necesiten copiar ficheros pequeños.

DD:

Este comando se usaría para copiar bloques de datos. Por ejemplo, un sistema de ficheros entero, copia de un disco duro completo. Es útil para transferir backups a cintas con dd if=backup.gz of=/dev/nrsa0

DUMP/RESTORE:

“dump” es un programa clásico y disponible en la mayoría de las distribuciones.

Lo que consigue dump es un volcado de datos, es decir, escribe en el medio de almacenamiento un bloque de datos correspondiente a un Sistema de Ficheros completo. Este comando es válido para los sistemas de ficheros ext2 y ext3.

Hay distintas versiones de dump y restore, rdump/rrestore se pueden usar para hacer copias de seguridad a través de la red.

Las opciones más usadas de dump:

0-9: Dump Levels

-b: blocksize

-u: actualiza /etc/dumpdates al finalizar la copia.

-f: indica el dispositivo

“restore” es la orden que se utiliza para la recuperación de los datos, es decir, es un programa para extraer sistemas de ficheros completos de backups realizados con dump.

Las opciones más usadas:

-r: Restaura cinta completa.

-f: Indica el dispositivo donde está el backup.

-i: Modo interactivo.

-x: Extraer.

-t: Imprime los nombres de los archivos.

TAR: TAPE ARCHIVER

“tar” es una herramienta de fácil manejo que está disponible en todas las distribuciones de Linux.

Es la opción más usada. Permite volcar ficheros individuales o directorios completos a un único archivo contenedor. Versión estable:tar-1.15.1

Opciones más usadas de tar:

-c: create. Crea contenedor

-x: Extrae de un contenedor

-t: Lista archivos de un contenedor

-r: append. Añade archivos al final de un contenedor.

-v: verbose

-f: file

-p: para conservar los permisos

-z: compresión/descompresión gzip/ungzip

-M: para crear multivolumenes

Tar sólo realiza copias completas por si solo, haría falta un script para realizar copias progresivas y diferenciales.

La compresión reduce la cantidad de capacidad de almacenamiento requerido, pero si algún dato del contenedor comprimido se encuentra corrupto, podría ocurrir que no se pudiera descomprimir por lo que se perderían todos los datos.

Si en cambio, hay un mínimo error en una tar sin comprimir, este se podría recuperar.

CPIO: COPY IN OUT

Este comando es similar a tar, cpio copia ficheros a y desde un contenedor, admite archivos binarios, ASCII. Tiene la opción de enviar mediante una tubería datos a otros programas.

Opciones más usadas de cpio:

-o: copiar fuera “out”. Genera un contenedor en stdout

-i: copiar dentro “in”. Extrae archivos de stdin

-t: verificar tabla de contenido

Ventaja respecto a tar: Empaqueta los datos más eficientemente, pero presenta el inconveniente que no es fácil de usar cuando se necesitan varios volúmenes. Versión: cpio-2.6.2

AFIO:

Soporta la realización de backups multivolumen y es muy similar a cpio.

Afio utiliza compresión, y es más fiable porque cada archivo se comprime individualmente. En caso de corrupción de algún dato, no todo el backup se pierde, si no que el daño queda aislado a archivos individuales.

Licencia LGPL. Versión estable: afio-2.5-2

TAPER:

Es una solución fácil de usar para realizar backups.

Esta aplicación puede realizar full backups, incrementales y diferenciales.

Está diseñado para hacer copias en cintas aunque puede realizar las copias en discos y en los distintos dispositivos de almacenamiento que Linux soporta.

Esta aplicación se puede usar tanto en consola como con GUI.

Taper mantiene un fichero que da información acerca de los ficheros que hay en el archivo empaquetado. Última versión estable: 6.9b. No soporta archivos > 4GB

PAX:

Este comando está definido bajo el estándar de POSIX. Se creó porque las distintas versiones de tar y cpio se fueron haciendo incompatibles. Este comando combina la funcionalidad d tar y cpio.

Pax lee y escribe en varios de los formatos de cpio y tar además de tener sus formatos propios.

FLEXBACKUP:

Flexbackup es fácil de configurar y usar.

Se usa en consola. Utiliza dump, afio, tar, cpio, pax.

Puede realizar distintos tipos de backups, total, incremental y diferencial.

Puede realizar compresión a distintos niveles.

Mantiene una tabla de contenido y ficheros log.

El fichero de configuración de Flexbackup: /etc/flexbackup.conf.

man flexbackup y man 5 flexbackup.conf

Versión estable: flexbackup-1.2.1

AMANDA: ADVANCED MARYLAND AUTOMATIC NETWORK.

Esta aplicación es de software libre aunque no es GNU. Amanda es una aplicación cliente-servidor que permite hacer copias de seguridad remotas a través de la red. Este programa requiere un servidor con gran capacidad de disco y que tenga conectado a el un dispositivo de almacenamiento.

Está compuesto de dos partes, un cliente que se ejecuta en la máquina que tiene el sistema de almacenamiento y un servidor que se ejecuta en las máquinas que se desean backup.

El cliente se conecta al servidor y solicita los datos que se van a copiar en el medio de almacenamiento. Este utilizará cualquiera de los medios de almacenamiento vistos anteriormente aunque la mayoría utiliza las cintas magnéticas. Directorio de configuración: /etc/Amanda. Versión más estable y reciente: amanda-2.4.4p4

BACULA:

Es una aplicación de software libre disponible bajo la licencia GPL. Es una aplicación muy eficaz basada en estructura cliente/servidor que permite la realización de copias de seguridad y restauración de sistemas. Está compuesta de una amplia colección de herramientas para poder cubrir las necesidades de backups de una red extendida. Es también escalable a pequeñas redes. Es más fácil de usar y de configurar y además tiene mejores manuales y documentación que Amanda.

ARKEIA:

Arkeia es una solución comercial y profesional pero no es software libre. Este programa es muy útil y eficiente cuando una red ha crecido mucho y el número de clientes, servidores y aplicaciones ha aumentado considerablemente.

Da soporte a distintos sistemas operativos y es capaz de realizar copias de seguridad en distintos medios de almacenamiento. Esta aplicación utiliza un GUI en el servidor, y cron para automatizar tareas. Los ficheros logs están muy bien organizados y dan mucha información que resulta muy útil.

Además de todos estos existen otros muchos programas (ya sean o no de pago) para realizar backups, como son: Midnight backup, Simple backup, Partition Image, Perfect backup etc.

Las mejores aplicaciones, para la realización de backups, en el añpasado según los lectores o de la revista “Linux Journal” (www.linuxjournal.com) fueron:

  • tar
  • amanda
  • arkeia

Resumen

Realizar backups del sistema, y su posterior verificación, es una forma importante de proteger los datos de posible corrupción o pérdida debido a algún tipo de fallo ya sea tanto hardware o software como humano.

  • se recomienda es hacer copias de seguridad de forma periódica a ficheros que contengan información vital del sistema o información de los usuarios.
  • Tipos de backups: Completo, incremental o progresivo, diferencial.
  • Existen tres niveles de seguridad, nivel 0 copias completas son de, nivel 1 archivos modificados, nivel 2 archivos modificados desde la ultima copia a nivel 1.
  • Existen varios medios de almacenamientos para los backups dependiendo de la cantidad de información que copiamos.
  • Tenemos varios comandos y aplicaciones para realizar backups de nuestro sistema GNU/Linux: cp, dd, dump/restore, tar, cpio, afio, taper, pax.