Mostrando postagens com marcador virtualização. Mostrar todas as postagens
Mostrando postagens com marcador virtualização. Mostrar todas as postagens

quarta-feira, 20 de junho de 2012

A linha de comando do VirtualBox

O VirtualBox possui, além da sua interface gráfica, a opção de interface pela linha de comando para configuração e manutenção das máquinas virtuais. A ferramenta VBoxManage é capaz de criar, modificar e executar as VMs. Faz tudo que a interface gráfica faz e mais um pouco, pois existem comandos não possíveis de realizar graficamente. Por exemplo, a interface gráfica não possui o recurso para compactar o HD virtual.

Aqui não irei demonstrar cada um dos comandos, apenas ilustrar a interface de gerenciamento em linha de comando do VirtualBox.

Com uma sequência de comandos podemos criar uma máquina virtual, por exemplo:

$ VBoxManage createvm --name "CentOS 6.2" --register
$ VBoxManage modifyvm "CentOS 6.2" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
$ VBoxManage createhd --filename CentOS_6.2.vdi --size 40000
$ VBoxManage storagectl "CentOS 6.2" --name "IDE Controller" --add ide
$ VBoxManage storageattach "CentOS 6.2" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium CentOS_6.2.vdi
$ VBoxManage storageattach "CentOS 6.2" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/CentOS-6.2-i386-bin-DVD1.iso

Todas as VMs criadas e registradas no VirtualBox são listadas com a execução do comando "list vms":

$ VBoxManage list vms

Caso queira executar uma VM, usa-se o comando startvm, seguido pelo nome da VM ou pelo UUID:

$ VBoxManage startvm "CentOS 6.2"

Pelo comando acima, a VM é aberta naturalmente em uma janela, que exibe o conteúdo do sistema virtualizado. Uma opção interessante é a "headless", pois inicia a VM em segundo plano sem abrir a janela da interface gráfica, além de ativar o protocolo de desktop remoto, o que possibilita visualizar a saída gráfica da VM remotamente por outra máquina. A linha de comando torna-se:

$ VBoxManage startvm "CentOS 6.2" --type headless

Desviando do assunto, o desktop remoto pode ser aberto por qualquer cliente RDP. A porta padrão é a 3389, porém se existirem mais de uma máquina virtual, cada uma deverá estar configurada para uma porta diferente. O endereço IP é o endereço do host, pois é onde o VirtualBox está sendo executado. Exemplo com o rdesktop do Linux:

$ rdesktop 192.168.1.10:3389

Todas as máquinas virtuais que estão rodando são listadas com a execução do comando "list runningvms":

$ VBoxManage list runningvms

Para desligar a máquina virtual de fora dela, ou seja, sem executar um comando interno no sistema convidado, existem alguns comandos que simulam o hardware de um computador. As funções dos botões "Power" e "Reset" até o suporte da ACPI, são simulados com, por exemplo:

$ VBoxManage controlvm "CentOS 6.2" acpipowerbutton

$ VBoxManage controlvm "CentOS 6.2" reset

$ VBoxManage controlvm "CentOS 6.2" poweroff

Sempre é possível identificar a máquina pelo nome da VM ou pelo UUID da VM. Caso o nome ou qualquer outra identificação tenha espaços, é necessário protegê-lo do interpretador de comandos. As aspas e os apóstrofos servem para isto.

$ su vboxuser -c '/usr/bin/VBoxManage startvm "CentOS 6.2" --type headless'

Desviando do assunto mais uma vez, para executar um comando interno no sistema convidado, por exemplo um comando para desligamento, estando fora da máquina virtual, podemos usar a ferramenta ssh, em algo como:

$ sshpass -p senha ssh root@192.168.1.15 "shutdown -h now"

A ferramenta VBoxManage possui dezenas e mais dezenas de comandos e opções, tornando esta interface textual bastante rica em recursos. Uma necessidade desta interface está, por exemplo, no gerenciamento de servidores remotos, quando o acesso é por um terminal remoto em modo texto. A opção "--help" exibe a lista de todos os comandos e opções existentes. É uma ajuda mas não é um manual:

