domingo, 30 de maio de 2010

Migração do Bacula 2.4.X para 5.0.2

Para os sysadmins que ainda tem dúvidas se é seguro migrar o Bacula 2.4.X ou 3.X para a versão 5.0.X, fica a nota: realizei uma migração semana passada e tudo ocorreu de forma muito tranquila. Segue o passo a passo da operação:
  • Em um novo servidor, baixei os fontes do Bacula 5.0.2.
  • Compilei e instalei o software.
  • Fiz uma cópia do DB MySQL antigo chamado bacula para um outro DB MySQL com o nome de bacula5 (esse procedimento pode ser realizado rapidamente com o uso do phpMyAdmin) .
  • Editei o script de atualização updatedb/update_mysql_tables_10_to_11, alterando a variável db_name para bacula5. Esse passo foi necessário para garantir que o novo banco (bacula5) fosse atualizado.Rodei então o script para migrar o banco de dados da versão 10 (Bacula 2.4.X) para a versão 11 (Bacula 3.X). Se você usa a versão 3.X não é necessário realizar esse procedimento.
  • Realizei alteração similar no script de atualização src/cats/update_bacula_tables e depois rodei o mesmo para migrar da versão 11 para a versão 12 (Bacula 5.0.X).
  • Copiei os initscripts e também os arquivos de configuração do Bacula 2.4.X e iniciei o Bacula 5 com sucesso.
O Bacula 5 está rodando perfeitamente e vários backups já foram realizados. Além disso, não foi preciso atualizar os clientes (bacula-fd), pois todos servidores continuaram usando a versão antiga sem problemas.

Obviamente, devido a abordagem aplicada, ainda não estou utilizando nenhum recurso novo da versão 5 (e nem da 3), mas isso ficou para uma segunda etapa, já que o objetivo inicial, que era atualizar o software mantendo o serviço funcional, foi realizado com êxito.

Se você ainda tinha algum receio sobre a atualização, creio não haver razão para isso. Obviamente, a realização de um backup dos dados e configurações (mesmo que seja um simples .tar.gz) sempre é recomendado.

PS: ainda não efetuei nenhum restore dos dados. Realizarei tal tarefa na semana que vem, mas não vejo motivos para não funcionar.

UPDATE 31/05/10: com a operação não foi mais possível referir-se aos volumes no bconsole usando o MediaID. Agora, só é possível manipulá-los volumes usando o VolumeName.

UPDATE 13/03/12: para referir-se aos volumes, pode-se utilizar (além do VolumeName) o *MediaID (atenção especial ao * antes do ID da mídia).