Observaciones preliminares:

  • Esta característica está disponible para Bacula Community (9.0.8 o superior) y Enterprise.
  • La compresión del software Bacula no debe ser habilitada con el formato Alineado, resultando en un desempeño de mal rendimiento de la deduplicación.
  • Usted necesitará una pequeña área de SSD para almacenar el mecanismo del índice de deduplicación.
  • En este método el Bacula creará volúmenes distintos para contener los metadatos de los archivos copiados de la copia de seguridad y otro para los datos en sí.

La deduplicación de datos es un enfoque de reducción de datos basado en el diccionario, debido a su capacidad de reducir efectivamente el almacenamiento de copia de seguridad o el tamaño del conjunto de datos de archivo por un factor de 4-40X. Es un componente esencial del sistema de copia de seguridad porque reduce los requisitos de espacio de almacenamiento, además de ser una cuestión crítica, ya que el rendimiento de toda la operación de copia de seguridad depende de la tasa de transferencia de almacenamiento.

De acuerdo con la Figura 1, el nuevo formato Alineado de grabación de los volúmenes de copia de seguridad trae una considerable reducción en el costo de almacenamiento en relación con los volúmenes tradicionales tradicionales de Bacula Community. Se muestra, de igual manera, más eficiente que otras herramientas de deduplicación a ejemplo de ZBackup (software de deduplicación de paquetes tar) en términos de velocidad de copia de seguridad y restauración. Hay un menor impacto en la duración de copia de seguridad y restauración al utilizar el nuevo formato Alineado de volúmenes con el Bacula, pero es un compensación aceptable.


Tutorial Deduplicação Sistema de Archivos em Nível de Blocos com Volumes Alinhados (Bacula 9.0.8 e superior) 1

Figura 1 – Formato Tradicional de Volúmenes de Versiones Antiguas del Bacula Community versus el Nuevo Formato de Volumen Alineado con Deduplicación (FIGURA DE AUTORÍA DE HEITOR FARIA).


Más que nunca, las copias de seguridad de disco se están convirtiendo en una sustitución viable para bibliotecas de cintas, ya que la deduplicación no es una característica que actualmente se puede implementar eficientemente en las cintas magnéticas secuenciales. Sólo los discos tienen esta ventaja.

1. Sistema de Archivos ZFS

Actualmente, existen varios sistemas de archivos de deduplicación hoy en día, como los discos de lectura, la preferencia, ZFS y otros. El hardware con capacidades de deduplicación también se puede utilizar junto con el formato Alineado de Volúmenes de Bacula. En este artículo utilizamos ZFS, y más adelante el Dddumbfs como alternativa:

a) Instalación RedHat/CentOS (https://github.com/zfsonlinux/zfs/wiki/RHEL-and-CentOS)

yum install http://download.zfsonlinux.org/epel/zfs-release.el7_5.noarch.rpm

echo "
[zfs-kmod]
name=ZFS on Linux for EL7 - kmod
baseurl=http://download.zfsonlinux.org/epel/7.5/kmod/$basearch/
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux" > /etc/yum.repos.d/zfs.repo

yum install zfs
modprobe zfs

b) Instalación Debian/Ubuntu

sudo -i
apt-get -y install zfsutils-linux

Inicio de ZFS

La inicialización de ZFS requerirá uno o más discos físicos. En el ejemplo siguiente, /zfs/mnt debe ser el valor configurado en el bacula-sd.conf en las directivas ArchiveDevice. La compresión de ZFS también se puede habilitar.

sudo zpool create -f zfs /dev/sdb 
zfs create zfs/mnt
zpool status zfs
df -h
zfs set dedup=on zfs/mnt
zfs set compression=on zfs/mnt
chown bacula /zfs/mnt

Referencias:


2. El Sistema de Archivos de Ddumbfs (ALTERNATIVA)

Ddumbfs tiene código abierto y enfocado en operaciones más rápidas gracias a su diseño de índice simple, que es muy importante para las ventanas de copia de seguridad más cortas.

2.1 Dependencias de ddumbfs

Para compilar ddumbfs usted necesita como de costumbre: make y gcc, los encabezados para fusibles y mhash library y pkg-config.

Aquí están los paquetes correspondientes para RedHat y distribuciones basadas en Debian (algunos de ellos necesitan ser creados a partir de la fuente):

  • RedHat/CentOS: fuse fuse-libs mhash fuse-devel mhash-devel pkgconfig gcc make
  • Debian/Ubuntu: libfuse2 libmhash2 libfuse-dev libmhash-dev pkg-config fuse-utils build-essential

a) Paquetes RedHat/CentOS:

