Historia clínica, por así decirlo:
Servidor Fujitsu rx300 s6, RAID6 con 6 discos de 1TB, corre XenServer 6.2, funcionan varios servidores, entre ellos Ubuntu con varios puntos compartidos, 3,5 millones de archivos, 1,5 TB de datos, todo esto está creciendo gradualmente.
Objetivo: configurar la copia de seguridad de datos desde el servidor de archivos, parcialmente a diario, parcialmente semanalmente.
Tenemos una máquina con Windows para la copia de seguridad con RAID5 (por limitaciones, una máquina convencional con un controlador RAID integrado en la placa) más un disco adicional de 2TB para la copia intermedia del estado actual de los archivos. Se podría usar cualquier distribución de Linux, pero esta máquina ya estaba disponible con un arreglo RAID y una licencia de Windows.
Instalamos en el servidor de respaldo , configuramos "mirror" de todo desde todos los puntos compartidos del servidor de archivos una vez al día por la noche después de las 18 horas ejecutándolo a través del programador.
Punto importante: al guardar la tarea por lotes, asegúrate de marcar "Cerrar la ventana de la tarea al finalizar", de lo contrario los procesos se multiplicarán.
En las excepciones por máscara agregamos archivos temporales: *.dwl, *.dwl2, *.tmp.
FreeFileSync utiliza la red de manera excepcional, la copia se realiza en varios hilos, la velocidad alcanza hasta 80 MB/s al copiar archivos grandes, no se ha encontrado ningún estancamiento en archivos pequeños.
La archivación la realizaremos ya en el servidor de respaldo local, en lugar del que se utilizaba anteriormente con archivación a través de la red. Por cierto, ¡TheCopier es maravilloso! Pero con tales volúmenes simplemente no puede transferir todo a tiempo, a pesar de la interfaz de 1Gbps en el servicio de respaldo y 2Gbps en el de archivos (unión de dos tarjetas de red).
También se utilizó anteriormente , pero con más de 1,5-2 millones de archivos dejó de funcionar correctamente, simplemente no lo soportaba.
Para archivar las carpetas necesarias, escribimos un script para :
set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now: =0%
establecer ahora=TE:~-4%.TE:~3,2%.TE:~0,2%_%now%
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_10-04.zip E:10-04
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_35-110.zip E:35-110
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_asu.zip E:asu
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_director.zip E:director
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_gpr.zip E:gpr
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_otiz.zip E:otiz
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_ps.zip E:ps
C:"Program Files"\7-Zip\7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_pto.zip E:pto
C:«Program Files»7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_rza.zip E:rza
C:«Program Files»7-Zip7z.exe a -tzip -mx=1 -mmt=on -mtc=off -ssw D:backupsAll%now%_smeta.zip E:smeta
:: a — creación de archivo
:: -tzip o -t7z — tipo de archivo (zip es de 1.5 a 2 veces más rápido)
:: -mx=1 — grado de compresión (1 mínimo, 9 máximo, valores x=[0 | 1 | 3 | 5 | 7 | 9])
:: -mmt=on — activa la multihilo donde no se haya activado
:: -mtc=off — desactiva las marcas de tiempo del sistema de archivos (cuando fue guardado, modificado, etc.)
:: -ssw — también comprime archivos abiertos para escritura
:: -xr!.Sync* — excluye archivos temporales de BtSync de la compresión, dejando los permanentes
La construcción de set now=% y así sucesivamente permite mantener el formato de registro de tiempo en el nombre del archivo sin problemas, que surgieron cuando el número del día o mes era menor que 10, es decir, se agrega un cero.
Comentario -xr!.Sync* es un remanente que quedó de lo inicialmente utilizado .
Hasta 500 Gb y 700-800 mil archivos BTSync funcionaba bien, sincronizando sobre la marcha, pero con los volúmenes actuales consumía mucha memoria y recursos del procesador tanto en el servidor de archivos de Ubuntu como en el servidor de backup de Windows, donde se ejecutaba como servicio, además de estresar constantemente el sistema de discos con lecturas y escrituras continuas.
Aunque el compresor sea 7-zip, comprimimos en formato zip en lugar del nativo 7z, porque es mucho más rápido, y no hay prácticamente diferencia en la compresión con mx=1, comprobado en muchos experimentos.
Los archivos comprimidos se realizan de forma secuencial.
La limpieza de la carpeta con archivos comprimidos también se realiza a través de una tarea programada utilizando la herramienta fpurge, dejando archivos comprimidos no mayores a una semana.
Como resultado, tenemos una copia de los archivos del día anterior, así como archivos comprimidos de la última semana, los archivos eliminados FreeFileSync los coloca en la papelera.
Fuente: habr.com
