Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Informações Gerais
De acordo com (TANENBAUM & WOODHULL, 2000) como tudo o que se refere a
computadores, os sistemas operacionais evoluem a passos largos. É essa evolução que
abre caminho para aplicativos mais poderosos e tem aumentado dia a dia a presença de
computadores em nossas vidas.
Um dos grandes problemas existentes no ensino de Redes de Computadores é a
estrutura física para aulas práticas. Quando existem laboratórios específicos para o
ensino deste conteúdo, as turmas de alunos têm que ser divididas em grupos, pois a
quantidade de equipamentos é reduzida.
O uso de máquinas virtuais, criando ambientes de rede para cada aluno em sala
de aula, vem facilitar muito o ensino prático. Com equipamentos que tem cada vez mais
recursos e sistemas poderosos o suficiente para que possamos utilizar formas de
virtualização que possam além de diminuir nossos gastos apresentar resultados iguais ou
até melhores que em ambientes reais é um ótimo caminho a se seguir quando faltam
outros recursos como computadores físicos, por exemplo.
Porém, tudo isso envolve questões como o estudo de virtualização e as formas
de virtualização, aprendizagem de alguma ferramenta de virtualização de sistemas,
possíveis vantagens e desvantagens, como estabelecer conexões entre os sistemas
virtuais.
Com isso, a motivação para escolha deste tema é a possibilidade de pesquisar e
trabalhar em uma área que está cada vez mais sendo usada, e proporcionar uma forma
diferente de trabalhar em rede que se utilizando corretamente alguma ferramenta de
virtualização se resumiria a apenas um computador físico.
2. Conceitos
Neste capítulo buscou-se apresentar os principais aspectos relacionados à virtualização,
e sobre os principais modelos de virtualização, no sentido de dar suporte ao estudo
pratico desenvolvido.
2.1 Virtualização
Segundo o site (DESIGN TECNOLÓGICO, 2008) virtualização é a execução de
diversos sistemas operacionais em um único equipamento físico. Muita gente confunde
Virtualização com Emulação. Emulação é a recriação de um ambiente de trabalho sem
qualquer relação necessário com o ambiente-anfitrião e sem auxílio de hardware,
enquanto a virtualização permite criar diversas máquinas virtuais, utilização de recursos
de rede e de hardware.
Para (DUARTE, 2008) a virtualização é apresentada na maioria das vezes
como a capacidade de fazer um mesmo hardware ser explorado por diversos ambientes
computacionais. No entanto, esse conceito é mais amplo, considerando virtualização
como a técnica que cria ilusões dos recursos físicos para serem explorados pelas
máquinas virtuais. Essa técnica, muito empregada em servidores, ainda tem como
vantagem oferecer uma camada de abstração dos verdadeiros recursos de uma máquina,
provendo um hardware virtual para cada sistema, tornando-se também uma excelente
alternativa para migração de sistemas.
Assim, o conceito de Virtualização não é novo, essa tecnologia segundo os
autores (WILLIAMS & GARCIA, 2007) baseia-se numa técnica que adiciona entre as
aplicações e o hardware uma camada de abstração, podendo melhorar os níveis de
serviços e qualidade dos mesmos. Em virtude do crescimento desta técnica, assim como
em qualquer outra área, surgem os vários termos utilizados. Para que seja possível o
entendimento pleno deste trabalho, os tópicos a seguir visam esclarecer a terminologia
utilizada nesta área. Importante lembrar que alguns termos, às vezes, são utilizados de
maneira errada pelo simples desconhecimento de tal terminologia. A seguir são
apresentados os principais conceitos da área, adaptados de alguns autores.
2.2 Máquinas Virtuais
Máquina Virtual (Virtual Machine ou VM) refere-se à instância de um hardware
virtualizado e um sistema operacional também virtualizado normalmente sob a forma de
simulação, ou seja, uma interface com o ambiente, diferentemente da emulação que
refletiria todos os estados internos do ambiente ao mesmo tempo. Uma máquina virtual
pode executar qualquer tipo de software como um servidor, um cliente ou um desktop.
Esta máquina virtual também é chamada de computador virtual, convidado, domainU,
domU ou domínio sem privilégios. Diretamente pode-se dizer que maquina virtual é
uma duplicata eficiente e isolada de uma maquina real (LAUREANO, 2006).
2.3 Monitores de Máquina Virtual
Entre os vários conceitos envolvidos no estudo de máquinas virtuais, o de um monitor
de máquinas virtuais (VMM, ou Virtual Machine Monitor) é um dos principais. O
monitor é uma camada de software introduzida entre o sistema visitante (guest system) e
o hardware onde o sistema visitante executa (XEN SOURCE, 2007). Essa camada faz
uma interface entre os possíveis sistemas visitantes (virtuais) e o hardware que é
compartilhado por eles. Ela é responsável por gerenciar todas as estruturas de hardware,
como MMU (Memory Management Unit), dispositivos de E/S, controladores DMA
(Advanced Micro Devides), criando um ambiente completo (maquina virtual), onde os
sistemas visitantes executam. O VMM é o centro da virtualização de servidores. Que
gera recursos arbitrários de hardware e os múltiplos pedidos dos hospedes dos sistemas
operacionais e das aplicações (WILLIAMS & GARCIA, 2007).
Em computação, o VMM também é chamado de Hypervisor. O hypervisor é
uma plataforma de virtualização que possibilita a execução concomitante de vários
sistemas operacionais em um único hardware. Para realizar tudo isto, o VMM pode
atuar de duas maneiras distintas para promover a virtualização:
• O tipo 1 é aquele que é executado diretamente no hardware da maquina,
como se fosse um sistema operacional. Os sistemas operacionais virtualizados
são executados em um segundo nível acima do hardware, logo acima do
hypervisor. Alguns exemplos são: VMware ESX, Xen, dentre outros.
• O tipo 2 é aquele que é executado sobre um sistema operacional existente em
uma segunda camada. Já os sistemas operacionais virtualizados rodam em um
terceiro nível acima do hardware, logo acima do hypervisor. Alguns exemplos
são: VMware Workstation, VMware Player, Microsoft Virtual Server,
Xen,Virtual Box, dentre outros.
As Figuras 1 e 2 mostram esquemas das arquiteturas de Tipo 1 e Tipo 2.
4. Exercícios Propostos
Neste capítulo serão propostos e desenvolvidos alguns exercícios que podem ser
utilizados no ensino de redes de computadores utilizando ferramentas de virtualização
que nesse caso será a ferramenta VirtualBox. Será mantido um nível crescente de
complexidade dos exercícios.
O sistema hospedeiro vai ser o Windows XP Professional, sendo que os
sistemas virtualizados oscilarão entre as plataformas Windows e Linux, estando por
vezes as duas juntas no mesmo exercício e em outros casos com sistemas de mesma
plataforma.
4.1 Exercício 1: Configuração manual de endereços IP em Linux e em Windows
Neste exercício o objetivo é usar uma rede interna virtual entre duas máquinas uma será
utilizado o sistema operacional Windows Professional e em outra será utilizada o Linux
na distribuição Ubuntu 9.04. Como esta rede virtual não terá servidor de DHCP, a
configuração das interfaces TCP/IP que é um conjunto de protocolos de comunicação
entre computadores em rede tem que ser de forma manual.
No VirtualBox a configuração da placa de rede na opção conectado a: deve
estar na opção rede interna, o nome que nesse exercício foi definido como intnet e a
configuração da rede devem ser o mesmo nas duas máquinas, Windows e Linux. Para
isto, basta selecionar a máquina já montada no VirtualBox, clicar em configurações e
após em rede, no adaptador 1, no campo conectado a: escolhe a opção rede interna e no
campo nome: define um nome qualquer, que deve ser igual nas duas máquinas, depois é
só iniciar as máquinas.
Com essa configuração de rede interna no VirtualBox, será o mesmo que se as
duas máquinas tivessem ligadas a um switch não roteador ou através de um cabo
crossover, tendo então que se definir os IPs manualmente para que haja comunicação
entre estas duas maquinas na rede. Deve-se levar em conta classe de IPs utilizada para
que as duas fiquem na mesma para haver a comunicação e também que fiquem diferente
da maquina hospedeira caso haja comunicação de rede nesta, para que não tenha
problemas de conflitos de IP com a rede externe.
Cabe salientar que para este exercício e também os exercícios 2 e 3 se fez
necessário a desativação do firewall do sistema operacional Windows para que fosse
possível a comunicação Linux -> Windows, pois o mesmo estava bloqueando.
Para maiores informações e exemplo deste exercício, foi desenvolvido um
tutorial bem exemplificado com imagens do exercício que esta disponível pra acesso
em: http://tudovirtualizado.blogspot.com/.
4.2 Exercício 2: Configuração de um servidor DHCP em Linux
Neste exercício serão utilizar duas maquinas virtuais uma utilizando o Windows XP
Professional e outra utilizando o Linux na distribuição Ubuntu 9.04, a idéia aqui é
configurar um servidor DHCP em Linux e configuração dinâmica no Windows. O
objetivo é usar a mesma rede interna virtual do exercício anterior entre as duas
máquinas, porém sem a configuração manual de IP no Windows, para isto será
configurada novamente a maquina virtual Linux e após instalado um servidor DHCP no
Linux para fornecer a configuração dinâmica para o Windows.
Numa rede de Arquitetura TCP/IP, todo computador tem que possuir um
endereço IP distinto. O DHCP é o protocolo que provê um meio para alocar estes
endereços dinamicamente. DHCP vem do Inglês Dynamic Host Configuration Protocol
que significa Protocolo de Configuração de Host Dinâmico. O endereço IP é locado
temporariamente a um equipamento e periodicamente, é necessária a atualização dessa
locação. Com essa configuração, é possível ser utilizado por diferentes equipamentos,
em momentos diferentes, o mesmo endereço IP. Basta, para isso, que o primeiro a locar
o endereço, deixe de utilizá-lo. Quando o outro equipamento solicitar ao servidor DHCP
um endereço IP poderá ser fornecido ao mesmo o endereço deixado pelo primeiro.
O servidor DHCP deve ser configurado pelo administrador da rede para
disponibilizar aos seus clientes, endereços IP. Para tanto, ele alimenta um banco com os
endereços da sua sub-rede que serão fornecidos de forma automática. Um cliente DHCP
é um equipamento que está configurado para solicitar a um servidor DHCP um endereço
IP.
No VirtualBox é necessário a configuração da placa de rede, para isto, basta
selecionar a máquina já montada no VirtualBox, clicar em configurações e após em
rede, para o Linux no adaptador 1 no campo conectado a: escolha a opção NAT que será
a rede de entrada para configuração do DHCP, no adaptador 2, no campo conectado a:
escolhe a opção rede interna e no campo nome: define um nome qualquer, que deve ser
igual nas duas máquinas, para o Windows no adaptador 1, no campo conectado a:
escolhe a opção rede interna e no campo nome: digite o mesmo nome escolhido para
esta opção na maquina Linux, após isto pode-se iniciar a máquina Linux, que deve ser
instalado e configurado o DHCP para que forneça dinamicamente IP para outras
maquinas da rede que neste caso só terá a maquina Windows, após esta configuração
pode ser iniciada a maquina Windows e testado a comunicação entre as duas.
Este exercício também como o anterior e os próximos esta disponível
em forma de tutorial no site http://tudovirtualizado.blogspot.com/.
4.3 Exercício 3: Configuração de um servidor Samba em Linux
Para este exercício utilizaremos a mesma rede virtual do exercício 2, também poderia
ser utilizada a do exercício 1 sem problemas. Então, como nos exercícios anteriores,
utilizaremos duas maquinas virtuais, uma com sistema operacional Windows
Professional e outra com sistema operacional Linux, na distribuição Ubuntu 9.04.
O exercício utilizara a mesma configuração de rede virtual utilizada na
exercício 2, não é necessário nenhuma alteração no VirtualBox, com o Linux sendo
servidor de DHCP que ira disponibilizar à maquina com sistema Windows, IP de forma
automática.
O objetivo neste exercício é a configuração de um servidor samba em linux
para compartilhamento entre Linux e Windows.
O Samba é um software servidor para Linux (e outros sistemas baseados em
Unix). Com o servidor Samba, é possível compartilhar arquivos, compartilhar
impressoras e controlar o acesso a determinados recursos de rede com igual ou maior
eficiência que servidores baseados em sistemas operacionais da Microsoft. Mas, neste
caso, o sistema operacional utilizado é o Linux. O Samba é compatível com
praticamente qualquer versão do Windows, além de máquinas com o Linux.
Todo trabalho feito pelo Samba é provido de grande segurança, uma vez que há
grande rigor nos controles dos recursos oferecidos. Tanto é que existem empresas que
usam o Samba como solução para conflitos existentes entre diferentes versões do
Windows. O Samba também permite que sua configuração seja feita por meio de
computadores remotos.
No exercício proposto, será instalado o servidor Samba na maquina Linux e
compartilhado com a máquina Windows uma pasta com arquivos que podem ser
copiados, podem ser adicionados novos arquivos por qualquer uma das maquinas ou
modificados os existentes. Exemplificando assim o funcionamento básico do servidor
Samba.
O exemplo detalhado com o passo a passo da instalação e configuração do
Samba, encontra-se disponibilizado em forma de tutorial no site:
http://tudovirtualizado.blogspot.com/.
4.4 Exercício 4: Configuração de um servidor NFS em Linux
Este exercício tem como objetivo configurar um servidor NFS em Linux para
compartilhamento de arquivos entre dois sistemas operacionais Linux.
O Sistema de Arquivo em Rede (Network File System), também conhecido
como NFS, permite que um sistema compartilhe seus diretórios e arquivos com outros
sistemas através de uma rede. Usando NFS, os usuários e programas podem acessar
arquivos em sistemas remotos quase como se fossem arquivos locais.
O cliente NFS tem por finalidade tornar o acesso remoto transparente para o
usuário do computador, e esta interface cliente e servidor, executada pelo NFS através
dos protocolos Cliente-Servidor, fica bem definida quando o usuário ao chamar um
arquivo/diretório no servidor, lhe parece estar acessando localmente, sendo que está
trabalhando com arquivos remotos.
Para que os clientes tenham acesso aos arquivos, é feita uma requisição ao
servidor que, dependendo das permissões do cliente, responde confirmando a
requisição. A partir desse ponto a hierarquia de diretórios e arquivos remotos passa a
fazer parte do sistema de arquivos local da máquina.
No desenvolvimento deste exercício foram utilizados as distribuições do
sistema operacional Linux, uma máquina com Ubuntu 9.04 e outra com Xubutu. A
configuração da rede no VirtualBox fica a seguinte: na máquina com Ubuntu, será a
mesma configuração do exercício 2, a qual ira fornecer de forma automática a
configuração de IP para a máquina com Xubuntu, porem para que isto ocorra, na
máquina com Xubuntu é necessário que a configuração de rede seja esta, no adaptador
1, no campo conectado a: escolhe a opção rede interna e no campo nome: digite o
mesmo nome escolhido para esta opção na maquina com Ubuntu, depois é só iniciar as
máquinas.
Após serem iniciadas as duas máquinas, é instalado e configurado o servidor
NFS no Ubuntu, que ira compartilhar uma pasta dando permissão de leitura, escrita e
modificação dos arquivos compartilhados com a máquina Xubuntu. Na máquina
Xubuntu deve ser instalado o cliente NFS, e pós montado o local onde estará acessível a
pasta compartilhada pelo Ubuntu, exemplificando assim o funcionamento de um
servidor NFS.
Este exercício também, como os outros acima tem seu exemplo postado em
forma de tutorial no site: http://tudovirtualizado.blogspot.com/.
5. Considerações Finais
Este artigo buscou aprofundar o conhecimento sobre virtualização, suas aplicações e a
maneira como funciona esta tecnologia, que esta presente principalmente em servidores
de grandes organizações mas que vem crescendo de maneira significativa e
despontando em soluções que geralmente visam a redução de custos com equipamentos
sem perda nenhuma de qualidade de serviços, em algumas situações até melhorando
determinados serviços.
Para isso foi apresentado uma série de exercícios que são utilizados no ensino
de redes de computadores, porem, não utilizando uma rede física de computadores, mas
sim uma rede virtual, onde utilizando apenas um computador físico com ajuda de um
software virtualizador, neste caso o VirtualBox, foi possível o desenvolvimento de
alguns exercícios sem maiores problemas.
Conclui-se então, que o objetivo do artigo foi alcançado, sendo que foram
realizadas as tarefas propostas que eram o aprofundamento teórico sobre o tema, em
seguida o estudo e utilização da ferramenta de virtualização e por ultimo o
desenvolvimento teórico e prático de exercícios que mais do que serem utilizados em
sala de aula, comprovam a eficácia desta tecnologia.
6. Referências
ANDRADE, M. T. (2006). Um estudo comparativo sobre principais técnicas de
virtualização. Recife, 2006. Trabalho de graduação (graduação em Ciência da
Computação) – Centro de Informática, UFPE.
BARHAM, P., B. DRAGOVIC, (2003). Xen and the Art of Virtualization, 1.ed., 19th
ACM. p.160-184.
BELLARD, F. (2005). QEMU, A fast and portable dynamic translator. Em USENIX
Annual Technical Conference, FREENIX Track, páginas 41–46. USENIX Associaton.
BIGNES Eugenio, (2009). Virtualização: um novo conceito de TI, disponível em:
http://www.malima.com.br/article_read.asp?id=593, acesso em maio.
CHERNOFF, A. and HOOKWAY, R. (1997). DIGITAL FX!32 Running 32-Bit x86
Applications on Alpha NT. 1997. USENIX Windows NT Workshop. Disponível em:
http://www.usenix.org/publications/library/proceedings/usenixnt97/full_papers/chernoff
/chernoff.pdf, acesso em outubro.
Design Tecnológico, (2008). Tutorial sobre virtualização, disponível em:
http://www.designtecnologico.com/2008/09/tutorial-sobre-virtualizao.html acesso em
maio.
DUARTE Otto, (2008). Virtualização - VMWare e Xen disponível em
http://www.gta.ufrj.br/grad/09_1/versao-final/virtualizacao/conceito%20de%20virtual
izacao.html, acesso em outubro.
HANSEN, J. C. (2009). Tutorial que serve de complemento a este trabalho, disponível
em: http://tudovirtualizado.blogspot.com/.
IDC Brasil . (2008). Disponível em http://www.idcbrasil.com.br, acesso em novembro.
IDG. (2008). Disponível em http://www.idg.com, acesso em novembro.
LAUREANO, Marcos, (2006). Máquinas virtuais e Emuladoras: conceitos, técnica e
aplicações. 1. ed. São Paulo: Novatec.
Leiden Institute for Advanced Computer Science – University Leiden.
MKNOD, (2009). Virtualização: Rode vários serviços e sistemas operacionais numa
mesma máquina, disponível em http://www.mknod.com.br/?q=node/150, acesso em
setembro.
SUN, (1999). The Java HotSpot Performance Engine: An In Depth Look. Disponível em
http://java.sun.com/developer/technicalArticles/Networking/HotSpot, acesso em
outubro.
TANENBAUM, A. S.; WOODHULL, A. S. (2000). Sistemas Operacionais Projeto e
Implantação. 2. ed. Porto Alegre: Bookman.
TIJMS, Arjan, (2000). Binary translation: classification of emulators. Technical Report.
UBUNTU, (2009). Ubuntu Server Guide, disponível em:
https://help.ubuntu.com/9.04/serverguide/C/index.html, acesso em novembro.
VirtualBox 3.0.10-54097. Disponível para download em:
http://download.virtualbox.org/virtualbox/3.0.10/VirtualBox-3.0.10-54097-Win.exe
acesso em novembro.
WILLIAMS, David; GARCIA, Juan, (2007). Virtualization with Xen: Inclunding
XenEterprise, XenServer and XenExpress. Burlington. Syngress Publishing Inc, p.1
364.
XEN Source, (2007). Disponível em http:// xen.xensource.com, acesso em junho.