Como implementar una estrategia de respaldos en la Riviera Maya

15 de Diciembre de 2008

Existen muchos artículos sobre este tema, así que para no hacerlos perder el tiempo, les explico rápidamente de que vamos a hablar en este

Vamos a repasar la mejor estrategia de respaldos para una empresa de menos de 50 computadoras, que a su vez cuenta con menos de 5 servidores.

Esto suele ser una configuración bastante común en las empresas de la Riviera Maya y suele haber poco material sobre este tipo de configuración.

Medio de almacenamiento a elegir

Este es uno de los puntos más importantes, dónde vamos a realizar los respaldos. Hoy en día hay muchas opciones.

  • NAS (Almacenamiento Unido a la Red). Son equipos con administración remota que poseen un gran almacenamiento. Algunos tienen su propio sistema operativo pero la mayoría confía en Linux.
    • Pros:
      • fácilmente escalable (cambiando los discos),  
      • Ubicuidad (en cualquier parte de la red)
      • Suele incluir software para transferencia de archivos
    • Contras:
      • Precio: Alrededor de ud$ 250 – 300 por solo el chasis para 2 discos SATA
      • Disponibilidad: es difícil de conseguir muchas opciones, especialmente en la Riviera Maya.
      • Pueden ser de compleja instalación
  • Cintas: Acá hay muchísimas opciones y depende de disponibilidad (en México y Riviera Maya) y costo más que de otra cosa. Lo bueno de las cintas es que pueden hacerse copias redundantes y almacenarse en distintos sitios con mucha facilidad, lo que permite contar siempre con los respaldos a pesar de alguna catástrofe. Las opciones más comunes son:
    • LTO: Pueden superar el Terabyte, pero son caros. Son realmente muy veloces. Si tienes el dinero y puedes conseguirlos, es la mejor opción.
    • DLT: Un viejo estándar que todavía funciona muy bien. Cerca de los 80Gb por tape.
    • SDLT: Un mejor DLT, llegando a los 600B.
    • AIT: Alrededor de 200Gb. En teoría son la mejor combinación precio/performance/capacidad (nunca las he usado).
    • DDS/DAT: Alrededor de 160Gb máximo, lentos, pero las cintas son muy baratas y fáciles de conseguir.
  • DVD
    • Pros
      • Muy económicos
      • Alta disponibilidad
    • Contras:
      • Espacio muy limitado (8.5Gb con un DVD-9)
      • Automatización complicada
  • Internet: existen servicios que ofrecen realizar los respaldos en sus centros de datos, con gran seguridad, respaldos y fuentes redundantes, etc.
    • Pros
      • El respaldo es administrado por especialistas
      • Muy buenas instalaciones con alta seguridad
    • Contras
      • En México y principalmente en la Riviera Maya el servicio de internet es muy poco confiable
      • Respaldos muy lento debido al escaso ancho de banda.
  • Discos Externos
    • Pros
      • Relativamente económicos. Un disco de 500Gb listo para usar cuesta alrededor de $2,000.00 - $2,500.00. Otra opción es comprar un gabinete (también llamado case) USB externo por $500.00 – $600.00, y agregarle un disco SATA de 500Gb por alrededor de $ 1,000.00
      • Fácil instalación y manejo
      • Simplicidad de uso
      • Durabilidad
      • Fácil reemplazo (la mayoría de los case permiten reemplazar el disco original por otro estándar sin mucho problema)
    • Contra:
      • Punto único de fallo. Si falla el disco se pierden todos los respaldos.
  • Hibridos (disco externo + cinta):
    • Existe una solución de HP con un disco USB removible, tipo cartucho. Es una buena opción, pero desconozco disponibilidad de este producto en la zona de Playa del Carmen o Cancún. En cuanto a performance, sigue siendo un disco USB por lo cual esta no varia con la solución anterior.

Selección de medio de respaldo

Mi opción preferida es la de discos externos, debido al precio y a la facilidad de uso. Las Cintas sería mi segunda opción, ya que permiten guardar copias fuera del sitio con mucha facilidad. Una opción muy común es que el respaldo de fin de semana el dueño de la empresa se lo lleve a su casa, sabiendo que ante una catástrofe, al menos se cuenta con el último respaldo semanal.

