Nosso Veeam Backup Free Edition tem sido a ferramenta gratuita mais popular da Veeam, principalmente graças à funcionalidade do VeeamZIP: realizar backup completos interativos de uma quantidade ilimitada de VMs. Mas o VeeamZIP sempre teve uma limitação pequena, mas irritante: a incapacidade de agendar backups regulares. Realmente, como só é possível ativar o VeeamZIP de forma interativa, não há uma maneira simples de agendá-lo com tarefas de backup regulares na interface. Se você já se deparou com esse problema, pode se alegrar em saber que, a partir do Update 2, não é mais assim. Graças aos fóruns da Veeam e nosso envolvimento no Veeam e em outras áreas, reconhecemos o problema e decidimos resolvê-lo ao disponibilizar o cmdlet do PowerShell Start-VBRZip disponível na Free Edition.
Como funciona
Como dissemos antes, a funcionalidade principal do Veeam Backup Free Edition é poder realizar backups VeeamZIP de suas VMs (e, é claro, recuperar VMs, arquivos guest e itens de aplicação desses backups). O VeeamZIP sempre gera um arquivo de backup completo (.vbk) que funciona como um ponto de restauração independente. A Free Edition permite armazenar esse arquivo em um repositório de backup, em uma pasta local ou em um compartilhamento de rede.
Quando você realiza um backup com o VeeamZIP, pode iniciar o processo de backup para a VM selecionada imediatamente. Esse tipo de backup requer um mínimo de configuração; portanto, é extremamente fácil ativá-lo manualmente.
Com o Update 2, agora você pode escrever um script simples de PowerShell (confira a amostra para VMware e para Hyper-V), que inicia a atividade do VeeamZIP para uma VM selecionada, e definir a programação que quiser para ele por meio do Agendador do Windows. Até criamos o script de exemplo a seguir que, além de ativar backups do VeeamZIP para as VMs selecionadas, manda por e-mail um relatório bem formatado com os resultados dos backups!
Parâmetros do script
O script pode realizar backups ad hoc das VMs selecionadas que estejam tanto em um host ou cluster independente quanto em um servidor vCenter. Antes de executar o script, você precisa fornecer três parâmetros obrigatórios: nomes das VMs para os backups, o host onde as VMs estão e a pasta onde os arquivos de backup devem ser armazenados. Observação: este script foi atualizado em 18/5 graças aos feedbacks.
##################################################################
# Variáveis definidas pelo usuário
##################################################################
# Nomes das VMs que passarão por backup, separados por vírgula (obrigatório). Por exemplo, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Nome do host vCenter ou ESXi independente nos quais as VMs estão (obrigatório).
$HostName = ""
# Pasta para a qual os backups das VMs devem ir (obrigatório; por exemplo, C:\Backup)
$Directory = ""
Opcionalmente, você pode alterar o nível de compactação e retenção desejado, desativar o quiescence do VMware, ativar a criptografia ou até mesmo configurar notificações:
# Nível de compactação desejado (opcional; valores possíveis: 0 - nenhum, 4 - amigável à deduplicação, 5 - ideal, 6 - alto, 9 - extremo)
$CompressionLevel = "5"
# Quiesce VM ao fazer snapshot (opcional; para usar o recurso, é preciso ter o VMware Tools ou os Componentes de Integração do Hyper-V no SO guest; valores possíveis: $True/$False)
$EnableQuiescence = $True
# Proteger o backup resultante com chave de criptografia (opcional; $True/$False)
$EnableEncryption = $False
# Chave de criptografia (opcional; caminho para uma string segura)
$EncryptionKey = ""
# Configurações de retenção (opcional; por padrão, os arquivos do VeeamZIP não são removidos, sendo mantidos no local especificado por tempo indeterminado.
# Valores possíveis: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"
Se quiser receber um relatório por e-mail quando o backup terminar, você também deve preencher as configurações de notificação a seguir.
##################################################################
# Configurações de notificação
##################################################################
# Ativar notificação (opcional)
$EnableNotification = $True
# Servidor de e-mail SMTP
$SMTPServer = ""
# Remetente do e-mail
$EmailFrom = ""
# Destinatário do e-mail
$EmailTo = ""
# Assunto do e-mail
$EmailSubject = ""
O relatório de e-mail resultante ficará parecido com o seguinte:
Name | Start Time | End Time | Result | Details |
CentOS-tiny_2015-03-26T180459 | 3/26/2015 6:04:59 PM | 3/26/2015 6:07:17 PM | Warning | Processing finished with warnings at 3/26/2015 6:07:13 PM Cannot use VMware Tools quiescence because VMware Tools are not found. |
CentOS-tiny_replica_2015-03-26T180720 | 3/26/2015 6:07:20 PM | 3/26/2015 6:11:20 PM | Success | Processing finished at 3/26/2015 6:11:18 PM |
Todas as configurações mencionadas acima, podem ser configuradas ao ajustar certas variáveis com os valores correspondentes. Por exemplo, para ativar a criptografia, você deve definir o valor $True (booleano) para a variável $EnableEncryption e fornecer a chave de criptografia (consulte o próximo capítulo). Além disso, se quiser que os arquivos de backup sejam excluídos depois de duas semanas, você deve definir o valor “In2Weeks” (string) para a variável $Retention, etc. Não é preciso lembrar o que cada variável faz e quais valores são aceitáveis; para sua conveniência, o script de exemplo inclui uma descrição curta para cada variável.
Criptografia
Vamos voltar a falar da criptografia. A segurança dos dados é fundamental na estratégia de backup. Os dados de backup devem ser protegidos do acesso não autorizado, especialmente quando o backup de uma VM confidencial é levado para um local externo ou arquivado em fitas. Para manter seus dados seguros, você pode criptografar seus backups do VeeamZIP. Como notamos acima, isso exige a escolha de um arquivo que contenha a senha de criptografia.
É claro que você poderia fornecer a senha ao script como uma string de texto puro. Mas strings comuns são, no mínimo, inseguras, já que são armazenadas na memória como texto puro. Como resultado, a maioria dos cmdlets PowerShell simplesmente não aceita senhas nesse formato.
Uma string segura é a melhor opção. Esse tipo de dado é parecido com a string comum, mas o conteúdo é criptografado na memória. Ele usa uma criptografia reversível para que a senha possa ser descriptografada quando for necessário, mas somente pela entidade de segurança que a criptografou. Para criar uma string segura, você precisa abrir o console do PowerShell e digitar as duas linhas abaixo. Quando esse código for executado, ele pedirá que você digite uma senha e, então, a salvará como uma string segura em um arquivo:
$SecurePassword =
Read-Host -Prompt
"Enter password" -AsSecureString
$SecurePassword |
ConvertFrom-SecureString
> > “Directory where secure string should be stored; C:\SecureString.txt, for instance”
Depois disso, especifique o caminho para o arquivo recém-criado no script principal:
# Proteger o backup resultante com chave de criptografia (opcional; $True/$False)
$EnableEncryption = $True
# Chave de criptografia (opcional; caminho para uma string segura)
$EncryptionKey = "C:\SecureString.txt"
Agendando o script
Antes de agendar o script, não deixe de iniciá-lo manualmente para garantir que ele funcione conforme o esperado.
A maneira mais fácil de agendar o script para realizar backups periódicos automaticamente é usar o Agendador de Tarefas do Windows. Basta acessar a ferramenta Agendador de Tarefas e criar uma tarefa básica nova:
Atribua um nome e uma descrição a ela para que você se lembre facilmente do que a tarefa faz.
A próxima página é o Disparador de Tarefa. Ele é bem básico e autoexplicativo. As opções disponíveis são bem flexíveis (é possível executar os backups várias vezes ao dia ou uma vez por mês), então ajuste os melhores valores para seus requisitos de RPO. A maioria das pessoas usa backups diários:
Ajuste a hora de início da tarefa fora do expediente. Neste exemplo, a tarefa é executada toda noite, às 22h, a partir de 22 de abril de 2015.
Na página seguinte, Ação, especifique que a tarefa agendada deve iniciar um programa e clique em Avançar.
No painel Iniciar um Programa, você vai inserir o seguinte comando no campo Programa/script:
Powershell –file “caminho para o arquivo Veeamzip.ps1”
Pronto! Mas talvez você queira abrir a tarefa depois de criada para fazer mais mudanças. Para isso, ative a opção Abrir a caixa de diálogo Propriedades desta tarefa ao clicar em Concluir:
Como a tarefa deve ser executada em um servidor no qual talvez não haja um usuário conectado quando a tarefa acontecer, é bom permitir que a tarefa seja executada independentemente do usuário estar conectado ou não, associando as credenciais do usuário à tarefa.
Quando terminar, clique com o botão direito na tarefa e escolha “Executar” para garantir que a tarefa seja concluída adequadamente:
O PowerShell oferece aos usuários o que eles sempre quiseram fazer com o Veeam Backup Free Edition!
Agora, com essa capacidade nova e incrível, você deve ser capaz de atingir aquele objetivo tão aguardado: fazer backups agendados com o Veeam Backup Free Edition, que oferece muito mais recursos de backup e recuperação do que as outras soluções gratuitas de backup baseadas em scripts.