<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OlaMundo.org &#187; xenserver</title>
	<atom:link href="http://olamundo.org/posts/tag/xenserver/feed/" rel="self" type="application/rss+xml" />
	<link>http://olamundo.org</link>
	<description>Sinta-se em casa</description>
	<lastBuildDate>Thu, 06 Oct 2011 17:39:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>XenServer &#8211; Backup automático de VMs</title>
		<link>http://olamundo.org/posts/xenserver-backup-automatico-de-vms/</link>
		<comments>http://olamundo.org/posts/xenserver-backup-automatico-de-vms/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 14:18:40 +0000</pubDate>
		<dc:creator>Amador Pahim</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[xen]]></category>
		<category><![CDATA[xenserver]]></category>

		<guid isPermaLink="false">http://www.olamundo.org/?p=279</guid>
		<description><![CDATA[Olá Mundo! Quem me conhece sabe que não vou gastar um post inteiro com saudações. No máximo uma palavra: Cheguei! Pronto! Vamos direto ao assunto&#8230; Segue aqui um passo a passo para fazer backup automático de suas máquinas virtuais no XenServer 5.5. Isso deve funcionar em versões anteriores também. Nesses script, trocamos a turbina do [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Mundo! <img src='http://olamundo.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Quem me conhece sabe que não vou gastar um post inteiro com saudações. No máximo uma palavra: Cheguei!</p>
<p>Pronto! Vamos direto ao assunto&#8230;</p>
<p><img class="alignleft size-full wp-image-280" src="http://www.olamundo.org/wp-content/uploads/2009/10/xen.jpg" alt="xen" width="40" height="40" />Segue aqui um passo a passo para fazer backup automático de suas máquinas virtuais no XenServer 5.5. Isso deve funcionar em versões anteriores também.</p>
<p>Nesses script, trocamos a turbina do avião com ele voando.  <img src='http://olamundo.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ou seja, as VMs não param.</p>
<p><span id="more-279"></span></p>
<p><strong>1º Passo:</strong> Decobrir quais as VMs existentes.</p>
<pre>vms="$(xe vm-list | grep "name-label" | grep -v "Control domain"
| tr -s " " | cut -d " " -f 5)"</pre>
<p>Perceba que tive que fazer um filtro inverso para &#8220;Control domain&#8221;, pois se você usa Pool de hardware aparecem essas &#8220;VMs&#8221; fantasmas que na verdade representam o controlador.</p>
<p><strong>2º Passo:</strong> Definir variáveis.</p>
<pre># Diretorio onde sera feito o backup. Pode ser via NFS...
dirBack=/backup
#Separador de campo para o "for". Previne erros no caso de espaços
# no nome das VMs
IFS="
"
#Inicio do for. Cada loop faz backup de uma VM.
for vm in $(echo $vms)
do
#Cria uma variavel data com o formato da data que quero pra compor
# o nome do arquivo de backup
time=$(date --date "now" +%d_%m_%y_%H:%M)
#Agora componho o nome do arquivo de backup
snapName=$vm-bk-$time</pre>
<p><strong>3º Passo:</strong> Criar snapshot e obter UID.</p>
<pre>#Aqui crio um snapshot. Ele eh necessario para não precisar
# parar a VM. O backup eh feito com ela em producao.
ID=$(xe vm-snapshot vm=$vm new-name-label=$snapName &amp;&amp;
        {
        logger -t "XenBackup" -s "$vm - OK Passo 1"
        }||{
        logger -t "XenBackup" -s "$vm - ERR Passo 1"
        echo 1
        })
#Na criacao do snap acima, a variavel ID recebe o UID do
# snap.No caso de erro, ela recebe "1"
#O logger joga o log joga no /var/log/messages

#Abaixo faço um teste pra checar se deu erro.
if [ "$ID" == "1" ]
then
        exit 1
fi</pre>
<p><strong>4º Passo:</strong> Transformar o Snapshot em VM.</p>
<pre>#Pra essa tarefa, uso o ID obtido no passo anterior.
xe template-param-set is-a-template=false uuid=$ID &amp;&amp;
        {
        logger -t "XenBackup" -s "$vm - OK Passo 2"
        }||{
        logger -t "XenBackup" -s "$vm - ERR Passo 2"
        exit 2
        }</pre>
<p><strong>5º Passo:</strong> Exportar VM para o DIR de backup.</p>
<pre>#Perceba o uso das variaveis. Nao vah se perder <img src='http://olamundo.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
xe vm-export vm=$snapName  filename=$dirBack/$snapName
        {
        logger -t "XenBackup" -s "$vm - OK Passo 3"
        }||{
        logger -t "XenBackup" -s "$vm - ERR Passo 3"
        exit 3
        }</pre>
<p><strong>6º Passo:</strong> Remover VM.<br />
Agora que a VM criada a partir do SnapShot já foi exportada, podemos descartá-la:</p>
<pre>xe vm-uninstall vm=$snapName force=true
        {
        logger -t "XenBackup" -s "$vm - OK Passo 4"
        }||{
        logger -t "XenBackup" -s "$vm - ERR Passo 4"
        exit 4
        }</pre>
<p><strong>7º Passo:</strong> Plus!<br />
Pra economizar espaço (e economiza muito), vamos &#8220;gzipar&#8221; a VM:</p>
<pre>gzip $dirBack/$snapName
       {
       logger -t "XenBackup" -s "$vm - OK Passo 5"
       }||{
       logger -t "XenBackup" -s "$vm - ERR Passo 5"
       exit 5
       }
#Fala a verdade, voce jah ia esquecer de encerrar o "for"...
done
exit 0</pre>
<p>Bom pessoal, é isso!</p>
<p>Espero que tenham gostado&#8230; em breve outros posts quentinhos.</p>
<p>Visitem <a href="http://www.pahim.org" target="_blank">www.pahim.org</a></p>
<p>Comentem!</p>
]]></content:encoded>
			<wfw:commentRss>http://olamundo.org/posts/xenserver-backup-automatico-de-vms/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

