[CentOS-es] Optimizar el proceso "building file list" de Rsync

Santi Saez santisaez en woop.es
Jue Mayo 6 12:29:37 UTC 2010


El 04/05/10 19:58, "Ing. Ernesto Pérez Estévez" escribió:

>> El problema de este escenario es que rsync se tira entre 15 y 20 minutos
>> construyendo el listado de ficheros a sincronizar (proceso "building
>> file list"), un tiempo que me gustaría reducir al máximo posible

(..)

> Hola Santi
>
> técnicamente la primera ejecución SÍ de demorará pero la segunda ya debe
> ser muy rápida.

Hola Ernesto!

En todas las ejecuciones el tiempo necesario para construir el listado 
de ficheros a sincronizar es prácticamente el mismo, unos 15-20 minutos 
aprox; Lógicamente la primera ejecución debe mover el grueso de los 
datos = varias horas, en la segunda pasada de rsync se moverán muy pocos 
datos y será mucho más rápido = tiempo prácticamente despreciable.

Pero en ambos casos, el tiempo necesario para construir el listado de 
ficheros es el mismo. Por eso comento que, lo interesante para este tipo 
de escenarios es hacer uso de FAM, inotify, kqueue, etc. para tener un 
listado de la información que ha cambiado entre las 2 ejecuciones de 
rsyncs, evitando realizar el calculo con todos los ficheros, esto es lo 
realmente interesante :)


> Ahora, otra variante sería que uses drbd quizá con ocfs2 o con gfs2 en
> activo-activo.. o como creas más conveniente!.

Cualquier solución NAS, SAN o DRBD como comentas queda descartada: lo 
estamos utilizando para migrar virtuales basados en OpenVZ entre 2 
cabinas diferentes; además el contenido a migrar no se corresponde con 
una partición completa, volumen, etc. tan solo es parte de la estructura 
de un directorio (por eso las soluciones que comentas están descartadas).

He podido "rascar" algunos minutos a dicho proceso compilando la última 
versión de rsync (v3.0.7), cambiando el cifrado de SSH por uno mas 
ligero -blowfish- (se hace rsync sobre SSH, por si no lo había 
comentado) y quitando las opciones de verbose, estadísticas, etc.. del 
propio rsync; En cualquier caso, sigue siendo necesario cerca de ~15 
mins para generar el listado :-(

Voy a echarle un ojo a la alternativa Unison, aunque estoy casi seguro 
que pecará de lo mismo.. al final tendré que jugar con las opciones de 
suspender/reanudar de la virtualización + inotify :)

En cualquier caso, cualquier sugerencia será muy bien recibida, gracias!

Saludos,

-- 
Santi Saez
http://woop.es


Más información sobre la lista de distribución CentOS-es