¿Es rsync --delete seguro en caso de falla del disco?

4

Tengo dos discos duros de datos en mi servidor Linux y uso el segundo como respaldo para un primer disco.
Yo uso rsync para ese propósito. Un ejemplo sería:

rsync -r -v --delete /media/disk1/ /media/disk2/

Lo que esto hace es que copia cada archivo / directorio de / media / disk1 / a / media / disk2 / pero también elimina cualquier diferencia. Por ejemplo, digamos que los archivos A y B, pero no el archivo C están en el disco 1 , y en disco2 no hay A y B archivos, pero no es C. El resultado sería que después de que el comando en disco2 Tendría archivos Un y B, pero el archivo C se eliminaría, al igual que en el disco1 .

Ahora, un escenario bastante desastroso había cruzado por mi mente; ¿y si el disco 1 muere, el sistema continúa trabajando desde archivos de sistema están en mi disco del sistema, pero cuando intenta rsync copia de seguridad de mis datos sobre disco2 de rota el disco 1 , borra todos los archivos dedisk2 porque no puede leer nada en disk1 .

¿Es este un posible escenario, o hay una protección contra su construcción en rsync ?

enedene
fuente
Eso no es una copia de seguridad. Si sus datos están dañados / borrados por un virus / falla de software o hardware / error humano, su comando se asegurará de que también esté dañado / borrado en la segunda unidad.
gronostaj
Esta publicación es antigua, pero vine aquí pensando en esto también. ¿Hay una manera fácil de limitar rsync? Quiero decir, si / media / disk2 / es más de un 50% diferente que / media / disk1 /, entonces no haga nada.
TNT

Respuestas:

4

Siendo realistas, en ese escenario, el núcleo se asustaría, y obtendrías un montón de errores de E / S de disco antes de que rsync eliminara nada. Pero luego, si tuviera que reiniciar, es posible que / media / disk1 esté vacío y sin montar ... Entonces ...

En su script rsync, solo asegúrese de no ejecutar rsync si no hay ningún archivo en / media / disk1. Una manera fácil de hacerlo sería:

ls /media/disk1/SomeFileYouKnowExists || exit
rsync ....

Esto hará que el script salga antes de ejecutar rsync en el caso de que el archivo de destino no exista.

Flimzy
fuente
Una vez tuve un fallo en un disco en la configuración de LVM y el servidor continuó funcionando, así que no apostaría por la interrupción del kernel, tal vez esto suceda si falla el disco del sistema. cambio y no puedo rastrear todos los cambios.
enedene
Esto se debe a que cuando falla un solo disco en LVM, los otros discos pueden continuar sirviendo datos, y el núcleo puede no darse cuenta hasta que intente leer los datos del disco fallido.
Flimzy
También me parece que tal vez rsync no sea la herramienta adecuada para su trabajo; podría estar mejor con una aplicación de respaldo real .
Flimzy
@Flimzy, probablemente tengas razón sobre LVM, pero no puedo estar seguro de que esto también sucederá en discos que no sean del sistema, ya que aún no sucedió. rsync funciona bien por ahora, es por eso que pregunto si hay algún peligro, si no, continuaría usándolo porque es fácil y práctico para mí. Tampoco me sorprendería si las soluciones más complicadas usaran rysnc en segundo plano.
enedene
1
Claro, algunos sistemas de respaldo pueden usar rsync como método de transferencia, pero esa no es una razón para confiar en rsync para respaldos valiosos. Eso sería como decir "Algunos sistemas de respaldo usan HTTP, así que simplemente subiré mis archivos a Gmail a través de HTTP como mi método de respaldo". Un sistema de copia de seguridad "real" proporcionará copias de seguridad y la historia versionados - lo que haría que su pregunta practially obsoleta :).
Flimzy
3

Del manual de rsync:

Si el lado emisor detecta algún error de E / S, la eliminación de cualquier archivo en el destino se desactivará automáticamente. Esto es para evitar que las fallas temporales del sistema de archivos (como los errores de NFS) en el lado emisor provoquen una eliminación masiva de archivos en el destino. Puede anular esto con la opción --ignore-errors.

i_grok
fuente
1
¿Esto incluye todo el rango posible de errores de disco, o solo cuando hay un fallo grave? <br> Los errores de disco pueden ser extraños, puede ver la lista de algunos archivos, pero una parte podría estar dañada y así sucesivamente.
enedene