Como restaurar VMs Citrix-Xen gratuitamente com o Xen-Phoenix (Bash)
Você já teve a necessidade de restaurar as VMs do Citrix-Xen em massa para obter uma solução de recuperação de desastre (DR) ou apenas para testar se os backups estão funcionando? HTG explica como usar o Xen-Phoenix, um script gratuito, para a restauração de VM.
Crédito da foto: Ryan McCurdy via Compfight cc
Como mencionamos em “Como fazer o backup das VMs do Citrix Xen gratuitamente com o Xen-Pocalypse“, uma das coisas boas do Citrix Xen é que muitos de seus recursos 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”. Novamente, não estamos descartando o valor de uma verdadeira solução de backup, mas se você está com um orçamento apertado, já tirou as imagens da VM do hipervisor e precisa de uma maneira de automatizar sua procedimentos de restauração de teste ”/” DR refresh ”, você pode achar que o Xen-Phoenix é uma solução perfeitamente razoável antes de se comprometer com o orçamento.
visão global
O “caso de uso”: você tem algumas VMs que exigem uma restauração. A importação no “Xen Center” usando os cliques da direita funciona bem, mas você quer que este processo aconteça automaticamente e em um cronograma. Este script Bash usa o comando "XE" para executar suas tarefas. O 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 restauração é:
- Excluir todas as VMs previamente existentes no servidor
- Importar VMs dos arquivos no local de backup.
- Verifique se todas as VMs são viáveis, ativando-as uma a uma e procurando a pulsação das ferramentas do convidado.
- Desativar VMs quando uma pulsação foi descoberta ou um tempo limite foi atingido.
* O comportamento de excluir todas as VMs pode ser desativado completamente e suporta exceções (veja abaixo).
Vamos começar a quebrar :)
Obtenha o script
Xen-phoenix pode ser livremente obtido do github, usando os métodos regulares do git. Com isto dito, se você ainda não conhece o git, você 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-phoenix/archive/master.zip
descompacte o mestre
Embora o acima funcione, é aconselhável usar o método GIT para que você possa se beneficiar de futuras atualizações.
A localização das exportações
Precisamos configurar para onde levar as exportações de VMs de.
Enquanto aleatoriamente bisbilhotando 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 fazer com que o script use esse caminho (como se estivesse atrapalhando a montagem da linha de comando que é 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)”:
Complete o Próximo -> Próximo -> Concluir.
Obter o UUID do SR
Para obter um UUID do SR, basta clicar no seu nome no Xen Center e ir para o separador “General”.
Para copiar o UUID, basta clicar com o botão direito e escolher "copiar".
Com esta informação em mãos, você está pronto para editar o arquivo de configurações.
Configurar o arquivo de configurações
O projeto Xen-Phoenix 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:
- A localização das exportações de origem - 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 Email, você precisa inserir onde você extraiu o executável perl aqui.
- Verificador - controla o procedimento de verificação de restauração de postagem. Isso é ativado por padrão, já que uma "restauração em nível de arquivo" bem-sucedida não significa necessariamente uma VM funcional.
- Server_prep - controla a pré-restauração eliminação de todas as VMs no servidor DR. Isso é habilitado por padrão porque é assumido que o servidor DR é um servidor dedicado para essa finalidade. Se você precisar que uma VM que está sendo executada neste servidor não seja excluída, configure-a para ser excluída. Se esse comportamento não for adequado à sua situação, basta desativá-lo completamente.
- Detalhes do email - Novamente, se você tiver ativado o email, precisará definir detalhes como: Para, De, Nome do servidor / IP e etc..
- Depuração - O padrão é ter a depuração desativada com o valor "0" (zero). Não é necessário ativar isso, mas, se você fizer isso, mais informações serão observadas no segmento de solução de problemas..
Execução
Esse script usa o arquivo de configurações como seu primeiro argumento e quaisquer outros argumentos como “Chevrons” para procurar (separados por espaços). Chevron, são "strings", que suportam expressões regulares que representam pelo menos parte do nome de arquivo desejado da exportação de VM.
Isto é, na sua forma mais simples, uma invocação de Xen-phoenix seria semelhante a:
./Xen-phoenix.sh settings.cfg DevTools
Onde no caso acima, estamos dentro do diretório que contém o script e o arquivo de configurações e o “Chevron” que o script irá procurar é “DevTools”. Isso fará com que todos os arquivos no diretório de exportação com a string “DevTools” em seu nome sejam importados.
Um exemplo mais complexo pode se parecer com:
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [i] [Dd] ev [Tt] ools
Onde no exemplo acima, arquivos que contenham a palavra “devtools” com “D” e “T” maiúsculo ou não maiúsculos, bem como “AD” e “BI” com ou sem capitalização, serão importados.
Agendamento
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 este seja um passo opcional, isso lhe dará um coletor de "backwash". Ter um tal "coletor de backwash" pode alertá-lo sobre coisas que o script não é capaz de.
Entre no modo de edição do cron emitindo:
crontab -e
Se você seguiu as instruções acima e deseja adicionar um backup agendado para domingo às 01:31 (1:31 da manhã), insira o seguinte:
31 01 * * sol / root / Xen- Phoenix-master / X-Phoenix.sh / root / Xen- Phoenix-master / settings.cfg [Aa] [Dd] DB ] ools
O acima é correto supondo que seu script e arquivo de configurações estão ambos em "/ root / Xen-phoenix-master /".
Obter o SendEmail (opcional)
Nós escrevemos sobre o programa perl SendEmail no passado, então não há necessidade de reiterar aqui. Basta dizer que funciona da mesma maneira no Linux como no Windows.
Embora a ativação do email seja opcional, é altamente recomendável, pois o script poderá:
- Informe-o quando começou e terminou a corrida.
- Alertá-lo de quaisquer erros que ele foi capaz de detectar e manipular.
Faça o download para o servidor Xen e extraia.
wget http://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 o Tag “Delete Exception” (opcional)
O Xen-Phoenix pega uma página de seu ancestral (Xen-Pocalypse) e oferece a capacidade de excluir granularmente uma VM da exclusão em todo o sistema usando um TAG de controle. Para fazer isso, você precisa definir um novo "campo personalizado".
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 “campo personalizado” (como no exemplo acima), você não terá o campo “Phoenix_keeper” para inserir dados, então você precisa criá-lo. Para fazer isso, clique em “Edit Custom Fields” na caixa de diálogo que aparece, depois clique em “Add…”
Crie um campo do tipo "Texto" com o nome "Phoenix_keeper".
Nota: O nome do campo personalizado foi "codificado" no script, portanto, você NÃO deve se desviar da grafia acima, a menos que você também altere o código relevante.
Depois que o campo tiver sido criado, você deverá ver:
Feche a janela. Agora você deve ter o campo "Phoenix_keeper" para preencher, como na imagem abaixo.
Agora, tudo o que você precisa fazer é preencher este campo com uma observação (qualquer observação servirá), o que fará com que o Xen-phoenix a ignore ao excluir.
Solução de problemas
Embora tenha me esforçado muito para tornar o script tão fácil de usar quanto possível, “o mundo é um laboratório maior”. As informações abaixo podem ajudá-lo a determinar qual é a origem de seus problemas.
Exploração madeireira
Todo o "registro" é coletado pelo host Xen executando o script no mecanismo syslog. Isso, claro, pode ser visto com:
menos + F / var / log / messages
Você está procurando a palavra chave “Xen-Phoenix”.
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 ativação da depuração fará com que o script libere o registro de log detalhado no console e o impeça de enviar e-mails e realmente executar as importaçõ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 :)
Basta pensar em toda a pobreza, o ódio e as mentiras, e imagine a destruição de tudo o que você despreza. Lentamente das cinzas, a fênix surgirá ...