*Actualizado con fork del rclone-changer compatible con Python 3.5 y superior para evitar fallas en la creación de volúmenes con la etiqueta barcodes.
Este instructivo objetiva establecer un dispositivo de Storage Bacula en el nuvem, utilizando rclone ( https://rclone.org/ ) y el script rclone-changer (https://github.com/wanderleihuttel/rclone-changer). Último, presenta fitas virtuales almacenados en la nube como una especie de VTL para el Bacula. Se utilizó al servicio Amazon S3 en este manual, pero tenemos observaciones de funcionamiento Oracle Cloud y Google Drive. Debe funcionar también en el todo storage de nube informados por el rclone: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, Dreamhost, Dropbox, FTP Google Cloud Storage, Google Drive, HTTP, Hubic, Memset Memstore, Microsoft Azure Blob Storage, Microsoft OneDrive, Minium, OVH, Openstack Swift, Oracle Cloud Storage, QingStor, Rackspace Cloud Files, SFTP, Wasabi, Yandex Disk y sistemas de archivos locales.
Funciones del Rclone:
- Hashes MD5/SHA1 comprobados el tiempo todo para comprobación de integridad del arquivo
- Timestamps preservados en arquivos
- Sincronismos parciales soportadas en el todo arquivo
- Modo de copia para que copien simplemente nuevos archivos/alterados
- Modo de sincronización (última) para hacer un comité de dirección idêntico
- Modo de comprobación para comprobar la igualdad del archivo hash
- Pode sincronizar y para la red, por ejemplo, dos cuentas de la nube diferentes
- Criptografia facultative (Crypt)
- Montagem FUSE facultativa (rclone mount)
Instalação y Configuración de Rclone
Como root, basta con realizar los siguientes comandos:
yum -y install unzip wget wget -qO- https://downloads.rclone.org/rclone-current-linux-amd64.zip -O /tmp/tmp.zip; unzip /tmp/tmp.zip -d /usr/src; rm -f /tmp/tmp.zip cd /usr/src/rclone-v* cp rclone /usr/bin/ chown root:root /usr/bin/rclone chmod 755 /usr/bin/rclone mkdir -p /usr/local/share/man/man1 cp rclone.1 /usr/local/share/man/man1/ mandb
Ahora es hora de acceder su almacenamiento nube y a buscar credenciales de acceso
programático.
Ya que estoy usando Amazon S3, debo acceder por la consola AWS el servicio de definición IAM, crear y el usuario, conceder direitos para que el servicio S3 y produzca una clave de acceso y un secreto (Access Key ÍDEM y Secreto key). Los copia para un bloque de notas, por lo tanto tendremos necesidad a continuación para configurar el a Rclone. Estas etapas se muestran en las siguientes capturas de pantalla:
Para generar la configuración de rclone, utilice el siguiente comando como root:
rclone config
Siga las instrucciones detalladas de documentación del rclone para configurar el almacenamiento de nube favorito: https://rclone.org/docs/
Después de proporcionar un nombre para este acceso y para responder a todas las demás cuestiones suplementarias, la configuración del rclone salvará la configuración en: /root/.config/rclone/rclone.conf
En mi ejemplo, aws era el nombre de mi configuración distante y esta era a salida:
[aws] env_auth = true access_key_id = AKIAIFTEYM3JK5VUXGBA secret_access_key = hjqF6wG/tNBqgpBbwBmQ3EQpok5U33W2ewSXD region = sa-east-1 endpoint = location_constraint = acl = private server_side_encryption = storage_class =
Es muy importante acceder acceso rclone a la nube. Realiza algunos comandos de prueba de la siguiente
manera:
# Enumerar buckets: rclone lsd aws: root@hfaria-asus-i5:/# rclone lsd aws: -1 2014-10-01 20:27:41 -1 baculaheitor # Si no existe, crea un bucket: rclone mkdir aws:new_bucket_name # Lista de contenido de un bucket: rclone ls aws:baculaheitor 6311 logs/2014-10-02-01-17-25-7F0DBBBFD43A20B7 2721 logs/2014-10-02-01-17-31-BFC439050C2B0AA9 666 logs/2014-10-02-02-17-36-D47447EC8F6759EE 2079 logs/2014-10-02-02-17-47-24DD21E3B85C5CAF 40108 logs/2014-10-02-03-17-10-4E9B7A829CEC7842 # Prueba la copia de un directorio a un bucket: rclone copy /etc aws:baculaheitor # Prueba la copia de un directorio desde el bucket: rclone copy aws:baculaheitor /tmp
Por último, copie la versión de la configuración funcional para el camino que el troqueur de rclone espera, de la siguiente manera:
cp ~/.config/rclone/rclone.conf /opt/bacula/etc/rclone.conf chown bacula /opt/bacula/etc/rclone.conf
É hora de implantar o rclone-changer.
Instalação y Configuración de Rclone-changer
Instale las dependencias python y python-yaml:
apt install -y python python-yaml # ó yum install -y python python-yaml
Descargue el rclone-changer y cree carpetas necesarias:
wget https://github.com/wanderleihuttel/rclone-changer/archive/master.zip -O /tmp/tmp.zip; unzip /tmp/tmp.zip -d /usr/src; rm -f /tmp/tmp.zip cp /usr/src/rclone-changer-master/rclone-changer /usr/sbin/ chmod +rx /usr/sbin/rclone-changer chown bacula /opt/bacula/working
A continuación, cree la carpeta y el archivo que alojan la grabación de cinta virtual. Cree también un directorio para la cola local de disco de Bacula, ya que se recomienda realizar copias de seguridad más rápidas y una copia más segura de la nube de la siguiente manera:
mkdir /mnt/vtapes && touch /mnt/vtapes/tape && chown -R bacula /mnt/vtapes/ mkdir /mnt/bacula-spool && chown bacula /mnt/bacula-spool
Añade a un dispositivo similar al archivo Bacula Storage Daemon Configuración (bacula-sd.conf):
Autochanger { Name = "rclone_aws" Device = aws Changer Device = 'aws:baculaheitor' # configuración remota del rclone y bucket de grabación. También puede especificar un directorio en el bucket Changer Command = "/usr/sbin/rclone-changer %c %o %S %a" # não mude isso } Device { Name = aws Media Type = aws Maximum Changer Wait = 18000 # puede ser necesario cambiar de acuerdo con la dimensión volúmenes Archive Device = /mnt/vtapes/tape # debe coincidir con el archivo creado en el paso anterior Autochanger = yes LabelMedia = yes; Random Access = Yes AutomaticMount = no RemovableMedia = no AlwaysOpen = no Spool Directory = /mnt/bacula-spool Maximum Spool Size = 524288000 }
Ahora, amarra el nuevo dispositivo Storage Daemon a su Director y también le crea un Grupo para:
Autochanger { Name = Cloud_aws Address = sd_address SDPort = 9103 Password = "EKPNGPoIe7wXO/oe6xwm9cXzHDgmiuS0qF3hyAhpEg+i" Device = rclone_aws Media Type = aws Autochanger = Cloud_aws Maximum Concurrent Jobs = 10 } Pool { Name = Offsite Pool Type = Backup Recycle = yes AutoPrune = yes Storage = Cloud_aws Maximum Volume Bytes = 1073741824 # recomendado AutoPrune = yes Volume Retention = 4 weeks }
Es importante tener en cuenta las consideraciones del desarrollador si desea cambiar la directiva Maximum Volume Bytes:
Recomenda que ti utiliza muchos grandes pequeños volúmenes al lugar. Intenta permanecer en una dimensión que su archivo medio se ingriesa sin ser muy pequeño. El razonamiento aquí está en una situación de recuperación si ti trabaja en volúmenes que deseas minimizar la cantidad de datos sin informe determinado trabajo de protección que ti preciso copiar localmente para que se recuperen. Si posees una cinta virtual de 10G y necesitas solamente 500M, ti aún tiene necesidad de esperar para que el 10G completo esté reducido antes de ti consiga recuperar datos. Pues, si su dimensión de archivo típica es por término medio 700M, los volúmenes de 1G probablemente son una buena idea. [ https://github.com/travisgroth/rclone-changer ]
Edite y compruebe que la versión del python y los directorios del rclone-changer son correctos y el usuario bacula de Linux tiene permiso para escribir en ellos. Es posible también cambiar el número de ranuras (cintas virtuales) que su robot virtual tendrá.
vi /usr/sbin/rclone-changer #!/usr/bin/env python ... #===================================================== # Default params config #===================================================== rclone = '/usr/bin/rclone' config = '/opt/bacula/etc/rclone.conf' logFile = '/opt/bacula/working/rclone.log' logChanger = '/opt/bacula/working/rclone-changer.log' lockFile = '/opt/bacula/working/.rclonelock' stateFile = '/opt/bacula/working/rclone-changer.state' slots = 100 #=====================================================
Entonces, crea etiquetas de Bacula de cinta virtual. Utiliza el bconsole para eso:
label barcodes storage=Cloud_aws pool=Offsite
Si tiene problemas para etiquetar las cintas virtuales, comprueba todos los pedidos anteriores y las concesiones de autorización. Para reiniciar VTL e intentar aún, elimina el archivo vtape y rclone-change state.
rm -f /mnt/vtapes/tape* rm -f /opt/bacula/working/rclone-changer.state touch /mnt/vtapes/tape && chown -R bacula /mnt/vtapes/
¡Listo! Execute un Trabajo de protección de prueba al Grupo Offsite y crea rutinas del Programa para la nube, de acuerdo con sus necesidades. Las cintas virtuales se modificarán y responsables en la nube automagicamente, como en las siguientes capturas de pantalla:
Resolução de Problemas do Rclone-changer
Estos son los lugares donde el rclone y el rclone-change guardan sus mensajes de registro:
cat /opt/bacula/working/rclone.log cat /opt/bacula/working/rclone-changer.log
Disponível em: Português (Portugués, Brasil)
Español