rsync simplemente está colgando, creando una lista de archivos


20
[root@centos /]# rsync -av --exclude thumbs /storage root@xx.27.1.xx:/storage
root@xx.27.1.xx's password: 
building file list ... 

He estado sentado durante aproximadamente una hora ... son 135 GB de imágenes y carpetas

/storage es una unidad SCSI ext3 montada.

¿Es normal que rsync esté sentado tanto tiempo calculando los archivos / directorios?


Cuantos archivos Con un gran número de archivos, llevará un tiempo.
Helvick

probablemente miles ... directorio de imágenes de cargas de usuarios ...
Andrew Fashion

He visto que esta parte de rsync lleva más de una hora cuando hay miles y miles y miles de archivos. Si ejecuta 'top', ¿está viendo E / S esperar?
troyengel

Solo porque tengo curiosidad, ¿puedes correr df -iy decirnos qué tienes para IUsedel almacenamiento? Nos dará una idea aproximada de cuántos archivos + carpetas tiene.
Zoredache

1383641, ¿es esa la cantidad de archivos?
Andrew Fashion

Respuestas:


24

rsync 2.x crea una lista completa de archivos por adelantado.

Agregue la -Popción y verá un indicador de progreso.

Si crees que realmente está colgando, en otra terminal encuentra el pid de rsync y luego

  1. Corre strace -p PIDy mira lo que está haciendo. (Presione ^ C para detener).

  2. Ejecute ps -o wchan PIDpara ver dónde está en el núcleo.


Wow stracees genial! Probablemente encontrará que algo circular está sucediendo: como un enlace que se refiere a uno de sus directorios ancestrales. En mi caso, estaba usando un sistema de archivos virtual que no tenía límite en su profundidad, es decir, tenía "infinitamente" muchos subdirectoriostagfs/books/+/books/+/books/+/ ...
Zaz

@Zaz También tengo una gran cantidad de subdirectorios, en profundidad. Pero esto está en el diseño de mi sistema. ¿Hay una manera de resolver esto?
user1641443

@ user1641443: Lo siento, eso está más allá de mí.
Zaz

@ user1641443: 1: Pruebe rsync> 3.0 como dice Martin . 2: Ejecute múltiples procesos rsync cada uno en un subárbol más pequeño. 3: Abre tu propia pregunta por separado.
poolie

15

Debería actualizar a rsync 3.0.x donde obtendrá el beneficio de las listas de archivos incrementales, explicadas aquí . Estoy sincronizando millones de imágenes (~ 200 GB en total) y vi una enorme aceleración al pasar de rsync 2.xa 3.x.

Aun así, probablemente tomará mucho tiempo revisar todos esos datos. En mi caso, todavía lleva más de una hora entre dos servidores DL380 G5 bastante potentes.


También tenga en cuenta que ciertas banderas forzarán el comportamiento anterior; para mí lo fue --delay-updates.
Xiong Chiamiov

1
@XiongChiamiov Las únicas opciones que estoy usando son "-a" y "--progress" y la versión 3.1.x todavía está creando una lista de archivos incremental. ¿Por qué?
Michael

3

Usted notó anteriormente que también duestaba colgando. Algo está sucediendo con este sistema de archivos, y rsyncestá afectando lo que sea du.

Una cosa rápida que puede verificar es si hay mensajes de error del kernel que indican un problema de disco. Escriba dmesgy vea lo que está en la parte inferior.


1

El bloqueo después del mensaje "creando la lista de archivos ..." puede ser causado por una falta de coincidencia de MTU, por ejemplo, si ha configurado las interfaces de red con MTU 9000 pero no el conmutador entre paquetes pequeños (como conectarse al servidor rsync) pasará pero no los más grandes (como enviar la lista de archivos).


después de mucho buscar me encontré con esto y me impulsó a ir a verificar: estaba ejecutando rsync en un vpn con 1450 mtu estándar pero no tengo el control del equipo entre los sitios, cambié el vpn mtu a 1430 y violé el rsync funciona al 100% (¡y de repente también desapareció otra extrañeza de la red!) ¡Gracias!
l0ft13

0

Basado en esto y la otra cuestión de la du /storageque cuelga me hace pensar que ninguno duo rsynces el problema, sino que hay algunos problemas con el /storage.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.