Hacer una copia de seguridad de un gran sistema de archivos rápidamente

Hacer una copia de seguridad de un gran sistema de archivos rápidamente

Hay un sistema de archivos montado en/home, que tiene un espacio de almacenamiento de 2,6 PB. Actualmente, hay más de 300 TB de datos dispersos en el directorio /home. Tengo la intención de hacer una copia de seguridad de todos los datos de más de 300 TBde manera diariaa /home/fs_backup, pero encontré que el siguiente comando tares extremadamente lento:

cd /home/fs_backup && tar -cpf backup.tar.gz  --exclude="/home/fs_backup" --one-file-system "/home"

Calculo que solo podría producir 10 GB/min, lo que significa que no se puede hacer una copia de seguridad de los datos de más de 300 TB en 24 horas. ¿Alguna idea de cómo podría 'hacer una copia' de los datos actuales en /home sin importar si están bien comprimidos, o incluso si no están comprimidos en absoluto, o no en poco tiempo? Muchas gracias.

Respuesta1

Como ya ha determinado que no puede realizar una copia de seguridad de la cantidad total de 300 GB dentro del período obligatorio de 24 horas, debe revisar sus requisitos.

A nivel de archivos, una herramienta incremental como star, duplicityo incluso rsync/ rsnapshotpuede tardar más de un día en crear la copia de seguridad base, pero después de eso debería ser considerablemente más rápido. Obviamente, esto dependerá de la cantidad y el tamaño de los archivos que se cambien dentro de cada período de copia de seguridad de 24 horas.

A nivel del sistema de archivos, una instantánea puede ser suficiente para sus necesidades (aunque esto no es realmente una copia de seguridad), especialmente porque luego puede realizar una copia de seguridad real de la instantánea en su tiempo libre sin tener en cuenta el tiempo que lleva completarla. Como antes, una vez que se haya establecido la copia de seguridad básica, es posible que sus incrementales tarden mucho menos en producirse.

No ha especificado cómo se debe almacenar su copia de seguridad, pero para muchos archivos pequeños, algo así rsnapshotpodría ser una buena opción. (Lo uso para copias de seguridad basadas en archivos de muchos de nuestros servidores de archivos internos, ya que nos permite un acceso trivial a archivos individuales con fines de recuperación).

Por cierto, una copia de seguridad en otro disco en el mismo host no debería considerarse una copia de seguridad segura. Sería mucho mejor realizar una copia de seguridad en un host completamente diferente. (Si /home/fs_backupse trata de un montaje remoto desde un servidor diferente, considere seriamente usar duplicityo rsync/ rsnapshotpara comunicarse directamente con el host remoto en lugar de utilizar el sistema de archivos montado de forma remota).

Respuesta2

El método más rápido que conozco para hacer una copia de seguridad es usar star(consulte la última versión de este programa en schilytools), ya que este programa implementa un búfer circular de tamaño arbitrario que se encuentra entre un proceso del sistema de archivos y otro proceso que archiva E/S. Si el tamaño FIFO se selecciona de la manera correcta, casi todos los archivos se leen usando una sola read()llamada al sistema y esto lo hace (junto con su código optimizado) realmente rápido.

Este búfer circular se llama FIFOy usa de forma predeterminada 8MB, pero se le puede indicar que use cualquier tamaño. El valor máximo útil es la mitad de la cantidad que hay RAMen la máquina.

starTambién admite volcados incrementales en funcionamiento y un volcado completo seguido de un volcado incremental es lo que recomiendo para guardar el contenido de un sistema de archivos de una manera que en la última etapa requiera poco tiempo.

Quizás quieras echar un vistazo a la página de manual:http://schilytools.sourceforge.net/man/man1/star.1.html

Tenga en cuenta que esta página de manual recomienda realizar copias de seguridad no desde un sistema de archivos activo sino desde un snapshotnivel de sistema de archivos.

información relacionada