[Script] Backup a quente das vm's rodando no XenServer

Citrix XenServer
Avatar do usuário
tacioandrade
Administrator
Administrator
Mensagens: 110
Registrado em: 10 Jun 2013 22:03
Localização: Vitória da Conquista - Ba
Idade: 34
Contato:
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por tacioandrade »

andrali escreveu: Marcelo bom dia,
Como faço para fazer o backup somente de uma VM,?
Onde tenho que alterar no script?

Obrigado,

Luiz
Da uma olhada nesse meu script aqui, nele é só você colocar o nome da VM que deseja fazer o backup em /tmp/VMsParaBackup como tem no cabeçalho do script. Testado e em uso em 6 ambientes meus, fora o de amigos que usaram e vieram falar que ta funcionando perfeito.

http://itbr.org/forum/xen/(script)-back ... 6/#msg4726



Avatar do usuário
delcolli
Newbie
Newbie
Mensagens: 4
Registrado em: 30 Out 2015 11:48
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por delcolli »

Bom dia, utilizei o script porem aprece a seguinte mensagem :
cat: /tmp/VMsParaBackup: No such file or directory
find: /mnt/backup/30-10-2015/xenserver-Primary/*: No such file or directory

Avatar do usuário
tacioandrade
Administrator
Administrator
Mensagens: 110
Registrado em: 10 Jun 2013 22:03
Localização: Vitória da Conquista - Ba
Idade: 34
Contato:
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por tacioandrade »

delcolli escreveu: Bom dia, utilizei o script porem aprece a seguinte mensagem :
cat: /tmp/VMsParaBackup: No such file or directory
find: /mnt/backup/30-10-2015/xenserver-Primary/*: No such file or directory
O primeiro erro ocorreu pois você não leu o cabeçalho do meu script, nele diz que você tem que criar esse arquivo, colocando todas as VMs que deseja fazer o backup online e depois executar o seguinte comando:

xe vm-list power-state=running|grep name-label| grep -v "Control domain on host:"  | sed 's/     name-label ( RW): //g' > /tmp/VMsParaBackup

Ele irá pegar o nome delas e criar o arquivo /tmp/VMsParaBackup

Sobre o arquivo, você colocou para montar em /mnt/backup algum compartilhamento, seja ele NFS, Samba, etc?

Corrija esses 2 pontos que o mesmo funcionará 100%.

Avatar do usuário
delcolli
Newbie
Newbie
Mensagens: 4
Registrado em: 30 Out 2015 11:48
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por delcolli »

Não consegui fazer o BKP mesmo assim , está dando um erro ao tentar criar o SNAPSHOT.
segue :

backup.sh  dialog    .DS_Store
[root@xenserver-Primary backup]# ./backup.sh
Diretório de backup já existe
Listagem das VMs concluida com sucesso

Criando snapshot de Debian Jessie  8.0 (64-bit) (1)
The value given is invalid
field: Invalid UTF-8 string in parameter
value: <value>Snapshot Temporário</value>
Ocorreu um erro ao tentar fazer snapshot da vm Debian Jessie  8.0 (64-bit) (1)

Convertendo o snapshot  da vm Debian Jessie  8.0 (64-bit) (1) para Template
The uuid you supplied was invalid.
type: VM
uuid:
Ocorreu um erro ao tentar converter o snapshot  da vm Debian Jessie  8.0 (64-bit) (1) em um Template

Exportando  da vm Debian Jessie  8.0 (64-bit) (1)
Error: No matching VMs found
Processo de conversão do snapshot  para backup da vm Debian Jessie  8.0 (64-bit) (1) não pode ser realizado

Removendo  da vm Debian Jessie  8.0 (64-bit) (1)
Error: No matching VMs found
Ocorreu um erro ao tentar remover  vinculado a vm Debian Jessie  8.0 (64-bit) (1)

find: /mnt/backup/04-11-2015/xenserver-Primary/*: No such file or directory
Editado pela última vez por delcolli em 04 Nov 2015 11:07, em um total de 1 vez.

Avatar do usuário
tacioandrade
Administrator
Administrator
Mensagens: 110
Registrado em: 10 Jun 2013 22:03
Localização: Vitória da Conquista - Ba
Idade: 34
Contato:
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por tacioandrade »

delcolli escreveu: Não consegui fazer o BKP mesmo assim , está dando um erro ao tentar criar o SNAPSHOT.
segue :

backup.sh  dialog     .DS_Store
[root@xenserver-Primary backup]# ./backup.sh
Diretório de backup já existe
Listagem das VMs concluida com sucesso

Criando snapshot de Debian Jessie  8.0 (64-bit) (1)
The value given is invalid
field: Invalid UTF-8 string in parameter
value: <value>Snapshot Temporário</value>
Ocorreu um erro ao tentar fazer snapshot da vm Debian Jessie  8.0 (64-bit) (1)

Convertendo o snapshot  da vm Debian Jessie  8.0 (64-bit) (1) para Template
The uuid you supplied was invalid.
type: VM
uuid:
Ocorreu um erro ao tentar converter o snapshot  da vm Debian Jessie  8.0 (64-bit) (1) em um Template

Exportando  da vm Debian Jessie  8.0 (64-bit) (1)
Error: No matching VMs found
Processo de conversão do snapshot  para backup da vm Debian Jessie  8.0 (64-bit) (1) não pode ser realizado

Removendo  da vm Debian Jessie  8.0 (64-bit) (1)
Error: No matching VMs found
Ocorreu um erro ao tentar remover  vinculado a vm Debian Jessie  8.0 (64-bit) (1)

find: /mnt/backup/04-11-2015/xenserver-Primary/*: No such file or directory
Estranho, no caso está falando sobre um problema com o encode UTF-8, ou seja o problema me parece onde está o "Snapshot Temporário" do seu script, ou na hora de copiar as aspas no seu navegador trocou o o aspas duplas por 2 aspas simples '' ou então algo assim. Tente verificar isso dai e caso não esteja, remover o acento em Temporário, para ver se funciona, pois para mim, tem funcionado perfeitamente sem esse erro.

Avatar do usuário
delcolli
Newbie
Newbie
Mensagens: 4
Registrado em: 30 Out 2015 11:48
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por delcolli »

Então tb vi esta questão do acento,  e notei que ele faz o snapshot mas na hora de criar a Templat ele está dando este erro. irei tirar o acento. Grato e retorno em seguida

Avatar do usuário
delcolli
Newbie
Newbie
Mensagens: 4
Registrado em: 30 Out 2015 11:48
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por delcolli »

Descobri o erro,
Por causa do acento em temporário o script não rodava, ficando assim :
#!/bin/bash
# Script para backup a quente das vm's do XenServer
# E-tab Tecnologia - [email protected]
# O funcionamento do script é simples. Ele cria um snapshot, converte para template e remove o snapshot
# O envio de emails depende do SendEmail baixe de http://caspian.dotconf.net/menu/Software/SendEmail/
# Jamais rode este script antes de testar seu funcionamento em um host de homologação antes ;)
# Editado por Tácio Andrade:
# Modificação 01: Remoção de backups antigos, para isso altere a variável "DIASARMAZENAMENTOBACKUP"
#                abaixo para a quantidade de dias que deseja manter os backups.
# Modificação 02: Agora ela não faz o backup de todas as VMs rodando, ela faz o backup das que tiverem
#                o nome no arquivo /tmp/VMsParaBackup. Para atualizar o arquivo com o nome de todas as VMs
#                rodando no momento (e depois remover as que não deseja backup), rode o comando:
#                xe vm-list power-state=running|grep name-label| grep -v "Control domain on host:"  | sed 's/    name-label ( RW): //g' > /tmp/VMsParaBackup

PATH=/opt/xensource/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export PATH

BACKDATE=`date +%d-%m-%Y`

# Configurações para o envio de emails
REMETENTE="[email protected]"
ADMIN="[email protected]"
ASSUNTO="XENSERVER - Backup concluido no host $HOSTNAME no dia $BACKDATE"
SMTP="smtp.gmail.com:587"
USUARIO="[email protected]"
SENHA="senhadomail"
DIASARMAZENAMENTOBACKUP=7


# Defina aqui o diretório onde serão salvos os backups
BACKDIR=/mnt/backup/$BACKDATE/$HOSTNAME

echo -e "Resumo das ações realizadas em $HOSTNAME \n" > /tmp/xen_back.mail

if [ -d $BACKDIR ]
  then
      echo "Diretório de backup já existe"
      echo "$BACKDIR Exists" >> /tmp/xen_back.mail
  else
      echo "Diretório de backup não existe, criando agora."
      echo "$BACKDIR não existe, criando agora" >> /tmp/xen_back.mail
      mkdir -p $BACKDIR
fi

#echo "Gerando lista das VMs rodando no Host"
#xe vm-list power-state=running|grep name-label| grep -v "Control domain on host:"  | sed 's/    name-label ( RW): //g' > /tmp/VMsParaBackup
echo -e "\n Gerando lista das VMs a seren backupeadas" >> /tmp/xen_back.mail
cat /tmp/VMsParaBackup >> /tmp/xen_back.mail

if [ $? -eq 0 ]
then
echo -e "Listagem das VMs concluida com sucesso \n"
echo -e "Listagem das VMs concluida com sucesso \n" >> /tmp/xen_back.mail
else
echo -e "Ocorreu um erro ao obter listagem do Host \n"
echo -e "Ocorreu um erro ao obter listagem do Host \n" >> /tmp/xen_back.mail
fi

VMLIST=`cat /tmp/VMsParaBackup | wc -l`
COUNT=0
until [ $VMLIST = $COUNT ]
do
COUNT=`expr $COUNT + 1`
VM=`gawk FNR==$COUNT /tmp/VMsParaBackup`

echo "Criando snapshot de $VM"
echo "Criando snapshot de $VM" >> /tmp/xen_back.mail
SNAPSHOT=`xe vm-snapshot vm="$VM"  new-name-label="$VM-$BACKDATE" new-name-description="Snapshot Temporario" `

if [ $? -eq 0 ]
then
echo -e "Snapshot da vm $VM criado com sucesso \n"
echo -e "Snapshot da vm $VM criado com sucesso \n" >> /tmp/xen_back.mail
else
echo -e "Ocorreu um erro ao tentar fazer snapshot da vm $VM \n"
echo -e "Ocorreu um erro ao tentar fazer snapshot da vm $VM \n" >> /tmp/xen_back.mail
fi

echo "Convertendo o snapshot $SNAPSHOT da vm $VM para Template"
echo "Convertendo o snapshot $SNAPSHOT da vm $VM para Template" >> /tmp/xen_back.mail
xe template-param-set is-a-template=false uuid=$SNAPSHOT

if [ $? -eq 0 ]
then
echo -e "Conversão do snapshot $SNAPSHOT da vm $VM realizado com sucesso \n"
echo -e "Conversão do snapshot $SNAPSHOT da vm $VM realizado com sucesso \n" >> /tmp/xen_back.mail
else
echo -e "Ocorreu um erro ao tentar converter o snapshot $SNAPSHOT da vm $VM em um Template \n"
echo -e "Ocorreu um erro ao tentar converter o snapshot $SNAPSHOT da vm $VM em um Template \n" >> /tmp/xen_back.mail
fi

echo "Exportando $SNAPSHOT da vm $VM"
echo "Exportando UUID=$SNAPSHOT" >> /tmp/xen_back.mail
xe vm-export vm=$SNAPSHOT filename=$BACKDIR/"$VM".xva compress=true

if [ $? -eq 0 ]
then
echo -e "Processo de conversão do snapshot $SNAPSHOT e backup da vm $VM finalizado com sucesso \n"
echo -e "Processo de conversão do snapshot $SNAPSHOT e backup da vm $VM finalizado com sucesso \n" >> /tmp/xen_back.mail
else
echo -e "Processo de conversão do snapshot $SNAPSHOT para backup da vm $VM não pode ser realizado \n"
echo -e "Processo de conversão do snapshot $SNAPSHOT para backup da vm $VM não pode ser realizado \n" >> /tmp/xen_back.mail
fi

echo "Removendo $SNAPSHOT da vm $VM"
echo "Removendo UUID=$SNAPSHOT">> /tmp/xen_back.mail
xe vm-uninstall uuid=$SNAPSHOT force=true

if [ $? -eq 0 ]
then
echo -e "Remoção do snapshot $SNAPSHOT da vm $VM ocorreu com sucesso \n"
echo -e "Remoção do snapshot $SNAPSHOT da vm $VM ocorreu com sucesso \n" >> /tmp/xen_back.mail
else
echo -e "Ocorreu um erro ao tentar remover $SNAPSHOT vinculado a vm $VM \n"
echo -e "Ocorreu um erro ao tentar remover $SNAPSHOT vinculado a vm $VM \n" >> /tmp/xen_back.mail
fi
echo -e "\n" >> /tmp/xen_back.mail
done

# Remove os backups antigos
ANTIGOS=$(find $BACKDIR/* -ctime +$DIASARMAZENAMENTOBACKUP)
echo -e "Os arquivos $ANTIGOS foram removidos" >> /tmp/xen_back.mail
rm -fr $ANTIGOS

/usr/local/bin/sendEmail -f $REMETENTE -t $ADMIN -u "$ASSUNTO" -o message-file="/tmp/xen_back.mail" -s $SMTP -xu $USUARIO -xp $SENHA

rm -rf /tmp/xen_back.mail

exit 0

Avatar do usuário
tacioandrade
Administrator
Administrator
Mensagens: 110
Registrado em: 10 Jun 2013 22:03
Localização: Vitória da Conquista - Ba
Idade: 34
Contato:
Status: Offline

Re:[Script] Backup a quente das vm's rodando no XenServer

Mensagem por tacioandrade »

Pronto, que bom que foi apenas esse pequeno detalhe. =) Agora é só aproveitar o backup. hehehehe

Responder

Voltar para “XenServer”