Na postagem anterior abordamos passo a passo a instalação do FreeBSD sobre uma vm através do VirtualBox.
Está postagem abre uma sessão de outras postagens, quais abordarão a instalação e configuração do Xen Hypervisor, assim como a instalação do Solaris através da paravirtualização em Xen.
Empresas que procuram aumentar a utilização de servidores, otimizar soluções já implementadas, reduzir tanto a complexidade, como o custo total do patrimônio alocado estão adotando a virtualização de servidores. O Xen hypervisor é, além de ser o único com technologia "open source", a mais rápida e mais segura solução de virtualização de infraestrutura disponível atualmente, suportando uma vasta gama de sistemas operacionais como convidados, tais como o Windows®, Solaris®, dentre outros.
A instalação do Xen sobre o Slackware será o centro desta postagem, assim, antes de entrar-mos nos detalhes técnicos, quero aqui colocar algumas considerações:
- O kernel passou a dá suporte nativo ao Xen a partir da versão 3.x, e a versão nativa contida no Slackware 13.37 é a 2.6.37.6;
- Como o Xen é um software de paravirtualização, ele usa uma imagem de inicialização, qual é utilizada junto com a imagem do kernel, sendo que o Grub oferece melhor suporte do que o Lilo, e o Slackware sempre trouxe o Lilo como o seu boot loader nativo, e nem disponibiliza o Grub em seu disco de instalação;
- Até o momento, muito raramente serão encontrados pacotes de instalação do Xen hypervisor para o Slackware disponíveis na rede, porém o fonte disponibilizado no pŕoprio site da suporte ao recurso "DESTDIR".
Bem, após as considerações acima, entraremos agora nos detalhes técnicos.
Iniciaremos fazendo o download da versão estável mais atual do kernel, a versão
3.1.6;
Agora iremos descompactar o nosso novo kernel, lembrando que a localização padrão para os fontes do kernel é sempre em
/usr/src:
bash-4.1# tar -jxvf linux-3.1.6.tar.bz2 --directory=/usr/src/
Obs.: A opção
--directory já encaminha o fonte do kernel direto para caminho desejado.
 |
| Para ampliar, clique sobre a figura. |
Conforme a figura acima, foram seguidos os seguintes passos, após descompactado o fonte do kernel para o caminho específico:
- Foi acessado o diretório onde localizam-se os fontes dos kernels (/usr/src/);
- Foi removido (rm) o link simbólico vinculado ao fonte do kernel corrente;
- Foi criado o link simbólico (ln -s) vinculado já ao novo kernel (3.1.6);
- Foi acessado o diretório onde localizam-se os fontes do novo kernel através do link simbílico(/usr/src/linux);
- Foi expandido (zcat) o config do kernel corrente para o caminho do novo kernel, mantendo assim, as configurações anteriores para a compilação do kernel 3.1.6;
- Foi feita uma atualização do .config (oldnoconfig) com base no disponibilizado pelo kernel corrente, definindo todos as novas implementações como n, adicionalmente às atualizações das dependências...
 |
| Para ampliar, clique sobre a figura. |
... E ao acessar o menu de configuração do novo kernel (menuconfig), o primeiro a ser feito foi definir o suporte para memórias grandes para 64 Gb (Processor type and features - High emory Support), caso contrário, não aparecerão as opções de suporte para o Xen. (Figura acima);
 |
| Para ampliar, clique sobre a figura. |
Conforme a figura acima, foi habilitado o suporte para sistemas convidados paravirtualizados...
 |
| Para ampliar, clique sobre a figura. |
... E ao acessar-mos o seu submenu, habilitamos o suporte para sistemas convidados Xen, dentre outros conforme mostrado na figura acima;
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu anterior (Processor type and features), foi habilitado também o recurso, conforme mostra a figura acima.
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu principal, conforme mostra a figura acima, acessamos a opção de suporte a barramentos...
 |
| Para ampliar, clique sobre a figura. |
... E habilitamos o suporte ao PCI frontend para Xen.
 |
| Para ampliar, clique sobre a figura. |
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu principal, conforme mostram as figuras acima, acessamos a opção de suporte a dispositivos de hardware, em seguida o submenu de dispositivos de bloco (Block devices)...
 |
| Para ampliar, clique sobre a figura. |
... Encontradas as opções sobre o Xen, habilitamos o suporte nativo a dispositivos de blocos virtuais do Xen, e o beckend habilitamos como módulo (M), conforme mostrado na figura acima.
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu anterior, conforme mostra a figura acima, acessamos a opção de suporte a dispositivos de rede...
 |
| Para ampliar, clique sobre a figura. |
... Encontradas as duas opções sobre o Xen, habilitamos os suportes da mesma forma que fizemos em
Block devices, conforme mostrado na figura acima.
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu anterior, conforme mostra a figura acima, acessamos a opção de suporte a dispositivos de caractere...
 |
