Virtualização
Virtualização é o processo de executar vários sistemas operativos num único equipamento. Uma máquina virtual é um ambiente completo que se comporta como se fosse um computador independente. Com a virtualização, um servidor pode manter vários sistemas operativos em utilização.
Virtualização é também o modo de apresentação ou agrupamento de um subconjunto lógico de recursos computacionais de modo que possam ser alcançados resultados e benefícios como se o sistema estivesse sobre a configuração nativa. Deste modo, a virtualização dos recursos não é restrita somente à execução, posição geográfica ou pela configuração física de recursos. Virtualização de recursos geralmente incluí o armazenamento de dados e poder de processamento.
Um tipo de virtualização actualmente muito utilizado é a virtualização por hardware para correr mais de um sistema operativo ao mesmo tempo, através de microkernels ou de camadas de abstracção de hardware, como por exemplo o Xen.
Na prática é possível virtualizar servidores e armazenamento (storage).
A virtualização permite a consolidação dos recursos físicos (hardware), pois para o grupo de servidores virtualizados num mesmo host físico todos passam a ser executados num único hardware.
Com isso, o administrador do sistema passará a administrar apenas um recurso físico. A administração do sistema como um todo não sofre redução de complexidade, pois "n" servidores virtualizados ainda representam "n" servidores que necessitam administração. Adicionalmente, existe ainda a necessidade de administração do servidor físico (host da virtualização), que se torna num recurso crítico dentro da estrutura. Afinal, a sua falha representará a falha dos "n" servidores virtualizados.
Tipos de Virtualização
Virtualização é um termo muito amplo que leva à abstracção de recursos em diferentes aspectos da computação. O conceito virtualização foi concebido pela área de TI para se referir a tudo que diga respeito a máquinas virtuais e a softwares da gestão de sistemas.
Uma máquina virtual é um ambiente que se apresenta como um sistema operativo “convidado” no hardware, mas é simulada num ambiente de software dentro do sistema “hospedeiro”. A simulação dos drivers do hardware deve ser muito robusta para o sistema “hospedeiro” funcionar correctamente. A criação e a gestão de máquinas virtuais são frequentemente consultadas pelo software de virtualização também chamado de servidor de virtualização.
Há diversas soluções:
Emulação – a máquina virtual simula todo o hardware, permitindo que um Sistema Operativo sem modificações corra num processador central completamente diferente do hardware nativo. (Bochs, versões do virtual PC para PPC, Qemu sem aceleração)
Virtualização nativa – a máquina virtual simula parcialmente o hardware para permitir que um Sistema Operativo sem modificações funcione isoladamente no hardware, mas o Sistema Operativo convidado deve ser projectado para o tipo de processador central. (VMware, Parallels Desktop, Adeos, Mac-on-Linux, Xen)
Paravirtualização – a máquina virtual não simula o hardware, mas oferece preferencialmente um API especial que requer modificações do kernel do Sistema Operativo hospede. As chamadas de sistema ao hypervisor são conhecidas como paravirtualização no Xen.
Xen
Xen é um Monitor de Maquinas Virtuais (VMM) que possui uma camada de abstracção entre o hardware e o sistema operativo virtualizado. Todo o código do micro-kernel e das aplicações da VMM do Xen está sob GPL.
Xen provê para-virtualização de Sistemas Operativos com alterações do kernel para a arquitectura xen em hardwares x86/x86_64 e full virtualization em hardwares x86/x86_64 com suporte a virtualização sem necessidade de modificações do sistema operativo “hospede”.
O Xen é mantido pela Universidade de Cambridge e conta com apoio de empresas globais da área de tecnologia da informação tais como IBM, HP, Intel, AMD entre outras.
Alguns ports do Xen estão disponíveis para outros sistemas operativos como
NetBSD?,
FreeBSD? e Solaris.
A dependência do Sistema Operativo num hardware exclusivo parece estar a tornar-se coisa do passado. No futuro pretende-se ter um Sistema Operativo que não dependa exclusivamente do hardware e da sua localização geográfica.
O Xen nasceu do projeto
NetOS?(Networks and Operating Systems), criado pelo "Computer Laboratory's Systems Research Group" e pretende como o próprio nome do projecto pai sugere, criar uma camada de abstracção onde o Sistema Operativo possa correr nos recursos dos servidores por uma rede TCP/IP.
Para-Virtualização no XEN
O Xen usa uma técnica completamente diferente do que conceptualmente é utilizada em outros hypervisors. Na para-virtualização, o Sistema Operativo hospede é portado para uma camada de hardware (ring 0) que virtualiza todas as relações do Sistema Operativo com o hardware. Quando o Sistema Operativo actualiza estruturas de dados do hardware, tais como a tabelas de paginação ou dá inicio a uma operação do acesso directo á memória, o Sistema Operativo hospede faz chamadas á API que é oferecida pelo hypervisor.
Virtualização Nativa
Tipicamente, este método é iniciado com uma VMM (Virtual Machine Monitor) com suporte a virtualização completa ( full ) , como o Xen por exemplo, e, baseando-se na analise de desempenho, emprega as técnicas de aceleração. O uso do processador e também drivers de rede são os recursos mais comuns onde é empregada a virtualização nativa.
Vantagens
A virtualização nativa reduz a maioria do trabalho de manutenção da paravirtualização no que diz respeito á quantidade de alterações necessárias no sistema operativo convidado. Obtém também considerável ganho de desempenho comparando com paravirtualização.
Desvantagens
A virtualização nativa requer que o convidado carregue módulos, o que pode afectar a sua sustentação. Ainda existe uma certa limitação quanto ao número de sistemas operativos convidados a serem executados eficientemente numa VMM. É provável que, com as novas tecnologias de virtualização nativa de X86 e X86_64 da Intel e da AMD, melhorias significativas possam ser alcançados.