Tools: Migração Bacula Enterprise para Oracle Cloud (OCI): Guia Completo

Tools: Migração Bacula Enterprise para Oracle Cloud (OCI): Guia Completo

🎯 Cenário: Migração para OCI com Proxmox

🏗️ Arquitetura Alvo no OCI

📋 Passo 1: Preparar Ambiente OCI

1.1: Criar VCN e Subnet Privada

1.2: Configurar Service Gateway (Para Object Storage)

1.3: Criar Block Volume

📦 Passo 2: Provisionar e Configurar VM

2.1: Criar Compute Instance

2.2: Anexar Block Volume (iSCSI)

🔐 Passo 3: Configurar Credenciais OCI para Object Storage

3.1: Criar API Key

3.2: Criar Arquivo de Configuração OCI

📡 Passo 4: Instalar e Configurar Bacula Enterprise

4.1: Adicionar Repositório Bacula

4.2: Configurar Storage para Block Volume

4.3: Configurar Cloud Storage para Object Storage OCI

4.4: Gerar Customer Secret Keys

✅ Passo 5: Validação e Testes

5.1: Testar Conectividade com Object Storage

5.2: Testar Mount do Block Volume

5.3: Executar Backup de Teste

⚠️ Troubleshooting

Erro: "Cannot connect to Object Storage endpoint"

Erro: "Block Volume disconnected after reboot"

Performance lenta no Object Storage

📊 Custos Estimados (OCI - São Paulo)

Posso usar IAM Authentication em vez de Customer Secret Keys?

É possível usar Archive Storage em vez de Standard?

Como migrar volumes existentes para OCI?

🔗 Recursos Adicionais Planejar uma migração do bacula oracle cloud oci exige atenção aos detalhes de armazenamento de blocos e latência de rede para garantir a integridade dos dados. Você precisa migrar seu Bacula Enterprise para Oracle Cloud Infrastructure (OCI) e está enfrentando desafios com mount points, credenciais e redes privadas? Este guia fornece um playbook completo para recriar sua infraestrutura de backup no OCI, incluindo configuração de Block Volumes, Object Storage e troubleshooting de conectividade. Para mais informações, consulte a documentação oficial Bacula. Este tutorial cobre a migração de um ambiente com: Componente

Tipo OCIConfiguração Compute (VM Bacula)VM.Standard.E4.Flex4 OCPUs, 32 GB RAM Storage PrimárioBlock Volume (iSCSI)500 GB, Performance Tier Storage SecundárioObject StorageStandard Tier (cold backup) RedeVCN Privada10.0.0.0/16 com Service Gateway No Console OCI → Networking → Virtual Cloud Networks: No Console OCI → Attached Block Volumes → Attach Commands: No Console OCI → Identity → Users → Seu Usuário → API Keys: Adicione a chave pública no console OCI e copie o Fingerprint. Edite /opt/bacula/etc/bacula-sd.conf: ⚠️ IMPORTANTE: O acesso ao Object Storage via rede privada não suporta autenticação IAM nativa. Você precisa usar Customer Secret Keys (compatível com S3). No Console OCI → Identity → Users → Seu Usuário → Customer Secret Keys: Causa: Service Gateway não configurado ou Route Table incorreta. Causa: iSCSI não configurado para autostart. RecursoEspecificaçãoCusto Mensal (USD) Compute VM4 OCPU, 32 GB RAM~$80 Block Volume500 GB Balanced~$30 Object Storage1 TB Standard

~$23 Não em redes privadas. O Bacula S3 driver requer credenciais estáticas (Access Key + Secret Key). Sim, mas o custo de retrieval é alto. Recomendamos Archive apenas para backups com retenção > 1 ano. Use bcopy ou bscan para recriar o catálogo após copiar volumes via rsync ou rclone. Última atualização: Janeiro de 2026 | Testado no OCI São Paulo com Bacula 18.2.1 Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Code Block

Copy

