Esta guía rápida está destinada a proporcionar información sobre los procesos necesarios para implementar backups almacenados de soluciones de S3, CEPH y otros proveedores de servicios en la nube usando el Cloud Driver de Bacula Community o Enterprise.
Amazon Web Services (AWS), Wasabi, Huawei Cloud y BackBlaze son algunos de los proveedores de almacenamiento de objetos probados, pero la mayoría de las tecnologías S3 y CEPH (con S3 Gateway) son compatibles con Bacula Cloud Driver. Oracle Cloud, Azure, Google Cloud, Swift (etc.) tienen controladores específicos exclusivos de Bacula Enterprise.
El Driver proporciona un tipo más de dispositivo de almacenamiento Bacula, lo que permite al administrador de Bacula administrar discos locales, cintas magnéticas y ahora múltiples backups almacenados en dispositivos en la nube, utilizando cualquier arquitectura o distribución deseada.
Bacula es solo el software. El servicio de almacenamiento de objetos debe comprarse en su proveedor de servicios favorito.
Transmisión Cloud y Caché
La transmisión del Driver Cloud Bacula, está limitada sólo por las funciones de lectura de disco de los clientes de copia de seguridad, las redes locales y la nube.
Para evitar cuellos de botella de conexión a Internet, el controlador admite técnicas avanzadas de caché local y de división de datos. La caché se puede mantener para restauraciones locales más rápidas o automáticamente descartado (truncado), de acuerdo con la voluntad del administrador Bacula y el almacenamiento en disco local disponible.
Estas son las posibles directivas para la nueva función Cloud, de bacula-sd.conf:
TruncateCache = AfterUpload # Cada parte del volumen de caché se eliminará poco después de la carga. Tenga en cuenta que, si se especifica esta opción, todas las restauraciones requerirán una descarga desde la nube. # TruncateCache = AtEndOfJob # Al final del trabajo, cada parte que se haya enviado con éxito a la nube será eliminada (truncada). Tenga en cuenta que, si se especifica esta opción, todas las restauraciones requerirán una descarga desde la nube. # TruncateCache = No # En este caso, el administrador debe especificar o truncar manualmente o mediante un administrador de secuencia de comandos de la consola (por ejemplo: cloud truncate). Upload = EachPart # se carga cuando una parte (subdivisión del volumen) alcanza el tamaño máximo, incluso durante un Job de respaldo. # Upload = AfterJob # carga las partes del volumen solo después de que se complete el trabajo. # Upload = No # no haces carga automáticamente. El administrador debe especificar hacerlo o truncarlo manualmente o mediante una consola de comandos del script de administración (por ejemplo: cloud upload allpools allfrompool storage=<nombre_storage>).
También puede limitar el ancho de banda de transmisión.
Instalación
El controlador se instala en la misma máquina que aloja el Bacula Storage Daemon. Para instalar ambos, añada un nuevo repositorio a su distribución RedHat / CentOS, reemplazando @client-string@ por su código de cliente exclusivo y @version@ por la versión deseada de Bacula Enterprise:
cat /etc/yum.repos.d/bacula.repo [Bacula] name=Bacula Enterprise Edition baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/bin/@version@/rhel7-64/ enabled=1 protect=0 gpgcheck=0 [BEECloudPlugin] name=BEE Cloud Plugin baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/cloud/@version@/rhel7-64/ enabled=1 protect=0 gpgcheck=0
El Cloud Driver también está disponible para Debian. Por ejemplo:
cat /etc/apt/sources.list.d/bacula.list #Bacula Enterprise deb https://www.baculasystems.com/dl/@customer-string@/debs/bin/@version@/jessie-64/ jessie main deb https://www.baculasystems.com/dl/@customer-string@/debs/cloud/@version@/jessie-64/ jessie cloud
Utilice el gestor de paquetes para actualizar e instalar el controlador. Por ejemplo:
yum install bacula-enterprise-cloud-storage # or apt-get update && apt-get install bacula-enterprise-cloud-storage
Configuración
Como se muestra en la Figura 1, cree una nueva configuración de conexión en la nube. Puede utilizar bweb para ejecutar esto.
Figura 1. Nueva Configuración de Conexión Cloud de Storage Daemon
Los ejemplos de configuración texto de los proveedores de servicios de nube AWS y CEPH alternativos se enumeran de la siguiente manera:
Cloud { Name = AWS Driver = "S3" HostName = "s3.amazonaws.com" BucketName = "su_bucket" AccessKey = "xyz" SecretKey = "abc" Protocol = HTTPS UriStyle = VirtualHost Truncate Cache = AfterUpload Upload = EachPart Region = "us-east-1" MaximumConcurrentUploads=20 MaximumConcurrentDownloads=20 # MaximumUploadBandwidth = 5MB/s # Opcional }
Cloud { Name = CEPH_S3 Driver = "S3" HostName = ceph.mydomain.lan BucketName = "CEPHBucket" AccessKey = "xxxXXXxxxx" SecretKey = "xxheeg7iTe0Gaexee7aedie4aWohfuewohxx0" Protocol = HTTPS Upload = EachPart Truncate Cache = AfterUpload UriStyle = Path # Must be set for CEPH MaximumConcurrentUploads=20 MaximumConcurrentDownloads=20 }
Después de la configuración de la nube, como se muestra en la Figura 2, añada un dispositivo Bacula Storage Daemon que grabará en el bucket configurado. Debe tener el Cloud DeviceType y utilizar la misma configuración de nube creada anteriormente. ArchiveDevice es la ruta de la caché de disco local, por lo general con un gran espacio disponible. MediaType debe ser un nombre exclusivo para todos los demás Dispositivos Bacula existentes y el MaximumPartSize es el tamaño de los datos divididos que el Bacula transferirá al bucket.
Figura 2. Nuevo dispositivo de almacenamiento de demonios
A continuación, se muestra un ejemplo de configuración de texto de un solo dispositivo Storage Daemon (tenga en cuenta que el Plugin Cloud también es compatible con el Autochanger, que son grupos de dispositivos Bacula):
Device { Name = MyCloudAWS Device Type = Cloud Cloud = AWS Archive Device = /mnt/backups # volúmenes de caché local Maximum Part Size = 500 MB # importante: es la granularidad de carga del objeto Media Type = Cloud01 LabelMedia = yes Random Access = Yes; AutomaticMount = yes RemovableMedia = no AlwaysOpen = no }
Finalmente, como se muestra en la Figura 3, es hora de atar el nuevo Device del Storage Daemon a su Director de Bacula. Cree una nueva configuración de almacenamiento para el Director. La dirección y la contraseña generalmente son las mismas que ya se utilizan con los Devices ya creados para el mismo Storage Daemon. DeviceName y MediaType deben coincidir con los valores definidos en la configuración del dispositivo recién creado.
Figura 3. Nueva Configuración de Storage en el Director
Es aconsejable también crear una o más nuevas Pools para alojar copias de seguridad en la nube, utilizando el almacenamiento recién creado. Se puede especificar un nuevo valor de tiempo de la directiva CacheRetention Pool (x días, meses, etc.) para determinar la caducidad de los volúmenes almacenados en caché.
Modifique Jobs y Horarios de Bacula para usar los nuevos Cloud Pools, a su criterio.
Aplicar cambios y realizar un trabajo de copia de seguridad de prueba.
Prueba y Solución de problemas
El S3 CLI puede usarse para probar AWS y otras conexiones de Cloud Storage. Puede instalarlo utilizando pip:
yum -y install python-pip pip install awscli
El siguiente comando se puede utilizar para configurar la conexión de bucket:
aws configure
La creación de bucket y una lista se pueden realizar de la siguiente manera (por ejemplo):
aws s3api --endpoint-url='https://s3.amazonaws.com' create-bucket --bucket bsyssdsync aws s3 ls
Más comandos, detalles e información general sobre el Bacula Enterprise Cloud Driver se pueden encontrar en el whitepaper de referencia.
Referencia
Bacula Cloud Backup – Bacula Enterprise Edition. http://baculasystems.com
Disponível em: Português (Portugués, Brasil)English (Inglés)Español