Virtualização
O que é Hypervisor?
A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them. A type-1 hypervisor runs directly on the hardware; KVM is unusual in being a type-1 hypervisor implemented as a Linux kernel module, which lets it use the whole Linux driver ecosystem.
Porque é que Hypervisor importa
Um hipervisor tipo 1 executa diretamente no hardware; KVM é invulgar por ser um hipervisor tipo 1 implementado como módulo do kernel Linux, o que lhe permite usar todo o ecossistema de drivers Linux.
Hypervisor na prática
Quando estás a executar um servidor num hipervisor KVM, olhas para a alocação real de hardware: vCPUs, RAM, I/O de disco. Ajustas estes a partir do painel, muitas vezes adicionando memória a quente sem reiniciar. Se errares ao sobrecarregar o host, as cargas de trabalho ruidosas dos teus vizinhos esfomeiam a CPU ou I/O da tua instância, tornando um convidado perfeitamente configurado um lento. Virtualização aninhada significa que podes executar um hipervisor dentro do teu hipervisor, útil para testes, mas custa desempenho e pode confundir a tua própria contagem de recursos.
O que se costuma entender mal sobre Hypervisor
O erro comum é tratar o hiperevisor como um limite de contentor. Não é. Um hiperevisor dá-lhe uma máquina virtual completa, o seu próprio kernel, o seu próprio /proc, sem espaço de nomes partilhado. As pessoas assumem que os processos do vizinho são invisíveis ou que o seu kernel personalizado é impossível, e depois esbarram em limitações. A correção: com KVM, obtém isolamento e controlo genuínos, podendo arrancar uma imagem feita à mão ou executar virtualização aninhada, coisas que um contentor não consegue fazer.
Hypervisor — perguntas frequentes
O que significa hiperevisor tipo 1?
Um hiperevisor tipo 1 corre diretamente no hardware do anfitrião, não sobre um sistema operativo. O KVM é especial porque é um hiperevisor tipo 1 implementado como módulo do kernel Linux, podendo assim usar todo o ecossistema de controladores Linux para gerir hardware. Isso dá-lhe o desempenho da virtualização bare-metal com a flexibilidade do Linux.
Em que difere o KVM dos contentores como OpenVZ?
O KVM oferece virtualização verdadeira: cada convidado tem o seu próprio kernel, o seu próprio /proc, sem espaço de nomes partilhado, dando-lhe acesso root total e a possibilidade de executar kernels personalizados. Os contentores partilham o kernel e os espaços de nomes do anfitrião, o que limita o que pode fazer. Com KVM, obtém isolamento e controlo, incluindo a capacidade de executar virtualização aninhada ou arrancar um ISO personalizado.
Onde Hypervisor surge
- A encriptação de disco completo é útil num VPS? Contra a apreensão física de um disco desligado, decididamente sim: o volume é texto cifrado sem a sua palavra-passe. Contra um atacante com acesso ao hipe…
- Qual é o vosso SLA de disponibilidade? 99,99% por instância, medido mensalmente na disponibilidade da rede e do hipervisor. Violações geram créditos de serviço automáticos numa escala publicada:…
- O meu fornecedor de alojamento pode ver os ficheiros no meu VPS? Tecnicamente sim: qualquer fornecedor com acesso ao hipervisor pode ler um disco de convidado não encriptado e a sua memória. Isso é verdade para todas as …
- O que é o tempo de roubo de CPU e por que é que importa? O tempo de roubo é a percentagem de tempo em que a sua CPU virtual estava pronta para executar, mas o hypervisor deu o núcleo físico a outra pessoa. Aparec…
- Um VPS é seguro? O isolamento é forte: o KVM impõe a separação no hardware, e escapar-lhe é uma exploração grave a nível de investigação. O risco realista não é o hiperviso…
- VPS gerido vs. não gerido: quem aplica as correções no servidor? Num VPS não gerido, o fornecedor garante o hardware, a rede e o hipervisor; tudo acima do kernel é seu, incluindo atualizações, firewall e backups. Um VPS …
Mais de virtualização
- KVM
- KVM é virtualização completa de hardware integrada no kernel Linux, dando a cada convidado o seu próprio kernel e isolamento imposto por hardware dos outros inquilinos.
- OpenVZ
- OpenVZ é virtualização baseada em contentores em que cada instância partilha o kernel do anfitrião, pelo que os convidados não podem carregar módulos do kernel nem executar um sistema operativo diferente.
- LXC
- LXC é contentorização nativa do Linux que isola processos com namespaces e cgroups, partilhando o kernel do anfitrião.
- Virtualização aninhada
- A virtualização aninhada permite que uma máquina virtual execute, ela própria, máquinas virtuais, expondo as extensões de virtualização do processador ao convidado.
- vCPU
- Uma vCPU é um processador virtual apresentado a um convidado, suportado por tempo de agendamento num núcleo físico ou thread.
- cloud-init
- cloud-init é o mecanismo padrão para configurar uma máquina virtual no primeiro arranque, usando metadados fornecidos pela plataforma.