Carlos Maziero PPGIA CCET PUCPR User-Mode Linux Carlos Maziero PPGIA CCET PUCPR
Máquinas virtuais Abstração construída por um Monitor de Máquinas Virtuais Permite compartilhar um mesmo hardware entre vários sistemas operacionais simultaneamente Cada sistema operacional acredita estar executando sobre uma máquina exclusiva
Tipos de monitores Monitor de tipo I Monitor de tipo II Executa diretamente sobre o hardware Constitui um software de baixo nível Monitor de tipo II Executa sobre um sistema operacional Sistema anfitrião ou hospedeiro Visto como um processo do anfitrião
Monitores de tipo I processos Sistemas operacionais convidados kernel hardware
Monitores de tipo II processos Sistemas operacionais convidados Sistema operacional anfitrião kernel kernel monitor monitor kernel hardware
Motivação para VMs Executar vários SOs no mesmo hardware Consolidação de servidores Web hosting Testes de novos kernels Ensino Cada aluno pode lançar várias VMs Configuração individual preservada
O User-Mode Linux Monitor de máquinas virtuais Projeto Open Source Arquitetura de tipo II Executa Linux sobre Linux Projeto Open Source Parte oficial do kernel 2.6 http://user-mode-linux.sourceforge.net
Características do UML Linux como um processo do Linux Dispositivos virtualizados Disco virtual é um arquivo no sistema real Interfaces de rede Console, etc Usuários e processos distintos do sistema real Cada aluno pode ser root !
Operação de uma VM UML Script “linux” com configuração padrão Instalação Linux RedHat 9.0 com configuração básica Tudo está em espec:/usr/local/uml Para lançar: host:~> linux ... (mensagens de boot da máquina virtual) Login: root Password: root Para encerrar: guest:~> halt
Criação de interfaces Hub conectado ao host: Usa interfaces virtuais tapN no host Forma: ethN=tuntap,device,macaddr,gway Exemplo: eth0=tuntap,,,10.0.0.1 Hub isolado (sem conexão com o host) Hub virtual criado por grupo multicast IP Forma: ethN=mcast,macaddr,group,port,ttl Exemplo: eth1=mcast
Interfaces de rede Config na espec com 2 interfaces de rede eth0 : conectada a um hub ligado ao host eth1 : conectada a um hub isolado hub virtual 2 (isolado) VM eth1 eth0 VM eth1 eth0 VM eth1 eth0 hub virtual 1 Kernel SO host tapN
Discos virtuais Discos da VM são arquivos no host Disco principal (/): arquivo root_fs Outros discos podem ser criados Discos mantidos como arquivos esparsos ocupam menos espaço que o visível no ls Duas possibilidades de uso: Imagem exclusiva para cada VM Imagem central + arquivo com diferenças
Usando discos virtuais Usando disco exclusivo linux ubd0=file nome default: root_fs Usando imagem central + diferenças linux ubd0=diff_file,image_file
O filesystem hostfs VM pode acessar diretórios do host Montagem como disco externo Usa um sistema de arquivos especial: hostfs Para montar o “/” do host em /mnt: guest:~> mount none /mnt -t hostfs Para montar “/home” do host em /mnt: guest:~> mount none /mnt -t hostfs -o /home
Mais informações http://user-mode-linux.sourceforge.net /UserModeLinux-HOWTO.html http://usermodelinux.org