“If unsure, say N. If curious, say M. If masochistic, say Y “
(Linux kernel config for lguest module)
Um hypervisor é uma máquina virtual monitora (virtual machine monitor) que possibilita executar diversos sistemas operacionais em uma mesma máquina. Isso significa que você pode executar o Windows e o OpenBSD em máquinas virtuais executando em cima do Gentoo, Fedora, ou outra plataforma GNU/Linux.
Exemplos
No kernel existem pelo menos 8 sistema de virtualização distintos: Xen, KVM, VMWares’s VMI, IBM’s System p, IBM’s System z, User Mode Linux, lguest e IBM’s legacy iSeries.
O que é o lguest ?
O projeto lguest, desenvolvido por Rusty Russel, do iptables, é um projeto simples de virtualização. Este permite a virtualização completa de kernels. Atualmente, apenas o kernel Linux é suportado como convidado (guest) e somente em hardware x86 (32bits).
Utilização: instalação
A primeira coisa a fazer é ler a documentação oficial lguest.txt. Não se esqueça de ativar o .config as seguintes opções:
.
CONFIG_EXPERIMENTAL=y
CONFIG_PARAVIRT=y
CONFIG_LGUEST_GUEST=y
CONFIG_HIGHMEM64G=n
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_NET=m
CONFIG_TUN=m
CONFIG_LGUEST=m
Utilização: executando
Depois de compilar o kernel, carrege os módulos lg e tun e dê um make dentro do diretório Documentation/lguest/ para compilar uma ferramenta chamada lguest que será utilzada para iniciar o lguest. Depois para rodar:
Documentation/lguest/lguest 128 vmlinux –tunnet=192.168.254.10 –block=rootfile root=/dev/vda
Algumas explicações:
- vmlinux: a imagem do kernel (pode-se utilizar também o bzImage)
- rootfile: Para ter o mínimo de usabilidade, você precisa testar o kernel em cima de algum sistema de arquivos. Uma maneira rápida para testar é usar um ramdisk, clique no rootfile acima para baixar a imagem a substitua pelo nome do arquivo (initrd-1.1-i386.img).
- tunnet: configura um dispositivo “tap”
- root=/dev/vda parâmetros do kernel (pode ser qualquer opção compatível como parâmetro do kernel)
Na documentação há ensinado como utilizar uma distribuição (a partir de uma ISO) com o qemu para trabalhos mais sérios.
Dica: acesso via NFS
Em vez de ficar criando uma imagem ou mesmo usando o qemu eu acho que é mais rápido montar uma partição via NFS e usá-la para acessar os arquivos.
Documentation/lguest/lguest –tunnet=<target-ip> vmlinux ip=<target-ip>:<server-ip>:<gateway-ip>:<netmask>:<hostname>:<device>:<PROTO> nfsroot=<server-ip>:/caminho/para/rootfs root=/dev/nfs
No meu caso eu uso uma variação nos pacotes do stage3 do Gentoo.
E o didático dessa história?
O lguest possui um Quest (dividido em 7 partes) bem interessante para quem quer entender o funcionamento de um virtualizador vendo o “código”, acessem do diretório drivers/lguest/README no código-fonte do kernel para saber como começar.
Referências
Arquivado em: Linux | Etiquetado: kernel, lguest, Linux, virtualização

[...] por Mauro Rodrigues (maurus·rodriguesΘgmail·com) – referência [...]