Como fazer backup de VMs do Citrix Xen gratuitamente com o Xen-Pocalypse (Bash)

Índice:

Como fazer backup de VMs do Citrix Xen gratuitamente com o Xen-Pocalypse (Bash)
Como fazer backup de VMs do Citrix Xen gratuitamente com o Xen-Pocalypse (Bash)

Vídeo: Como fazer backup de VMs do Citrix Xen gratuitamente com o Xen-Pocalypse (Bash)

Vídeo: Como fazer backup de VMs do Citrix Xen gratuitamente com o Xen-Pocalypse (Bash)
Vídeo: ADEUS USB!! TRANSFERIR E RECEBER ARQUIVOS SEM CABO!! CELULAR e PC!(MELHOR FORMA) - YouTube 2024, Abril
Anonim
Você já precisou fazer backup de suas Máquinas Virtuais (VMs) Citrix Xen, mas não quis quebrar o banco fazendo isso? HTG tem apenas o script bash para você com o Xen-Pocalypse.
Você já precisou fazer backup de suas Máquinas Virtuais (VMs) Citrix Xen, mas não quis quebrar o banco fazendo isso? HTG tem apenas o script bash para você com o Xen-Pocalypse.

Imagem por h.koppdelaney, Stuck in Custom e Hotfortech.

Uma das coisas boas do Citrix Xen é que muitas de suas características são livre de cobrança. Com isso dito, se você quiser o recurso “Proteção e recuperação automatizada de VMs”, terá que começar a pagar pela licença “Advance”. Mesmo assim, você está pagando somente por backups em nível de disco, que não são suficientes para muitos tipos de cargas de trabalho, como Active directory, Databases & Etc. Para superar isso, você pode querer o “Live memory snapshot e revert”, que pode salvar estado da máquina, incluindo o conteúdo da RAM. No entanto, esse recurso faz parte das edições “Enterprise” e “Platinum”, que são ainda mais caras. Não estamos descartando o valor de um verdadeiro software de backup, mas se você estiver com um orçamento apertado e não se incomodar com o tempo de inatividade para a operação de backup, talvez o Xen-Pocalypse seja uma solução perfeitamente razoável. antes de você fazer o compromisso do orçamento.

visão global

O “caso de uso”: você tem algumas VMs que exigem um backup. O "desligar uma VM e exportá-la como um arquivo" do "Xen Center" usando os cliques da direita funciona bem, mas você quer que esse processo aconteça automaticamente e em um cronograma. Este script Bash usa o comando "XE" para executar suas tarefas. XE é a interface de linha de comando (CLI) do Xen, equivalente automática para a emissão dos “cliques certos” no “Xen Center”. Nós estaremos chamando o script de Cron, que irá fornecer a parte "agendamento". Em sua forma mais simples, o fluxo de backup é:

  • Desligue a VM de destino.
  • Exporte a VM como um arquivo para o local de backup.
  • Se a VM foi ativada, antes do backup ser iniciado, ela será ativada novamente.

Vamos começar a quebrar:)

Obtenha o script

O Xen-pocalypse pode ser livremente obtido do github, usando os métodos regulares do git. Com isso dito, se você ainda não conhece o git, pode pegar o arquivo zip com este link. Como o script precisa ser executado em um de seus servidores Xen, você deve extraí-lo para que as permissões de execução sejam preservadas.

wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip unzip master

Embora o acima funcione, é aconselhável usar o método GIT, para que você possa se beneficiar de futuras atualizações.

Obter o SendEmail (opcional)

Já escrevemos sobre o programa perl do SendEmail, portanto, não é necessário reiterar aqui. Basta dizer que funciona da mesma maneira no Linux e no Windows.

Embora a ativação do email seja opcional, é altamente recomendável, porque o script poderá:

  • Informe você quando começou e terminou a execução.
  • Alertá-lo sobre quaisquer erros que ele possa detectar e manipular.
  • Informar sobre desqualificações de backup devido a problemas de espaço. (Esse comportamento pode ser desabilitado se não desejado)

Faça o download para o servidor Xen e extraia.

wget https://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar xvzhf sendEmail-v1.56.tar.gz

Observe o local onde você o extraiu. Você precisará disso para o arquivo de configurações.

Definindo Tags

O Citrix Xen oferece a capacidade de configurar “Campos personalizados” para recursos de filtragem. Vamos criar os campos e depois preenchê-los com as informações usadas pelo Xen-Pocalypse. O Xen-Pocalypse reconhece 3 TAGs de controle que designam o nome da tag para backup e as relações pai para filho. Se você não pretende usar o método de entrada de arquivo, você DEVE criar pelo menos o campo de nome da marca de backup.

Para fazer isso, abra as propriedades do servidor ou até mesmo de uma VM. No painel de navegação, selecione “Campos personalizados”.

