🎯 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
- ✅ **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/)