$ VBoxManage --help

quarta-feira, 11 de novembro de 2009

O que é virtualização?

Em uma breve definição, virtualização é a execução de vários sistemas operacionais em um único computador físico. Uma máquina virtual é um ambiente operacional completo que se comporta como se fosse um computador independente. Com a virtualização, um computador pode manter vários sistemas operacionais em uso.

Os ambientes operacionais são totalmente independentes um dos outros, salvo o hardware do computador que hospeda os sistemas virtualizados, esses ambientes virtuais não têm nada mais em comum. Se um sistema operacional pode ser instalado em um hardware real, poderá ser instalado em uma máquina virtual. O computador servidor pode hospedar vários sistemas operacionais, sejam eles iguais, similares ou completamente diferentes. Os sistemas operacionais virtualizados são independentes entre si.

Não é preciso que o computador servidor tenha um hardware específico para virtualização, porque quase todos os equipamentos são capazes de hospedar uma ou mais máquinas virtuais. Para isso, é preciso apenas um software especial desenvolvido para emular o ambiente físico. Basicamente, o software simula o hardware de forma que o sistema operacional é instalado sobre esse software. Existem diversos softwares para executar máquinas virtuais, os mais populares são o VMware, o VirtualBox e o Virtual PC. E outros menos famosos como o Parallels, o Xen e o QEMU.

Uma característica interessante que facilita a portabilidade das máquinas virtuais, entre servidores com especificações de hardware diferentes, é que o hardware que é apresentado ao sistema operacional virtual é o mesmo. Deste modo os drivers de dispositivos instalados sempre são os mesmos não importando qual hardware o servidor possui.

Em um ambiente computacional virtual, existem dois componentes principais, o hospedeiro e o convidado. O hospedeiro é o sistema operacional executado diretamente sobre o hardware físico. Este hospedeiro é o sistema operacional que você instala inicialmente sobre o servidor. Pode ser um Linux ou um Windows por exemplo, entretanto existem alguns softwares de virtualização que não necessitam de um sistema hospedeiro, atuam como sendo o próprio sistema operacional do hardware, como o VMware ESX. O segundo componente é o sistema operacional convidado. O sistema operacional convidado é o ambiente computacional virtual que é executado sobre o sistema operacional hospedeiro como uma máquina virtual. Com a virtualização é possível manter simultaneamente vários sistemas convidados.

Apesar da virtualização permitir vários sistemas operacionais em execução simultânea, todos de forma independente, existe apenas um servidor físico, um único hardware para atender todo o processamento e armazenamento em memória. Assim, existe um limite para o número de máquinas virtuais que podem ser instaladas em um servidor.

Pode-se compartilhar um conjunto de recursos do servidor apenas até que eles se esgotem ou que as partes não ofereçam capacidade suficiente. A única restrição para o número de máquinas virtuais é definida pelos limites de memória, espaço em disco e poder de processamento da CPU oferecidos a elas. Qualquer computador que espera hospedar uma ou mais máquinas virtuais deve possuir recursos não apenas para o hospedeiro como também para acomodar os sistemas convidados. Se o computador hospedeiro não tem grande volume de espaço em disco e não apresenta memória ou poder de processamento suficientes, não poderá oferecer aos sistemas operacionais convidados recursos adequados e o sistema operacional convidado sofrerá baixo desempenho.

Sendo as únicas desvantagens da virtualização a limitação do hardware e no acesso direto ao hardware, as vantagens na adoção dos ambientes virtuais são grandes. A facilidade no gerenciamento e na manutenção, na realização de cópias de segurança e na restauração, faz da virtualização uma excelente ferramenta para o administrador do sistema. Além de contribuir para uma redução na infraestrutura de hardware e no consumo de energia.

Uma dica, o software Sun VirtualBox é gratuito e fácil de operar. Instale-o em seu computador e experimente executar um sistema Linux dentro do Windows ou vice-versa, ou em um Mac OS X! Livre-se do "dualboot", mantenha todos em execução simultânea.