Se esta é a primeira vez que você define um relacionamento (como no exemplo acima), você não terá campos para inserir dados, então você precisa criá-los. Para fazer isso, clique em “Edit Custom Fields” na caixa de diálogo que aparece, clique em “Add…”
Se esta é a primeira vez que você define um relacionamento (como no exemplo acima), você não terá campos para inserir dados, então você precisa criá-los. Para fazer isso, clique em “Edit Custom Fields” na caixa de diálogo que aparece, clique em “Add…”
Crie três (3) campos do tipo "Texto". Um será chamado de “BackupTAG” e os outros “Parent” e “Children”.
Crie três (3) campos do tipo "Texto". Um será chamado de “BackupTAG” e os outros “Parent” e “Children”.

Nota: Os nomes dos campos personalizados foram "codificados" no script, portanto você NÃO deve se desviar da grafia acima, a menos que você altere o código relevante também.

Depois que todos os campos forem criados, você deverá ver:

Feche a janela. Agora você deve ter os campos “BackupTAG”, “Pai” e “Filhos” para preencher, como na figura abaixo.
Feche a janela. Agora você deve ter os campos “BackupTAG”, “Pai” e “Filhos” para preencher, como na figura abaixo.
Image
Image

Agora tudo o que você precisa fazer é designar quais VMs pertencem ao que é “BackupTAG”. Por exemplo, na empresa em que o script foi desenvolvido, tínhamos VMs que deveriam ser armazenadas semanalmente na quinta e na sexta-feira, uma programação para nossas VMs de produto da Atlassian e algumas que deveriam ter backup apenas mensalmente. Então, nossa visão geral parecia:

Onde, por exemplo, “semanalmente-sex” foi o texto que inserimos no “BackupTAG” “Custom Field”. Puro né?:)
Onde, por exemplo, “semanalmente-sex” foi o texto que inserimos no “BackupTAG” “Custom Field”. Puro né?:)

Pais e filhos (opcional)

A verdadeira beleza deste script é que ele suporta relacionamentos “pais” e “filhos”. Ou seja, é possível definir uma lista de VMs “filhas” que seriam desativadas e submetidas a backup antes do pai, e que esses filhos só serão reativados quando o pai terminar seu backup e tiver sido devolvido. em.Isso é útil nos casos em que desligar a VM pai fará com que o serviço na criança fique indisponível. Isso significaria que o serviço na VM filha estaria indisponível duas vezes, uma para o processo de backup da criança e outra para o pai / mãe. Criar esse relacionamento supera esse problema.

Por exemplo, todas as nossas VMs Atlassian usaram uma única VM DataBase (DB), que também foi configurada para backup. Portanto, observando que a VM do DB é um “Pai” para as outras VMs, uma ordem adequada de encerramento -> backup -> inicialização pode ser assegurada.

No momento da redação deste artigo, esta função tem algumas ressalvas:

  1. Os nomes das VMs que devem ter esse relacionamento não podem conter espaços. Você terá que remover espaços de seus nomes de VM, pois eles serão delimitados por espaço, como no exemplo abaixo.
  2. Só pode haver um pai. Designar mais de um não é planejado, para não mencionar o teste.

Para criar esse relacionamento, vá para as propriedades da VM. Se este é um “pai”, escreva quem são seus filhos e se é um “filho”, escreva quem é seu pai. Por exemplo:

Nota: Não designar um Pai para um filho pode fazer com que o filho seja iniciado antes que seu pai esteja pronto e pode fazer com que seja feito backup duas vezes.
Nota: Não designar um Pai para um filho pode fazer com que o filho seja iniciado antes que seu pai esteja pronto e pode fazer com que seja feito backup duas vezes.

O método FILE (Opcional)

Por razões históricas, o Xen-pocalypse também suporta a obtenção da lista de backups de VMs como um arquivo de texto. Enquanto o "código" ainda está lá, a funcionalidade é gravemente inferior ao método TAGs e, portanto, não é recomendado. Com isso dito, se você preferir usar o método list por algum motivo, as seguintes restrições se aplicam:

  1. Os nomes das VMs não podem conter espaços ou caracteres especiais.
  2. Pode haver apenas um nome de VM por linha.
  3. Linhas em branco não são permitidas.

Para gerar a lista, copie o nome da VM no centro do Xen ou execute em um host Xen:

xe vm-list | grep name-label | awk

'{ print $4 }' | sort

Copie a lista acima em um arquivo de texto normal.

O local do backup

Enquanto pesquisando aleatoriamente no Citrix Xen, descobri que os Repositórios de Armazenamento (SRs) estão disponíveis para uso em “/ var / run / sr-mount /% UUID%”, onde o UUID é o identificador exclusivo do SR, que pode ser obtido a partir da GUI.

Isso significa que podemos usar o assistente regular "Próximo -> Próximo -> Concluir" para criar a montagem no local de backup desejado e, em seguida, fazer com que o script use esse caminho (como atrapalhar a montagem na linha de comando), mas então está além do escopo deste guia.

Para criar uma nova “montagem”, clique com o botão direito do mouse no nome do servidor e selecione Novo SR.