- ✅ **Bacula Director/SD:** Oracle Linux 9.6 - ✅ **Hypervisor:** Proxmox VE 9.x - ✅ **Storage:** Block Volume OCI (iSCSI) + Object Storage (arquivamento) - ✅ **Rede:** Privada (sem acesso público direto ao Object Storage) - ✅ **Bacula Director/SD:** Oracle Linux 9.6 - ✅ **Hypervisor:** Proxmox VE 9.x - ✅ **Storage:** Block Volume OCI (iSCSI) + Object Storage (arquivamento) - ✅ **Rede:** Privada (sem acesso público direto ao Object Storage) - ✅ **Bacula Director/SD:** Oracle Linux 9.6 - ✅ **Hypervisor:** Proxmox VE 9.x - ✅ **Storage:** Block Volume OCI (iSCSI) + Object Storage (arquivamento) - ✅ **Rede:** Privada (sem acesso público direto ao Object Storage) Nome: vcn-bacula-prod CIDR: 10.0.0.0/16 Subnet Privada: Nome: subnet-bacula-private CIDR: 10.0.1.0/24 Route Table: rtable-private (com Service Gateway) Nome: vcn-bacula-prod CIDR: 10.0.0.0/16 Subnet Privada: Nome: subnet-bacula-private CIDR: 10.0.1.0/24 Route Table: rtable-private (com Service Gateway) Nome: vcn-bacula-prod CIDR: 10.0.0.0/16 Subnet Privada: Nome: subnet-bacula-private CIDR: 10.0.1.0/24 Route Table: rtable-private (com Service Gateway) Nome: sgw-bacula Serviços: OCI Object Storage (região local) Nome: sgw-bacula Serviços: OCI Object Storage (região local) Nome: sgw-bacula Serviços: OCI Object Storage (região local) Destino: Object Storage (via Service Gateway) Target: sgw-bacula Destino: Object Storage (via Service Gateway) Target: sgw-bacula Destino: Object Storage (via Service Gateway) Target: sgw-bacula Nome: bv-bacula-backup Size: 500 GB Performance: Balanced Attachment Type: iSCSI Nome: bv-bacula-backup Size: 500 GB Performance: Balanced Attachment Type: iSCSI Nome: bv-bacula-backup Size: 500 GB Performance: Balanced Attachment Type: iSCSI Image: Oracle Linux 9.6 Shape: VM.Standard.E4.Flex (4 OCPU / 32 GB RAM) Network: subnet-bacula-private Public IP: Não (acesso via Bastion ou VPN) Image: Oracle Linux 9.6 Shape: VM.Standard.E4.Flex (4 OCPU / 32 GB RAM) Network: subnet-bacula-private Public IP: Não (acesso via Bastion ou VPN) Image: Oracle Linux 9.6 Shape: VM.Standard.E4.Flex (4 OCPU / 32 GB RAM) Network: subnet-bacula-private Public IP: Não (acesso via Bastion ou VPN) # Conectar iSCSI sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:XXXXXX -p 169.254.2.2:3260 sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:XXXXXX -n node.startup -v automatic sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:XXXXXX -p 169.254.2.2:3260 -l # Verificar disco lsblk # Deve aparecer como /dev/sdb (por exemplo) # Formatar e montar sudo mkfs.xfs /dev/sdb sudo mkdir -p /backup echo '/dev/sdb /backup xfs defaults,_netdev 0 2' | sudo tee -a /etc/fstab sudo mount -a sudo chown -R bacula:bacula /backup # Conectar iSCSI sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:XXXXXX -p 169.254.2.2:3260 sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:XXXXXX -n node.startup -v automatic sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:XXXXXX -p 169.254.2.2:3260 -l # Verificar disco lsblk # Deve aparecer como /dev/sdb (por exemplo) # Formatar e montar sudo mkfs.xfs /dev/sdb sudo mkdir -p /backup echo '/dev/sdb /backup xfs defaults,_netdev 0 2' | sudo tee -a /etc/fstab sudo mount -a sudo chown -R bacula:bacula /backup # Conectar iSCSI sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:XXXXXX -p 169.254.2.2:3260 sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:XXXXXX -n node.startup -v automatic sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:XXXXXX -p 169.254.2.2:3260 -l # Verificar disco lsblk # Deve aparecer como /dev/sdb (por exemplo) # Formatar e montar sudo mkfs.xfs /dev/sdb sudo mkdir -p /backup echo '/dev/sdb /backup xfs defaults,_netdev 0 2' | sudo tee -a /etc/fstab sudo mount -a sudo chown -R bacula:bacula /backup openssl genrsa -out ~/.oci/oci_api_key.pem 2048 openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem openssl genrsa -out ~/.oci/oci_api_key.pem 2048 openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem openssl genrsa -out ~/.oci/oci_api_key.pem 2048 openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem mkdir -p /opt/bacula/.oci cat > /opt/bacula/.oci/config <<EOF [DEFAULT] user=ocid1.user.oc1..aaaaaaaa... fingerprint=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx tenancy=ocid1.tenancy.oc1..aaaaaaaa... region=sa-saopaulo-1 key_file=/opt/bacula/.oci/oci_api_key.pem EOF sudo chown -R bacula:bacula /opt/bacula/.oci sudo chmod 600 /opt/bacula/.oci/* mkdir -p /opt/bacula/.oci cat > /opt/bacula/.oci/config <<EOF [DEFAULT] user=ocid1.user.oc1..aaaaaaaa... fingerprint=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx tenancy=ocid1.tenancy.oc1..aaaaaaaa... region=sa-saopaulo-1 key_file=/opt/bacula/.oci/oci_api_key.pem EOF sudo chown -R bacula:bacula /opt/bacula/.oci sudo chmod 600 /opt/bacula/.oci/* mkdir -p /opt/bacula/.oci cat > /opt/bacula/.oci/config <<EOF [DEFAULT] user=ocid1.user.oc1..aaaaaaaa... fingerprint=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx tenancy=ocid1.tenancy.oc1..aaaaaaaa... region=sa-saopaulo-1 key_file=/opt/bacula/.oci/oci_api_key.pem EOF sudo chown -R bacula:bacula /opt/bacula/.oci sudo chmod 600 /opt/bacula/.oci/* cat > /etc/yum.repos.d/Bacula-Enterprise.repo <<'EOF' [baculasystems-bin] name = rhel9-64 - baculasystems bin 18.2.1 baseurl = https://www.baculasystems.com/dl/[SEU-DA-CODE]/rpms/bin/18.2.1/rhel9-64/ enabled = 1 gpgcheck = 0 EOF dnf -y install bacula-enterprise-director bacula-enterprise-storage bacula-enterprise-client cat > /etc/yum.repos.d/Bacula-Enterprise.repo <<'EOF' [baculasystems-bin] name = rhel9-64 - baculasystems bin 18.2.1 baseurl = https://www.baculasystems.com/dl/[SEU-DA-CODE]/rpms/bin/18.2.1/rhel9-64/ enabled = 1 gpgcheck = 0 EOF dnf -y install bacula-enterprise-director bacula-enterprise-storage bacula-enterprise-client cat > /etc/yum.repos.d/Bacula-Enterprise.repo <<'EOF' [baculasystems-bin] name = rhel9-64 - baculasystems bin 18.2.1 baseurl = https://www.baculasystems.com/dl/[SEU-DA-CODE]/rpms/bin/18.2.1/rhel9-64/ enabled = 1 gpgcheck = 0 EOF dnf -y install bacula-enterprise-director bacula-enterprise-storage bacula-enterprise-client Device { Name = FileChgr1-Dev1 Media Type = File1 Archive Device = /backup LabelMedia = yes Random Access = yes AutomaticMount = yes RemovableMedia = no AlwaysOpen = no Maximum Concurrent Jobs = 10 } Device { Name = FileChgr1-Dev1 Media Type = File1 Archive Device = /backup LabelMedia = yes Random Access = yes AutomaticMount = yes RemovableMedia = no AlwaysOpen = no Maximum Concurrent Jobs = 10 } Device { Name = FileChgr1-Dev1 Media Type = File1 Archive Device = /backup LabelMedia = yes Random Access = yes AutomaticMount = yes RemovableMedia = no AlwaysOpen = no Maximum Concurrent Jobs = 10 } Cloud { Name = OCI-ObjectStorage Driver = "S3" HostName = "objectstorage.sa-saopaulo-1.oraclecloud.com" BucketName = "bacula-archive" AccessKey = "[ACCESS-KEY]" SecretKey = "[SECRET-KEY]" Protocol = HTTPS UriStyle = VirtualHost Upload = EachPart MaximumUploadBandwidth = 10MB/s } Cloud { Name = OCI-ObjectStorage Driver = "S3" HostName = "objectstorage.sa-saopaulo-1.oraclecloud.com" BucketName = "bacula-archive" AccessKey = "[ACCESS-KEY]" SecretKey = "[SECRET-KEY]" Protocol = HTTPS UriStyle = VirtualHost Upload = EachPart MaximumUploadBandwidth = 10MB/s } Cloud { Name = OCI-ObjectStorage Driver = "S3" HostName = "objectstorage.sa-saopaulo-1.oraclecloud.com" BucketName = "bacula-archive" AccessKey = "[ACCESS-KEY]" SecretKey = "[SECRET-KEY]" Protocol = HTTPS UriStyle = VirtualHost Upload = EachPart MaximumUploadBandwidth = 10MB/s } Nome: bacula-s3-access # Copie Access Key e Secret Key Nome: bacula-s3-access # Copie Access Key e Secret Key Nome: bacula-s3-access # Copie Access Key e Secret Key # Instalar OCI CLI bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" # Testar upload echo "teste" > /tmp/teste.txt oci os object put --bucket-name bacula-archive --file /tmp/teste.txt --name teste.txt --config-file /opt/bacula/.oci/config # Instalar OCI CLI bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" # Testar upload echo "teste" > /tmp/teste.txt oci os object put --bucket-name bacula-archive --file /tmp/teste.txt --name teste.txt --config-file /opt/bacula/.oci/config # Instalar OCI CLI bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" # Testar upload echo "teste" > /tmp/teste.txt oci os object put --bucket-name bacula-archive --file /tmp/teste.txt --name teste.txt --config-file /opt/bacula/.oci/config df -h | grep /backup # Deve mostrar 500G disponível # Teste de escrita sudo -u bacula dd if=/dev/zero of=/backup/teste.dat bs=1M count=1000 sudo rm -f /backup/teste.dat df -h | grep /backup # Deve mostrar 500G disponível # Teste de escrita sudo -u bacula dd if=/dev/zero of=/backup/teste.dat bs=1M count=1000 sudo rm -f /backup/teste.dat df -h | grep /backup # Deve mostrar 500G disponível # Teste de escrita sudo -u bacula dd if=/dev/zero of=/backup/teste.dat bs=1M count=1000 sudo rm -f /backup/teste.dat bconsole *run job=backup-catalogo yes *status dir bconsole *run job=backup-catalogo yes *status dir bconsole *run job=backup-catalogo yes *status dir - Verificar Route Table da Subnet tem regra para Service Gateway - Testar conectividade: `telnet objectstorage.sa-saopaulo-1.oraclecloud.com 443` - Verificar Security List permite tráfego HTTPS (porta 443) - Verificar Route Table da Subnet tem regra para Service Gateway - Testar conectividade: `telnet objectstorage.sa-saopaulo-1.oraclecloud.com 443` - Verificar Security List permite tráfego HTTPS (porta 443) - Verificar Route Table da Subnet tem regra para Service Gateway - Testar conectividade: `telnet objectstorage.sa-saopaulo-1.oraclecloud.com 443` - Verificar Security List permite tráfego HTTPS (porta 443) sudo systemctl enable iscsid sudo systemctl enable iscsi sudo systemctl enable iscsid sudo systemctl enable iscsi sudo systemctl enable iscsid sudo systemctl enable iscsi - Bandwidth configurado no Cloud Storage (`MaximumUploadBandwidth`) - Tamanho dos chunks (`Upload = EachPart` vs `AfterJob`) - Latência da rede (ping para endpoint OCI) - Bandwidth configurado no Cloud Storage (`MaximumUploadBandwidth`) - Tamanho dos chunks (`Upload = EachPart` vs `AfterJob`) - Latência da rede (ping para endpoint OCI) - Bandwidth configurado no Cloud Storage (`MaximumUploadBandwidth`) - Tamanho dos chunks (`Upload = EachPart` vs `AfterJob`) - Latência da rede (ping para endpoint OCI) - [OCI Block Volumes Documentation](https://docs.oracle.com/en-us/iaas/Content/Block/home.htm) - [Bacula Enterprise Cloud Storage](https://www.baculasystems.com/documentation-downloads/) - [Mais tutoriais de Bacula no TecMestre](https://tecmestre.com.br/bacula-enterprise/) - [OCI Block Volumes Documentation](https://docs.oracle.com/en-us/iaas/Content/Block/home.htm) - [Bacula Enterprise Cloud Storage](https://www.baculasystems.com/documentation-downloads/) - [Mais tutoriais de Bacula no TecMestre](https://tecmestre.com.br/bacula-enterprise/) - [OCI Block Volumes Documentation](https://docs.oracle.com/en-us/iaas/Content/Block/home.htm) - [Bacula Enterprise Cloud Storage](https://www.baculasystems.com/documentation-downloads/) - [Mais tutoriais de Bacula no TecMestre](https://tecmestre.com.br/bacula-enterprise/)