| Para ampliar, clique sobre a figura. |
... E habilitamos o suporte ao console do Xen conforme mostra a figura acima.
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu anterior, conforme mostra a figura acima, acessamos a opção de suporte ao
Watchdog Timer...
 |
| Para ampliar, clique sobre a figura. |
... E habilitamos o suporte ao Watchdog do Xen conforme mostra a figura acima.
 |
| Para ampliar, clique sobre a figura. |
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu anterior, conforme mostram as figuras acima, acessamos a opção de suporte a recursos gráficos, e em seguida ao submenu de suporte para
frame buffer...
 |
| Para ampliar, clique sobre a figura. |
... E habilitamos o suporte ao frame buffer virtual do Xen.
 |
| Para ampliar, clique sobre a figura. |
Retornando ao menu anterior, conforme mostra a figura acima, acessamos a opção de suporte a drivers do Xen...
 |
| Para ampliar, clique sobre a figura. |
... E habilitamos o suporte nativo a todos os drivers virtuais do Xen, exceto o driver "User-space grant reference allocator", qual habilitamos como módulo (M), conforme mostrado na figura acima.
 |
| Para ampliar, clique sobre a figura. |
E para finalizar esta etapa, retornando ao menu anterior, conforme mostra a figura acima, habilitamos o suporte a drivers de virtualização.
Retornamos ao menu principal, saímos do menu de configurações para o novo kernel, e salvamos as alterações de forma que foram escritas no
.config.
Agora compilaremos o suporte a todos os recursos marcados como nativos (*) ao novo kernel, com o comando abaixo:
bash-4.1# make all
Obs.: ¹ O procedimento referente ao comando acima dura cerca de 60 minutos até a sua finalização; ² Caso o usuário queira habilitar mais algum recurso nativo ( * ), ou como módulo (M) no novo kernel, pode faze-lo, mas com muito critério, e cuidado para que a imagem de inicialização do kernel não fique grande de mais, provocando instabilidade, e até a não inicialização do sistema (kernel panic).
Finalizada a compilação dos módulos marcados como nativos, instalamos todos os módulos para o caminho de instalação dos mesmos, com o comando abaixo:
bash-4.1# make modules_install
Finalizando mais uma etapa, instalamos o kernel para o seu caminho de instalação (/boot) com o comando abaixo:
bash-4.1# make install
Obs.: Com o comando acima, serão criados os arquivos de imagem do kernel (vmlinuz), e o System.map, e logo em seguida será executado o lilo para a atualização das entradas do kernel no
boot loader. Foi também criado o arquivo /etc/rc.d/rc.modules do novo kernel.
 |
| Para ampliar, clique sobre a figura. |
Conforme a figura acima, foram seguidos os seguintes passos, após instalação do kernel:
- Foi acessado o diretório onde se encontram os serviços do Slackware;
- Foi feita uma cópia (cp) do script de inicialização dos módulos extras dentro do kernel do Linux, sendo renomeado conforme a versão do kernel, qual foi instalada (3.1.6-smp);
- Foi removido o script rc.modules com nome genérico, gerado pela instalação do novo kernel;
- Foi criado o link simbólico (rc.modules), apontando para o script do novo kernel (rc.modules-3.1.6-smp);
- Foi renomeado (mv) o arquivo de imagem do novo kernel do Linux conforme a versão do kernel, qual foi instalada (vmlinuz-3.1.6-smp);
- Foi renomeado também o arquivo System.map do novo kernel conforme a sua versão, qual foi instalada (System.map-3.1.6-smp);
- Foi feita uma cópia do arquivo de configuração (.config) do novo kernel, sendo renomeado conforme a versão, qual foi instalada (config-3.1.6-smp);
- Foi criado o link simbólico (vmlinuz), apontando para a imagem do novo kernel (vmlinuz-3.1.6-smp);
- Foi criado o link simbólico (System.map), apontando para o arquivo do novo kernel (System.map-3.1.6-smp);
- Foi criado o link simbólico (config), apontando para o arquivo de configuração do novo kernel (config-3.1.6-smp). Obs.: Não esquecer de remover o link simbólico /boot/config vinculado ao kernel corrente antes de criar o do novo kernel.
 |
| Para ampliar, clique sobre a figura. |
Conforme mostra a figura acima, encontramos a entrada padrão de inicialização do Slackware, e logo abaixo fui adicionada,
por segurança, a entrada de inicialização com o kernel antigo, caso hajam problemas na inicialização com o novo kernel outrora compilado e instalado.
 |
| Para ampliar, clique sobre a figura. |
Após fechado o arquivo
/etc/lilo.conf salvando com a entrada do kernel antigo, foi reinstalado o
lilo.
Tudo, até aqui.
Assim, continuaremos com a sessão de postagens sobre o Xen.
Aproveito para desejar a todos melhores votos para 2012.
Saudações.