sexta-feira, 24 de agosto de 2012

KVM - Clonando VMs

Um dos recursos mais úteis que um administrador pode ter num ambiente virtualizado é a possibilidade de clonagem de VM's (Virtual Machines). O principal uso da clonagem é ter perfis de máquinas template para criar máquinas rapidamente, sem necessidade de passar por todo o processo de instalação e configuração do novo sistema.

Assim, um administrador que precise lidar com a criação de diversas VM's constantemente, poderá ter um conjunto de máquinas predefinidas criadas somente para dar origem às máquinas que serão solicitadas. Um detalhe importante, que alguns esquecem, é que há a necessidade de manutenção nesses templates (atualizações principalmente), para evitar a instanciação de VM's com vulnerabilidades.

A clonagem pode ser utilizada também como uma forma de backup. Clone a máquina e armazene num storage ou em fita. Em caso de pane irrecuperável numa máquinas, podemos restaurar seu clone colocando-o rapidamente em produção.

O KVM dispõe de um utilitário de clonagem bastante simples e eficiente - o comando virt-clone. Digamos que temos uma máquina chamada vm1-template e desejamos criar uma vm a partir dela, chamada vm1-producao:

virt-clone --connect=qemu:///system \
           -o vm1-template \
           -n vm1-producao \
           -f /var/lib/libvirt/vm1-producao.img


O comando acima clonará a máquina template numa nova máquina, colocando-a no diretório indicado pelo parâmetro -f.

Após o processo, teremos uma máquina exatamente igual à primeira, portanto devemos ter cuidado antes de colocá-la em rede devido à possibilidade de conflito de IP. É importante editar a configuração da máquina clonada para que ela tenha "sua própria personalidade".

Em certos casos, pode haver falha para que a máquina acesse a rede, mesmo se configurarmos corretamente o IP. No Debian, é comum precisarmos remover a regra UDEV referente ao dispositivo de redes. Processo bastante simples. Inicie a máquina clonada, logue como root e execute o comando:

rm /etc/udev/rules.d/70-persistent-net.rules


Reinicie a nova VM, configure a rede e ela deverá funcionar normalmente.

Para fazer backups automatizados, é possível criar scripts que rodem via cron em momentos de menor uso (madrugada por exemplo) e transfiram os clone-backups para um ambiente seguro.

segunda-feira, 13 de agosto de 2012

A Guerra da Maçã

Novas do front. A batalha entre a Apple e as empresas que usam o Android parece estar entrando num loop infinito [1]. A Apple, na visão de alguns analistas, está preocupada com o crescimento dos dispositivos Android e a melhora dessa plataforma e seu leque de aplicações oficiais na Google Play (antigo Google Market). Após apontar (e acionar!) seu arsenal de patentes contra a Samsung, a maçã está ampliando seu ataque a outras empresas que usam o Android, como a HTC e a Motorola. Essa atitude não passou desapercebida pelo mercado e a empresa tem sofrido críticas por sua agressividade. Críticas provenientes tanto dos concorrentes, como de defensores do software livre (que veem com bons olhos o Android) e até de clientes seus.

Alguns dados em um interessante artigo [2] trazem luz sobre o motivo dessa cruzada anti-android: segundo dados do IDC, nos últimos meses os dispositivos Android alcançaram a marca de 68% das vendas no mercado de smartphones [3]. Vale lembrar que no ano passado, os robôs tinham 46% das vendas (um salto de mais de 20% em um mercado multimilionário). Se esses dados estiverem corretos, isso faz com que o IOS fique num distante segundo lugar (17%). Ao meu ver, motivo mais que suficiente para a Apple se preocupar. Entretanto sempre considerei também que patentes são como armas de destruição em massa. Elas não atingem apenas aqueles contra quem se luta, mas uma ampla gama de inocentes. Nessas guerras de patentes, a inovação, a difusão da informação e a liberdade de conhecimento sempre saem perdendo.

[1] http://apple.slashdot.org/story/12/08/12/1946207/why-apple-is-suing-every-android-manufacturer-in-sight
[2] http://www.readwriteweb.com/mobile/2012/08/the-number-that-shows-why-apple-is-suing-every-android-manufacturer-in-sight.php
[3] http://www.idc.com/getdoc.jsp?containerId=prUS23638712

quarta-feira, 8 de agosto de 2012

Desktop no Debian 7 será Xfce

A próxima versão do Debian (7 - 'Wheezy') usará o Xfce como interface gráfica default. A razão alegada pelos desenvolvedores são as restrições de tamanho para que toda a imagem caiba em um CD. Tanto o Gnome quanto as outras interfaces continuarão na distribuição via repositórios, nos CD's adicionais, ou nas imagens em DVD/BlueRay. Em minha opinião, foi uma boa mudança. O Debian é muito mais usado em servidores que em Desktops (pelo menos até onde sei) e o Xfce alcançou um bom nível de maturidade.

Fonte: http://www.phoronix.com/scan.php?page=news_item&px=MTE1NTk

Virtualização com KVM (parte 2)

Na primeira parte desse artigo, escrevemos um breve tutorial da instalação do KVM em um sistema Fedora Linux. Essa segunda parte cobrirá a administração básica de máquinas virtuais em um ambiente com KVM.

Foi criada uma máquina virtual Debian versão 6, de 64 bits. Nessa parte vamos dar uma visão geral do console de administração virsh e realizar algumas operações de gerência, básicas mas bastante úteis.

O virsh

O virsh é um console (modo texto) onde o administrador das máquinas virtuais pode executar inúmeras operações de gerência no ambiente de virtualização: criar, iniciar, reiniciar, desligar, clonar,  (etc etc etc) máquinas virtuais, definir parâmetros como memória e processadores, área de storage, migração de vm's e muito mais. O virsh é o nirvana do KVM para qualquer administrador.

Após a instalação da vm conforme descrito na primeira parte desse artigo, execute o comando abaixo para iniciar o virsh.

$ sudo virsh --connect=qemu:///system


Console do virsh (tela inicial)

O console é um shell específico para o KVM com (muitos) comandos específicos para lidar com vm's. Os três primeiros comandos que você deve aprender são help, list e quit.

'help' (sem parâmetros) mostrará uma listagem de todos os comandos disponíveis e uma explicação rápida sobre eles.

virsh # help

Caso precise de detalhamento sobre um comando específico, basta passar esse comando como parâmetro do help:

virsh # help snapshot-create

O comand quit (obviamente) sai do console e o comando list lista todas as vm's criadas. Um detalhe: ele, por default, listará apenas as vm's em execução. As que estiverem paradas (desligadas) não serão mostradas. Para mostrar todas as vm's, execute 'list --all'.

Para iniciar uma vm, execute start <nome-da-vm>. Por exemplo, se quisermos iniciar a máquina que criamos na parte 1 desse artigo:

virsh # start debian6-vm1 

O console não iniciará automaticamente o virt-viewer. Se quiser ver o console da vm você terá de iniciá-lo explicitamente. Abra outro terminal e execute

$ sudo virt-viewer debian6-vm1

Lembre que o virt-viewer irá capturar o mouse quando você clicar nele. Para liberar o mouse, use a sequência de teclas ctrl+alt (control alt).

Para desligar uma vm, o administrador poderá logar nela e executar o desligamente explicitamente, ou poderá, no virsh, executar o comando shutdown (será necessário ter o ACPI rodando).

Com esses comandos básicos já dá para brincar bastente com a virtualização. Uma boa dica é explorar a ajuda do virsh e tentar ler documentação na Net.

Proxima parte: Clonagem e Snapshots...