Implementación del respaldo con un disco externo USB

Pensemos en una empresa pequeña/mediana que cuenta con servidores Microsoft Windows, con un servidor de documentos compartidos y de correos como por ejemplo Microsoft Exchange, y un servidor de una base de datos, como Microsoft SQL, MySQL, PostreSQL o similar. En el caso de contar con mas servidores, el esquema es similar, solo hay que agregar un disco más por cada servidor. Como dijimos, este esquema se  sugiere para menos de 5 servidores.

En nuestro ejemplo tenemos la siguiente configuración:

Servidor Alfa

Sistema operativo: Microsoft Windows

Contenido: Documentos compartidos de los usuarios. Servidor de Correo (Exchange o similar)

Servidor Beta

Sistema operativo: Microsoft Windows

Contenido: Base de Datos MS SQL Server (o similar)

Pasos del respaldo:

Vamos a ejecutar los respaldos por separado en ambos servidores.

Esta es la estructura de directorios que vamos a utilizar en el disco rígido externo, para guardar los últimos 14 respaldos. En esta estructura se puede ver también una carpeta Mensual y Semanal, que puede implementarse modificando el script de respaldos. Por ejemplo, cada nuevo respaldo del servidor ALPHA se guardará en \ALPHA\DIARIO01. Previo a esto debemos "correr" todos los respaldos 1 dia, borrando el mas viejo (en \ALPHA\DIARIO14). Este será el trabajo del script de respaldos, mostrado mas abajo.

Estructura de respaldos en disco externo

Este es un ejemplo del script de respaldos al disco externo hecho con Visual Basic Script (RespaldoServer.vbs). Se puede realizar un script también con el Shell de Windows (.cmd). En ese caso sugiero utilizar la utilidad Robocopy para hacer las copias.

' Script: RespaldoServer.vbs
'
' El Disco E: es mi disco externo. Puede agregarse al script una revision
' de la letra del disco si se acostumbra a desconectarlo, ya que la letra puede cambiar entre
' desconexiones. 

On Error Resume Next
Dim LogName
'-----------------------------------------------------------------
' Estas son las variables a modificar
'-----------------------------------------------------------------
LogName = "bck.log" 
'Fin variables a modificar
'-----------------------------------------------------------------

AbroLog LogName

'Borro el respaldo con 14 dias de antigüedad
If Err then InformoError Err, "DeleteAFile (E:\ALPHA\DIARIO14\*.*)", LogName

'muevo todos los respaldos al dia siguiente, para vaciar la carpeta que contiene el respaldo 
' diario mas reciente: DIARIO01.
MoveAFile "E:\ALPHA\diario13\*.*", "E:\ALPHA\diario14\"
MoveAFile "E:\ALPHA\diario12\*.*", "E:\ALPHA\diario13\"
MoveAFile "E:\ALPHA\diario11\*.*", "E:\ALPHA\diario12\"
MoveAFile "E:\ALPHA\diario10\*.*", "E:\ALPHA\diario11\"
MoveAFile "E:\ALPHA\diario9\*.*", "E:\ALPHA\diario10\"
MoveAFile "E:\ALPHA\diario8\*.*", "E:\ALPHA\diario9\"
MoveAFile "E:\ALPHA\diario7\*.*", "E:\ALPHA\diario8\"
MoveAFile "E:\ALPHA\diario6\*.*", "E:\ALPHA\diario7\"
MoveAFile "E:\ALPHA\diario5\*.*","E:\ALPHA\diario6\"
MoveAFile "E:\ALPHA\diario4\*.*","E:\ALPHA\diario5\"
MoveAFile "E:\ALPHA\diario3\*.*","E:\ALPHA\diario4\"
MoveAFile "E:\ALPHA\diario2\*.*","E:\ALPHA\diario3\"
MoveAFile "E:\ALPHA\diario1\*.*","E:\ALPHA\diario2\"
If Err then InformoError Err, "MoveAFile", LogName

'Copio el contenido de la carpeta Respaldos (donde ya estan los respaldos del día) a 
'la carpeta DIARIO01 en el disco externo.
CopyAFile "C:\Respaldos\*.*", "E:\ALPHA\diario1\"
If Err then InformoError Err, "CopyFile C:\Respaldos\*.*", LogName

'=========================================
'FIN DEL SCRIPT
'=========================================



' =========================================
' Funciones
' =========================================
Sub CopyAFile(origen, destino)
	Dim fso
	Set fso = CreateObject("Scripting.FileSystemObject")
	fso.CopyFile origen, destino
   
End Sub

Sub MoveAFile(origen, destino)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.MoveFile origen, destino
End Sub

Sub DeleteAFile(filespec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.DeleteFile(filespec)
End Sub

Function InformoError(Err, Posicion, MyLog)
	EscriboLog MyLog, "En " & Posicion & "=> Error # " & CStr(Err.Number) & " " & Err.Description
	Err.Clear  
End Function


Function AbroLog(LogName)
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
   Dim fso, ts
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set ts = fso.OpenTextFile(LogName, ForAppending, True)
    
End Function

Function EscriboLog(logname, msg)
	Const ForReading = 1, ForWriting = 2, ForAppending = 8
	Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
	dim fso, ts
	Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.OpenTextFile(logname, ForAppending, True)
	ts.WriteLine now & ": " & msg
   
End Function
    

 

Servidor Alfa

  • Agregar un script a las Scheduled Tasks del servidor para eliminar el contenido de la carpeta RESPALDOS a las 11:30 PM del día anterior al respaldo.
  • Crear un job del NTBackup para los documentos compartidos, a ejecutarse todos los días a las 12:00 AM. El respaldo se guardará en una carpeta RESPALDOS en un disco local del servidor (no en el disco externo!) En mi ejemplo este respaldo dura 1 hora en realizarse
  • Crear un job del NTBackup para el servidor de Correo MS Exchange a ejecutarse todos los días a las 1:30 AM. El respaldo también se guardará en una carpeta RESPALDOS en un disco del servidor (no en el disco externo!). Este respaldo dura también 1 hora en el ejemplo.
  • Agregar al script de respaldos el copiado de la información guardada en la carpeta RESPALDOS al disco externo. Este script se ejecutará a las 3:00AM.

Servidor Beta

  • Agregar un script a las Scheduled Tasks del servidor para eliminar el contenido de la carpeta RESPALDOS a las 11:30 PM del día anterior al respaldo.
  • Crear un script para respaldar la base de datos todos los días a las 12:00 AM. Este respaldo se copiará a una carpeta RESPALDOS en un disco local del servidor (no en el disco externo!).
  • Crear un job del NTBackup para respaldar el System State (suponiendo que ambos servidores estén en el mismo Forest, si no hay que hacerlo en ambos servers)
  • Agregar al script de respaldos el copiado de la información guardada en la carpeta RESPALDOS al disco externo. Este script se ejecutará a las 3:00AM.

Control del funcionamiento del respaldo

Creo que no hace falta recordar que los respaldos deben revisarse semanalmente, incluyendo la restauración de alguna información para asegurarse que estén correctos.

Diariamente sugiero revisar todas las carpetas (DIARIO01 hasta DIARIO14) para asegurarse que todos los movimientos y copias funcionaron correctamente.No debe olvidarse que tenemos todos los respaldos juntos en un solo disco y un solo error puede dejarnos sin ningun respaldo funcionando. Por esto es muy importante revisar los respaldos diariamente, al menos hasta estar seguros que el script funciona correctamente.

Mejoras del esquema

Es recomendable contar con un tercer disco externo que se utilizará para hacer semanalmente una copia del respaldo diario y llevarlo a una segunda locación, para contar con un respaldo off site.

(fin)

Comentarios del artículo: (agregar comentario)

Fecha/Hora Actual: 10/March/2010 - 03:27:23 AM (Zona Horaria: America/New_York)

Agrega tus comentarios:

Nombre:

Comentarios:
image verificacion
 

Acerca de Novatech | Mapa del Sitio | Contáctenos | ©2007 Centro de Soporte Tecnológico del Caribe SA de CV
Playa del Carmen - Riviera Maya - Quintana Roo - Mexico