sudo -i
yum -y install epel-release.noarch
yum -y install fuse fuse-libs mhash fuse-devel mhash-devel pkgconfig gcc make automake

b) Paquetes Debian/Ubuntu:

sudo -i

apt-get -y install fuse libfuse2 libmhash2 libfuse-dev libmhash-dev pkg-config build-essential autotools-dev

1.2 Compilar e instalar Ddumbfs

wget -qO- http://www.magiksys.net/download/ddumbfs/ddumbfs-1.1.tar.gz | tar -xzvf - -C /usr/src
cd /usr/src/ddumbfs-*
./configure
make
make install

2.3 Inicialización de Ddumbfs

Cree dos directorios. El primero debe ser un punto de montaje SSD para alojar el motor de los índices de ddumbfs. El segundo debe ser un punto de montaje donde sus volúmenes de almacenamiento Bacula se escriben, generalmente un gran conjunto de discos.

mkdir /mnt/ddumbfs.data

mkdir /mnt/ddumbfs.mnt

Inicie el mecanismo de deduplicación. En este ejemplo, se crea un volumen 999G, luego cambie al tamaño deseado que hace su disco:

mkddumbfs -B 128k -s 999G /mnt/ddumbfs.data
ddumbfs $TARGET -o parent=/mnt/ddumbfs.mnt

Agregar una nueva línea como esta para /etc/fstab, para hacer que el ddumbfs persistente después de la inicialización:

-oparent=/mnt/ddumbfs.data   /mnt/ddumbfs.mnt   fuse.ddumbfs   defaults  0  0

Reinicie la máquina para asegurarse de que el ddumbfs esté siempre montado en el momento del arranque.


3. Configuración de los Volúmenes Alineados Bacula

Es necesario instalar el paquete de Controladores Algined, disponible a través del repositorio de paquetes personales de bacula.org (Bacula Binary Package Download, requiere registro).

yum install bacula-aligned.x86_64

Reinicie el Storage Daemon para aplicar los cambios.

Este es un ejemplo del nuevo dispositivo bacula-sd.conf. DeviceType debe ser «Aligned»; MaximumConcurrentJobs debe ser «1»; Los valores del tamaño del bloque pueden variar según la deduplicación utilizada FileSystem:

Device {
  Name = Aligned-Disk
  Device Type = Aligned  # Precisa ser Aligned
  Media Type = File1
  Archive Device = /zfs/mnt   # Or /mnt/ddumbfs.mnt  in case of ddumbfs.
  LabelMedia = yes; 
  Random Access = Yes;
  AutomaticMount = yes; 
  RemovableMedia = no;
  AlwaysOpen = no;
  Maximum Concurrent Jobs = 1  # Siempre 1 para Aligned
  Minimum Block Size=0K
  Maximum Block Size=128K
  File Alignment=128K
  Padding Size=512
  Minimum Aligned Size=4096
}

Información detallada:

Para los sistemas de archivos ZFS, lessfs y ddumbfs, los siguientes valores producen excelentes resultados:
Block Size = 128K
File Alignment = 128K
Padding Size = 512
Mínimo Aligned Size = 4096

Para sistemas de archivos NetApp, los siguientes son preferibles:
Block Size = 64K
File Alignment = 4K
Padding Size = 4K
Mínimo Aligned Size = 4K

Donde los valores se muestran inmediatamente después del signo igual, y el K significa multiplicarse por 1024 bytes.
BlockSize es el tamaño de los bloques que se van a grabar en el volumen alineado.
File Alignment es la alineación del primer bloque de cada archivo original almacenado en el VolumenAluminado.
PaddingSize es la alineación en la que el último bloque de un archivo original se rellena con ceros si no está lleno.
MaximumAlignmentSize es el tamaño del archivo debajo del cual el archivo se colocará en el Volumen de Metadatos, en lugar del Volumen Alineado.

[Ref.: Sibbald, Kern – https://www.google.com/patents/US20160055169]

Por último, sólo adjunte el dispositivo bacula-sd creado a su Director. Edite su bacula-dir.conf:

Storage {
  Name = Disk-Backup
  Address = hfaria-desk-i5 
  SDPort = 9103
  Password = "5PWzqJzEokv3z9U_NwBd6bJ30ib1x4TMW"
  Device = Aligned-Disk
  Media Type = File1
}

Ejecute algunos trabajos de copia de seguridad completos. Después del primer trabajo completo, los próximos no deben aumentar el tamaño de almacenamiento desduplicado. El comando mostrará la ocupación de los datos:

df -h

Y el comando list jobs, de bconsole mostrará el tamaño que las tareas de copia de seguridad deberían ocupar.

Disfrutar!


 

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