Importação, exportação e snapshots com o VirtualBox CAPA Instantâneo Virtual Dois recursos poderosos dos sistemas de virtualização são a capacidade de importar e exportar máquinas virtuais, e a criação de snapshots, verdadeiras “cópias” do estado da máquina virtual em um determinado momento. por Luciano Siqueira e Rafael Peregrino da Silva D iferentemente dos sistemas operacionais instalados do modo tradicional, nos quais a atualização de componentes de hardware ou a migração para outra máquina pode gerar complicações, migrar uma máquina virtual para outro computador é um procedimento trivial. Além dessa facilidade, o VirtualBox oferece o recurso chamado snapshot, em que o estado de uma máquina pode ser preservado e restaurado posteriormente. Importação e exportação O VirtualBox é capaz de importar e exportar máquinas virtuais desde sua versão 2.2. O formato utilizado é o OVF – Open Virtualization Format – padrão também utilizado por outras soluções de virtualização. No VirtualBox, os procedimentos de importação e exportação podem ser efetuados tanto pela interface gráfica quanto via linha de comando. Entre as principais finalidades da importação/exportação de máquinas virtuais está a distribuição de sistemas pré-instalados com um 44 propósito específico, conhecidos pelo termo appliances virtuais. Uma máquina virtual exportada como OVF inclui tanto o dispositivo de armazenamento quanto as configurações básicas da máquina. O sistema operacional e os aplicativos pré-instalados podem ser utilizados logo após a importação da máquina virtual, justamente como ocorre com appliances físicos. Um appliance no formato OVF é dividido em dois arquivos: A imagem de armazenamento (nos formatos VDI, VMDK ou VHD) e as configurações básicas da máquina virtual, descritas no formato XML. Exportação de VM Para exportar uma máquina virtual, basta ir até o menu Arquivo e clicar no item Exportar Appliance. O programa abre o Assistente de Exportação de Appliance (figura 1), que permite escolher uma ou mais máquinas virtuais existentes para exportação em um único appliance. Após escolher a máquina a ser exportada, o assistente alterna para uma tela de configuração (figura 2), na qual podem ser fornecidas diversas informações sobre o appliance a ser criado. As informações não são obrigatórias, mas são importantes para facilitar sua utilização por terceiros. Por fim, basta escolher a pasta de destino onde o appliance será criado. O processo de exportação pode demorar, dependendo do tamanho do disco de armazenamento da máquina virtual. Se o usuário preferir usar a linha de comando em lugar da interface gráfica – o que às vezes pode ser uma necessidade –, é necessário usar o comando VBoxManage. Assim, para listar as máquinas virtuais disponíveis e obter as informações constantes na interface gráfica do VirtualBox mostrada na figura 1, é necessário executar o comando mostrado na listagem 1. Para identificar quais máquinas estão atualmente em execução, utiliza-se o mesmo comando list, mas com o argumento runningvms: $ VBoxManage list runningvms VirtualBox Command ... ... “Fedora” {9a5b88db-24...94cdbdb854} “Haiku” {93ed91ba-91...4dcaf0046c2} http://www.linuxmagazine.com.br VirtualBox | CAPA Figura 1O VirtualBox oferece uma interface simples para exportação de máquinas virtuais. Caso o subcomando refira-se a uma máquina virtual específica, será necessário necessário especificá-la. Existem duas maneiras de fazê-lo, podendo ser pelo nome da máquina – colocando-o entre aspas caso existam espaços nesse nome – ou por seu UUID, que é o identificador hexadecimal único para cada máquina virtual, que aparece ao lado de seus nomes no código acima. Por exemplo, para iniciar a máquina virtual chamada Haiku, é utilizado o subcomando startvm: $ VBoxManage startvm Haiku \ --type headless A opção --type headless determina que a máquina não exibirá sua saída de monitor numa janela. Esse é o comportamento indicado para máquinas virtuais que atuam como servidores, haja vista que mesmo servidores tradicionais não permanecem conectados a monitores ou teclado, sendo acessados e controlados apenas pela rede. Por fim, para exportar uma determinada máquina – por exemplo, a máquina de nome Fedora – através Linux Magazine #65 | Abril de 2010 Figura 2O Formato OVF oferece vários campos de descrição para máquinas exportadas. da linha de comando, utiliza-se a seguinte sintaxe: $ VBoxManage export Fedora \ --output Meu_Fedora.ovf Ou, usando a forma reduzida da opção --output: $ VBoxManage export Fedora \ -o Meu_Fedora.ovf É importante lembrar que o formato OVF não é capaz de armazenar todos os detalhes de uma máquina virtual. Enquanto todas as informações do sistema operacional nela instalado são preservadas, alguns aspectos não poderão ser exportados. É o caso das definições para a(s) interface(s) virtual(is) de rede e eventuais snapshots, que serão incorporados à imagem única a ser exportada. Importação de VM Para importar uma máquina virtual, vá até o item Importar Appliance no menu Arquivo. Escolha o arquivo OVF correspondente à máquina virtual a ser importada. Se a máquina virtual puder ser importada, será exibida uma tela semelhante à da figura 3. Ali constam as definições presentes no arquivo XML com as configurações da máquina virtual. É possível fazer as alterações necessárias com um clique Listagem 1: VBoxManage list $ VBoxManage list vms VirtualBox Command Line Management Interface Version 3.1.2 (C) 2005-2009 Sun Microsystems, Inc. All rights reserved. “Windows XP” {ca0f3bdf-2203-46a9-a852-7e9aad050427} “Fedora” {9a5b88db-2411-46b2-b4b0-6494cdbdb854} “Ubuntu” {0ca0b7da-bffb-436a-a41d-709d1af647ed} “Haiku” {93ed91ba-910f-42b0-bbc3-14dcaf0046c2} “Windows Vista” {1e8f0431-dea0-4659-92ca-a59c74e5391f} 45 CAPA | VirtualBox Naturalmente, todas essas operações podem também ser acionadas utilizando o comando VBoxManage. A opção utilizada para todos eles é a controlvm, que tem a seguinte sintaxe: $ VBoxManage controlvm \ Ubuntu savestate Figura 3Detalhes da máquina virtual podem ser alterados durante a importação. duplo sobre o item desejado. Ao clicar em Importar, uma nova máquina virtual será criada com essas definições e a imagem de armazenamento copiada. Ao término do processo de importação, a máquina estará disponível para uso. Da mesma forma, pode-se importar a máquina virtual via linha de comando, novamente utilizando o comando VBoxManage: $ VBoxManage import Meu_Fedora.ovf Salvar o estado O VirtualBox oferece ao usuário que encerra uma máquina virtual a possibilidade de salvar o estado em execução para resgate futuro, semelhante à hibernação em uma Figura 4Ao fechar a janela da máquina virtual, pode-se salvar o estado da máquina. 46 máquina convencional. Para isso, em vez de desligar a máquina virtual pelos meios do sistema operacional virtualizado, basta fechar a janela correspondente à máquina virtual. Tão logo isso seja feito, o VirtualBox apresentará a janela mostrada na figura 4. Ao escolher a opção Salvar o estado da máquina, o VirtualBox congelará o estado atual de execução. Isso significa que, ao iniciar novamente essa mesma máquina virtual, será recuperado o exato momento em que a máquina virtual foi fechada. A opção Envia o sinal de desligamento provoca o efeito análogo ao de apertar o botão de desligamento em uma máquina convencional, ou seja, envia ao sistema hóspede o sinal ACPI de desligamento. Isso solicita ao sistema operacional virtualizado o desligamento imediato (ou dentro de 60 segundos, no caso de algumas distribuições GNU/Linux). Já a opção Desligar a máquina é a mais radical das três. Ela é equivalente a desplugar da tomada uma máquina tradicional. Isso significa que o sistema operacional não será desligado corretamente, o que pode provocar inconsistências nos dados. Assim, o comando acima salva o estado da máquina virtual de nome Ubuntu. O mesmo pode ser feito para todas as operações descritas acima, usando para isso os comandos acpipowerbutton e poweroff no lugar de savestate. Se não houver mais interesse em manter o estado previamente gravado, selecione a máquina virtual na tela principal do VirtualBox e clique no botão Descartar, na barra superior da janela. O mesmo efeito é conseguido simplesmente desligando a máquina a partir do sistema operacional virtualizado. A seguinte sintaxe é usada para o comando VBoxManage para se efetuar essa operação: $ VBoxManage discardstate Ubuntu Snapshots O recurso de snapshots torna possível a uma mesma máquina virtual armazenar diferentes estados de execução. Desta forma, uma eventual complicação no sistema operacional virtualizado pode ser descartada simplesmente revertendo a máquina para um estado – daí o termo “snapshot”, que significa “instantâneo” em inglês – anterior, em que tudo funcionava corretamente. Os snapshots podem ser administrados na parte direita da janela principal do VirtualBox, na aba Snapshots. O estado atual representa o tempo presente do sistema operacional virtualizado. Os snapshots são criados a partir do estado atual da máquina virtual. http://www.linuxmagazine.com.br VirtualBox | CAPA Criação Existem duas maneiras de criar um snapshot: com a máquina virtual desligada e com a máquina virtual em funcionamento. Na primeira, basta ir até a aba Snapshots na janela principal do VirtualBox (figura 5) e clicar no ícone de uma câmera fotográfica (ou clicar com o botão direito do mouse sobre o estado atual e em seguida no item Criar snapshot). Se a máquina virtual estiver em funcionamento, vá até o menu Máquina da janela da máquina virtual e escolha o item Criar snapshot. Em ambos os casos, será solicitado um nome para o snapshot. O nome é útil especialmente nos casos em que diversos snapshots serão criados para uma mesma máquina virtual. Por exemplo, é possível criar um snapshot chamado Sistema recém instalado e um snapshot posterior chamado Aplicativos adicionais instalados. O único limite para a criação de snapshots é o espaço em disco disponível no sistema hospedeiro. Com o comando VBoxManage, basta digitar: $ VBoxManage snapshot take \ Ubuntu --description \ “Ubuntu 25/03/2010 18:00” Restauração Com a máquina virtual desligada, qualquer snapshot previamente salvo pode ser restaurado. Os snapshots oferecem uma maneira de avançar e retroceder na linha do tempo do sistema operacional virtualizado. Ao restaurar um snapshot, o estado atual da máquina é descartado e o sistema operacional retorna ao momento em que o snapshot foi criado. Para restaurar um snapshot, clique sobre ele com o botão direito do mouse e escolha o item Restaurar Snapshot. Além de restaurar os dados do sistema operacional virtu- Linux Magazine #65 | Abril de 2010 Figura 5Os snapshots mantêm diferentes momentos registrados, permitindo que sejam restaurados. alizado tais quais eram à época, as configurações da máquina virtual que eventualmente tenham sido alteradas no VirtualBox também serão restauradas. Novos snapshots podem ser criados a partir de snapshots pré-existentes. Desta forma, é possível criar árvores alternativas de versões, cada qual com sua própria história. Fazendo o mesmo com o comando VBoxManage: $ VBoxManage snapshot restore \ Ubuntu Apagamento Ao apagar um snapshot, nenhuma alteração é feita ao estado atual da máquina. Contudo, a restauração do momento registrado no snapshot em questão será perdida. A remoção de snapshots desnecessários é muito útil para liberação de espaço em disco no sistema hospedeiro. Conclusão A utilização de uma máquina virtual na forma de um appliance oferece a desenvolvedores e distribuidores de software a possibilidade de empacotar soluções e entregá-las prontas ao consumidor final, sem necessidade de instalações e configurações complicadas. Além disso, o administrador pode criar modelos de máquinas comuns e aplicá-las em diferentes contextos quando necessário. O recurso de snapshots potencializa as facilidades trazidas pelos ambientes virtualizados de teste. Principalmente ao utilizar softwares experimentais ou realizar testes de configuração, a possibilidade de manter versões concorrentes do mesmo sistema agiliza a recuperação de momentos específicos. n Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em [email protected] Este artigo no nosso site: http://lnm.com.br/article/3396 47