Neste exemplo, vamos apontar o Xen para um compartilhamento do Windows, então escolha “Windows File Sharing (CIFS)”:
Neste exemplo, vamos apontar o Xen para um compartilhamento do Windows, então escolha “Windows File Sharing (CIFS)”:
Complete o Próximo -> Próximo -> Concluir.
Complete o Próximo -> Próximo -> Concluir.

Obtenha o UUID do SR

Para obter um UUID do SR, basta clicar em seu nome no Xen Center e ir para a guia "Geral".

Para copiar o UUID, basta clicar com o botão direito e escolher “copiar”.
Para copiar o UUID, basta clicar com o botão direito e escolher “copiar”.
Com essa informação em mãos, você está pronto para editar o arquivo de configurações.
Com essa informação em mãos, você está pronto para editar o arquivo de configurações.

Configure o arquivo de configurações.

O projeto Xen-pocalypse vem com um modelo de arquivo de “configurações”. Este modelo deve ser editado para refletir sua configuração e passado como o primeiro argumento para o script. O arquivo de configurações designa o seguinte:

O método para obter as VMs para backup - O método padrão é TAGs. Você pode alterar isso para FILE, mas isso não é recomendado.

A localização do destino de backup: se você seguiu o guia até este ponto, você só precisa substituir o% UUID% pelos SRs, como foi obtido acima.

A localização do SendEmail - Se você optou por ativar o E-mail, você precisa inserir onde você extraiu o executável perl aqui.

Detalhes do email -Novamente, se você tiver ativado o e-mail, precisará definir detalhes como: Para, De, Nome do servidor / IP e etc ’.

Compressão - Isso é definido como "Não" por padrão, porque, embora a ativação produza um arquivo de backup menor, ele também fará com que o procedimento de backup seja executado por um período consideravelmente mais longo.

Verifique o espaço livre no destino: isso fará com que o script verifique se o backup da VM não fará com que o espaço livre do local do backup fique abaixo de 10 GB. Isso é feito para garantir o backup da maior quantidade de VMs em vez de apenas uma VM muito grande. O cálculo é feito usando o total bruto do tamanho do disco de todos os HDs associados à VM.

Depuração - O padrão é ter a depuração desativada com o valor “0” (zero). Você não precisa ativar isso, mas se fizer isso, mais informações serão observadas no segmento de solução de problemas.

Execução / Agendamento

Em sua forma mais simples, uma invocação de Xen-pocalypse seria semelhante a:

./Xen-backup.sh settings.cfg weekly-fri

Onde no caso acima, estamos dentro do diretório que contém o script e o arquivo de configurações. O “Tag” que o script irá procurar é “weekly-sex”.

Como mencionado acima, usaremos o Cron para agendar a execução. Antes de entrarmos na configuração, é altamente recomendado que você configure o pacote SSMTP já instalado no seu servidor Xen. Embora essa seja uma etapa opcional, isso fará com que você receba um coletor de backwash. Ter esse "coletor de retrolavagem" pode alertar você sobre coisas que o roteiro não consegue.

Entre na edição do cron mais, emitindo:

crontab -e

Se você seguiu as instruções acima e deseja adicionar um backup agendado para sexta-feira às 18:01 (18:01), insira o seguinte:

01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

O acima é correto supondo que seu script e arquivo de configurações estão ambos em "/ root / Xen-pocalypse-master /".

Solução de problemas

Embora tenha me esforçado para tornar o script mais fácil de usar e o mais seguro possível, "o mundo é um laboratório maior". As informações abaixo podem ajudá-lo a determinar qual é a fonte dos seus problemas.

Progresso

Você pode querer usar este forro para rapidamente “observar” todas as tarefas em andamento, para ver se elas realmente estão progredindo ou se estão realmente presas.

while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print $5}' )'; do xe task-param-get param-name=progress uuid=$VM;sleep 1; done; done

Para parar de assistir, use Ctrl + C para travar o “loop while”.

Exploração madeireira

Todo o “registro” é coletado pelo host Xen que executa o script no mecanismo syslog. Isso, claro, pode ser visto com:

less +F /var/log/messages

Você está procurando a palavra chave “Xen-pocalypse”.

Nota: A Citrix definiu uma política de retenção de dois (2) dias para o syslog de seus servidores. Você pode querer manter isso em mente para postmortems.

Depuração

Conforme observado no segmento do arquivo de configurações, há uma diretiva para ativar a depuração. A habilitação da depuração fará com que o script libere o log detalhado para o console e o impeça de enviar e-mails e realmente executar as exportações, a menos que os sinalizadores relevantes também sejam definidos. Os possíveis sinalizadores são observados no modelo de arquivo de configurações e permitem definir detalhadamente o que você deseja depurar.

É minha esperança que você não tenha precisado de nenhuma depuração e esteja colhendo os frutos do meu trabalho:)

Impulso, meu homem, você está prestes a se tornar o número um decepticon …

Recomendado: