Ajuste: Mejor Rendimiento y Tratamiento de Cuellos de Botella de Respaldo

Bacula

  • Algunas empresas utilizan Antivirus para Windows e incluso para Linux. Ponga los Daemons de Bacula como excepciones.
  • Divida el FileSet en dos al realizar copias de seguridad de más de 20 millones de archivos.

Los sistemas de archivos de Windows, especialmente, no manejan bien volúmenes con cantidades gigantescas de archivos pequeños. En este caso, lo ideal es crear múltiples FileSets y Jobs (ej .: uno para cada Volumen o algunos directorios), con el fin de paralelizar las operaciones de copia. Por ejemplo, un servidor con volúmenes C: y E :

Job1, FileSet1. Include, File = «C:/»

Job2, FileSet2. Include, Plugin = «alldrives: exclude=C»

Job3, FileSet3. Include, Plugin = «vss:/@SYSTEMSTATE/»

El uso de alldrives es importante para realizar copias de seguridad de todas las demás unidades excepto C :, que ya está respaldada por Job1. Si alguien crea un nuevo volumen en este servidor, Job2 realizará una copia de seguridad automáticamente.

Job3 sería para una copia de seguridad exclusiva del estado del sistema de Windows (si también desea separar). Vss: es un complemento exclusivo para empresas, pero también es posible usar scripts para generar el estado del sistema de Windows en un volumen separado.

En algunas interfaces gráficas (como Bweb), es posible agrupar Trabajos del mismo cliente para una mejor gestión y estadísticas.

  • Disminuya el nivel de compresión GZIP (si está habilitado, siempre menos de 6) o use LZO. No utilice la compresión a través del software Bacula para cintas.
  • Ejecute varios trabajos de copia de seguridad simultáneos (Maximum Concurrent Jobs).

Asegúrese de habilitar la competencia en los 4 lugares:

a) Recurso Director en bacula-dir.conf

b) Recurso Storage en bacula-dir.conf

c) Recurso Storage en bacula-sd.conf

d) Recurso Device en bacula-sd.conf

  • Realice copias de seguridad en varios discos, cintas o diferentes demonios de almacenamiento simultáneamente.
  • Cintas: habilite el spooling de disco SSD/NVME. Los discos HD tradicionales pueden ser más lentos que las cintas.
  • Cintas: aumente el tamaño de bloque mínimo (por ejemplo, 256 K) y máximo de 256 K a 512 K (* para LTO4. 1 M es demasiado grande y puede causar problemas. Especificado en: bacula-sd.conf, función del dispositivo). Es necesario volver a crear todos los volúmenes con el nuevo tamaño máximo de bloque, de lo contrario Bacula no podrá leer los anteriores.
  • Cintas: aumente el tamaño máximo de archivo de 10 GB a 20 GB (especificado en: bacula-sd.conf, función de dispositivo).
  • Deshabilite AutoPrunning para clientes y trabajos (poda de volúmenes una vez al día a través de un trabajo de administrador).
  • Active el Attribute Spooling para todos los trabajos (predeterminado para la versión 7.0 en adelante).
  • Use la inserción por lotes en la base de datos (generalmente es estándar, se define en la compilación y debe ser respaldada por la base de datos).

Catalog (database)

a) PostgreSQL

  • Evite la creación de índices adicionales.
  • Use configuraciones especiales para Postgresql (postgresql.conf):

wal_buffers = 64kB
shared_buffers = 1GB # up to 8GB
work_mem = 64MB
effective_cache_size = 2GB
checkpoint_segments = 64
checkpoint_timeout = 20min
checkpoint_completion_target = 0.9
maintenance_work_mem = 256MB

synchronous_commit = on

  • Realizando un vacuumdb periódico en la base de datos (postgreSQL), con el paso del tiempo el gran cambio de registros acaba haciendo que la inserción en la base de datos consuma más tiempo. [1]

[1] Sugerencia de Edmar Araújo. Referencias: http://www.postgresql.org/docs/9.0/static/app-vacuumdb.html | Carlos Eduardo Smanioto -> Otimização – Uma Ferramenta Chamada Vacuum: http://www.devmedia.com.br/otimizacao-uma-ferramenta-chamada-vacuum/1710

b) MySQL

  • Utilice configuraciones especiales para MySQL:

sort_buffer_size = 2MB
innodb_buffer_pool_size = 128MB

innodb_flush_log_at_trx_commit = 0

innodb_flush_method = O_DIRECT

De forma predeterminada, innodb_flush_log_at_trx_commit sería 1, lo que significa que el registro de transacciones se almacena en el disco en cada confirmación en el banco y las transacciones no se perderán en caso de una falla del sistema operativo. Dado que Bacula utiliza muchas transacciones pequeñas, puede reducir la E/S de registro y aumentar el rendimiento de la copia de seguridad exponencialmente configurándolo en 0, lo que significa que no habrá almacenamiento de registro para cada transacción. Como en caso de interrupción del trabajo sería necesario reiniciar el trabajo de respaldo de cualquier forma, por lo que es una opción muy interesante.

  • Ejecute mysqltuner (apt-get install mysql tuner) e implemente los cambios sugeridos.

Red (SD y FD)

  • Agregue más interfaces (bonding / NIC Teaming) y conmutadores más rápidos (puede usar el comando de red de estado de Bacula o la aplicación ethtool para verificar la velocidad de su conexión ethernet).
  • Establezca el Network Buffer Size = bytes, que especifica el tamaño inicial del búfer de red. Este tamaño se ajusta a la baja si el sistema operativo operativo no lo acepta, a costa de muchas llamadas al sistema (no deseadas). El valor predeterminado es 32,768 bytes. Se eligió el estándar para que sea lo suficientemente amplio para la transmisión a través de Internet, pero en una red local se puede aumentar para mejorar el rendimiento. Algunos usuarios han notado una mejora de 10 veces en la transferencia de datos usando 65,536 bytes en este valor.
  • Evite el tráfico a través de firewalls y enrutadores.
  • Utilice Jumbo Frames.
  • Personaliza el Kernel (Ref.: Https://fasterdata.es.net/host-tuning/linux/). Ejemplo:
echo "
# allow testing with buffers up to 128MB
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
# increase Linux autotuning TCP buffer limit to 64MB
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
# recommended default congestion control is htcp
net.ipv4.tcp_congestion_control=htcp
# recommended for hosts with jumbo frames enabled
# net.ipv4.tcp_mtu_probing=1
# recommended for CentOS7+/Debian8+ hosts
net.core.default_qdisc = fq" >> /etc/sysctl.conf

reboot

Sistema Operativo

  • RAM (> 8GB)
  • vm.dirty_ratio = 2
  • vm.dirty_background_ratio = 1
  • vm.swappiness = 10
  • vm.zone_reclaim_node = 0

Disk Access

  • Utilice el sistema de archivos XFS, ya que sobresale en la realización de operaciones de entrada / salida (E/S) en paralelo debido a su diseño, que se basa en grupos de asignación (un tipo de subdivisión de los volúmenes físicos en los que se utiliza XFS, abreviado para AG) . Debido a esto, XFS permite una escalabilidad extrema de los subprocesos de E/S, el ancho de banda del sistema de archivos y el tamaño de los archivos y el sistema de archivos en sí, mientras abarca múltiples dispositivos de almacenamiento físico.
  • Utilice el «deadline disk schedulere».
  • Utilice RAID con un buen controlador de batería (por ejemplo, ARECA).

 

Disponível em: pt-brPortuguês (Portugués, Brasil)enEnglish (Inglés)esEspañol

Deja una respuesta