Mejora la Experiencia de Navegación con la barra exclusiva de CRIVA-IT

jueves, 6 de octubre de 2011

Migración con Robocopy


For enghish support and procedure: riva.claudio@gmail.com - Visita Mi perfil de LINKEDIN -

Migración de recursos compartidos de file server stand-alone con Robocopy.
Microsoft Windows Server 2003 y 2008.

Si se encuentran planificando una migración de file server con Windows en una infraestructura de pequeño a mediano tamaño considero que Robocopy es una excelente opción.

Lo he utilizando en más de una ocasión reduciendo considerablemente y hasta anulando en algunos casos el downtime del servicio durante la transición.

Esta herramienta es parte del Resource Kit de Windows Server lo que le agrega una buena cuota de confiabilidad por ser oficial de Microsoft (quiero decir, es más confiable que una utilidad de terceros con origen dudoso, ¿no?).

Si bien ofrece muchas funciones mediante switchs, las que yo he utilizado y me han dado buen resultado son las siguientes:

/E: copia subdirectorios, incluyendo los que están vacíos.
/SEC: incluye en la copia los permisos NTFS de los objetos.
/COPYALL : copia toda la información del archivo.
/PURGE: borra archivos/carpetas en el destino que no existen más en el origen.
/XO: si el archivo de origen es más viejo o igual al destino lo excluye en la copia (copia incremental).
/R:1: número de intentos de copia antes un fallo (por ej si esta en uso espera unos segundos y trata de nuevo).
/V /LOG:copy.log: genera un log con información detallada de las acciones sobre cada archivo.

Se pueden ver todos los switchs con su descripción en Ms Technet o tipeando desde línea de comandos robocopy.exe /?

Resumiendo, lo que me permite la herramienta es, mediante un script y una tarea programada, realizar una replicación progresiva y controlada de los archivos compartidos en el viejo file server hacia el nuevo de forma incremental, fuera del horario laboral, manteniendo atributos y permisos a nivel de NTFS además de conservar también la cantidad exacta de archivos en ambos servidores. Se puede además generar automáticamente un log muy detallado y prolijo con el resultado de la ejecución de los comandos del script.

A continuación detallo los pasos que he tomado durante las migraciones:
  • Descargar e instalar el Resource Kit de Windows Server 2003. También se puede descargar y descomprimir por ej con 7zip para poder extraer manualmente sólo la herramienta robocopy.exe ya que el kit incluye muchas más.
  • Generar un batch con el código de copiado de archivos especificando el nombre del comando, el origen, el destino y los switchs a utlizar. Por ejemplo:

    robocopy.exe "E:\carpeta1" "\\servidor2\carpeta1" /E /SEC /COPYALL /PURGE /XO /R:1 /V /LOG+:copy.log

    Se debe tener en cuenta el path o ruta hacia robocopy.exe. Para poder utilizarlo en el script ingresando sólo su nombre como en el ejemplo, deberás copiarlo dentro de C:\Windows\System32 o C:\Winnt\System32 dependiendo del sistema operativo. De lo contrario, se debe especificar el lugar donde se instaló o colocó el ejecutable. Por ej, creo que si se instala el Resource Kit completo queda en algún lado dentro de C:\Archivos de Programa, por lo que en ese caso se debería colocar en el script lo siguiente

    "C:\Archivos de Programa\carpeta que sea\robocopy.exe" "E:\carpeta1" "\\servidor2\carpeta1" /E /SEC /COPYALL /PURGE /XO /R:1 /V /LOG+:copy.log
  • Una vez armado el batch, crear una tarea programada que lo ejecute en el horario que más les convenga, yo en gral lo hago en la madrugada. Asegurarse siempre de que se tengan los permisos necesarios tanto sobre el origen como el destino (lectura y escritura respectivamente).
Eso es todo, el script realizará el resto. Se puede programar varios días consecutivos y por ej acotar la ejecución del script por un período de 1 hora (con las opciones avanzadas dentro de la tarea programada). Si durante esa hora no se copió la totalidad de los archivos, cuando vuelva a ejecutarse continuará copiando sólo los que faltan en el destino y los que hayan sido modificados en el origen, sin tener que volver a copiar el resto.
  • Lo que si se debe crear y configurar manualmente en el servidor de destino son los recursos compartidos. Lo ideal considero que es crear directorios con idéntico nombre al servidor actual en el nuevo, configurar el recurso compartido y a través del script ir copiando toda la info desde el origen ya hacia el directorio de destino final en el server de destino.
    Creo que es bueno mencionar que si se debe renombrar o unir al dominio el nuevo servidor (por ej para que quede con el mismo nombre e IP que el de origen), los recursos compartidos no son afectados si ya habían sido creados anteriormente.
  • Si la migración implica mantener mismo host name e IP que el servidor de origen, se debe cortar el acceso a los recursos compartidos de este durante la ventana de mantenimiento programada, ejecutar el script de copiado manualmente para asegurarse de que están todos los archivos y/o cambios en los mismos replicados, apagar el server de origen, configurar nombre e IP en el nuevo igual al anterior y listo, al levantar los usuarios ni siquiera tendrán que volver a mapear sus unidades (cosa que de ser necesario se puede hacer a través de GPolicies si estamos en un dominio), solo reiniciar en algunos casos las sesiones en el dominio y ya podrán continuar accediendo a los recursos compartidos pero ahora en el nuevo servidor.
En cuanto al tiempo que puede llevar la copia, bueno, obviamente depende de la infraestructura de red que posean, pero a modo de ejemplo, en una red gigabit una vez equiparados los archivos tanto en el server viejo como en el nuevo, el tiempo de comparación y actualización de contenido de un volumen de unos 500GBytes es de 1h aproximadamente.

Si tienen alguna duda o sugerencia sobre el contenido de esta entrada, publiquen un comentario y la atenderé a la brevedad.

For enghish support and procedure: riva.claudio@gmail.com - Visita Mi perfil de LINKEDIN -

No hay comentarios.:

Publicar un comentario

Si necesitas asistencia sobre algún tema de Microsoft o Android no tratado aquí envíame un e-mail a riva.claudio@gmail.com y con gusto crearé un post para intentar ayudarte.
Agradezco muchísimo si puedes colaborar con un CLIC en cualquier publicidad de este blog.