Resumo dos principais pontos do exame de tecnologia de virtualização

Resumo dos principais pontos do exame de tecnologia de virtualização

O que é virtualização? qual é a função

Virtualização refere-se à virtualização de um computador em vários computadores lógicos por meio da tecnologia de virtualização. Vários computadores lógicos podem ser executados simultaneamente em um computador. Cada computador lógico pode executar um sistema operacional diferente e os aplicativos podem ser executados em espaços independentes sem afetar uns aos outros, melhorando significativamente a eficiência do trabalho do computador.

Função: Execute vários sistemas operacionais em um computador, facilite o estabelecimento de ambiente de ensino e ambiente de teste, não tenha nada a ver com o ambiente de hardware, economize custos de gerenciamento e investimento em hardware e economize energia

O que é virtualização em nível de sistema

​ Adicionando funções de servidor virtual no nível do sistema operacional sem uma camada de hipervisor independente.

Pelo contrário, o próprio sistema operacional host é responsável por alocar recursos de hardware entre vários servidores virtuais e tornar esses servidores independentes uns dos outros.Uma diferença óbvia é que se a virtualização da camada do sistema operacional for usada, todos os servidores virtuais devem executar o mesmo sistema operacional. .

Embora a flexibilidade da virtualização da camada do sistema operacional seja relativamente baixa, o desempenho da velocidade nativa é relativamente alto. Além disso, como a arquitetura utiliza um sistema operacional único e padrão em todos os servidores virtuais, é mais fácil de gerenciar do que um ambiente heterogêneo.

O que é uma máquina host? O que é um cliente?

A máquina host é a máquina host. Este conceito é relativo à máquina escrava. Por exemplo, se você tiver uma máquina virtual instalada, em relação à máquina virtual, o computador que você está usando é a máquina host e a máquina virtual está instalado na máquina host. , deve ser executado no host, o host é um "host"

Um cliente pode ser um dispositivo na rede ou um usuário que utiliza os serviços fornecidos pelo servidor. Em um sentido amplo, "cliente" geralmente se refere a um computador em uma rede. Também se refere ao usuário que executa o lado cliente de uma aplicação cliente/servidor, ou seja, aqueles softwares que residem em uma máquina remota e precisam se comunicar com O computador recupera as informações, processa-as adequadamente e depois as exibe na máquina remota.

O que é hipervisor

​ Uma camada intermediária de software que é executada entre o servidor físico subjacente e o sistema operacional, permitindo que vários sistemas operacionais e aplicativos compartilhem hardware e acessem todos os dispositivos físicos no servidor, incluindo discos e memória.

O hipervisor não apenas coordena o acesso a esses recursos de hardware, mas também fornece proteção entre cada máquina virtual. Quando o servidor inicia e executa o hipervisor, ele carrega os sistemas operacionais de todos os clientes da máquina virtual e aloca quantidades apropriadas de memória para cada máquina virtual. , CPU, rede e disco

O que é virtualização de desktop?

A virtualização de desktops depende da virtualização de servidores. Sua principal função é salvar e gerenciar centralmente ambientes de desktop dispersos, incluindo entrega centralizada, atualizações centralizadas e gerenciamento centralizado de ambientes de desktop. Ele simplifica o gerenciamento de desktops. Cada terminal não precisa ser mantido separadamente. Cada terminal é atualizado. Os dados do terminal podem ser armazenados centralmente na sala central de computadores. A segurança é muito maior do que a dos aplicativos de desktop tradicionais.

​ A virtualização de desktop permite que uma pessoa tenha vários ambientes de desktop, ou um ambiente de desktop pode ser usado por várias pessoas, economizando licenças.

O conceito, características e finalidade da tecnologia de virtualização

Conceito: A virtualização é um processo que transforma recursos físicos em recursos logicamente gerenciáveis ​​para quebrar as barreiras entre estruturas físicas e abstrair, isolar, realocar e gerenciar diversos recursos por meio da lógica.

Características:

​ 1) Os objetos de virtualização são recursos (incluindo CPU, memória, armazenamento, rede, etc.)

2) Os recursos virtualizados têm uma representação lógica unificada, e essa representação lógica pode fornecer aos usuários a maioria das mesmas ou exatamente as mesmas funções que os recursos físicos virtualizados.

​ 3) Após uma série de processos de virtualização, os recursos não estão sujeitos a restrições de recursos físicos, o que pode trazer às pessoas mais vantagens do que a TI tradicional, incluindo integração de recursos, melhor utilização, TI dinâmica, etc.

Objetivo: Simplificar a infraestrutura de TI e otimizar os métodos de gerenciamento de recursos para integrar recursos, economizar custos potenciais, reduzir despesas corporativas com recursos de TI, melhorar a utilização de equipamentos de informática e resolver problemas de compatibilidade entre diferentes servidores físicos.

A relação entre virtualização e computação em nuvem

Do ponto de vista técnico: A virtualização é um dos principais componentes da computação em nuvem e uma das principais tecnologias para a realização de serviços de computação e armazenamento em nuvem.

Do ponto de vista da separação de software e hardware: De certa forma, a computação em nuvem elimina a conexão entre software e hardware. A virtualização é um método que efetivamente separa software e hardware.

Do ponto de vista dos serviços de rede: A computação em nuvem é um modelo "tudo é um serviço", que geralmente fornece serviços na rede ou na nuvem. As máquinas virtuais na camada de virtualização fornecem serviços de computação em nuvem e a rede virtualizada fornece serviços de armazenamento.

Classificação da virtualização sob a perspectiva da plataforma virtual (completa/paravirtualização) e estrutura de implementação da virtualização (três tipos), características e comparação de cada tipo

Perspectiva da plataforma virtual (completa/paravirtualização)

Totalmente virtualizado

​ Refere-se ao sistema operacional virtual sendo completamente isolado do hardware subjacente, e a camada intermediária do hipervisor é transformada no código de chamada do sistema operacional convidado virtual para o hardware subjacente.

A virtualização completa fornece todas as abstrações do sistema físico subjacente e cria um novo sistema virtual no qual o sistema operacional convidado pode ser executado sem a necessidade de modificações no sistema operacional ou nos aplicativos convidados.

A principal desvantagem é que o desempenho não é tão bom quanto o do bare metal, pois o hipervisor precisa ocupar alguns recursos e trazer sobrecarga para o processador.

Paravirtualização

​ Refere-se à adição de instruções específicas de virtualização ao sistema operacional convidado virtual, por meio das quais os recursos de hardware podem ser chamados diretamente pela camada do hipervisor.

A paravirtualização requer modificações no sistema operacional convidado em execução na máquina virtual e fornece desempenho semelhante

A paravirtualização tem melhor desempenho que a virtualização completa

Estrutura de implementação de virtualização (três tipos):

Principalmente dividido em virtualização de hipervisor, virtualização de modelo de host e virtualização de modelo híbrido

Virtualização de hipervisor

A virtualização do hipervisor refere-se à instalação do VMM diretamente no hardware subjacente como um hipervisor para assumir o controle.O hipervisor será responsável por gerenciar todos os recursos e suporte ao ambiente virtual. O problema com esta estrutura é que existem vários dispositivos de hardware e o VMM não pode implementar todos os drivers de dispositivos um por um, portanto este modelo suporta dispositivos limitados.

Virtualização de modelo de host

O modelo de hospedagem consiste em instalar um sistema operacional nos recursos de hardware para gerenciar os dispositivos de hardware. O VMM é executado no sistema operacional como um aplicativo e é responsável por suportar o ambiente virtual. A vantagem deste método é que ele não precisa operar o driver de dispositivo subjacente. A desvantagem é que a chamada do vmm para o hardware depende do host, portanto a eficiência e as funções são limitadas e afetadas pelo host.

Virtualização de modelo híbrido

O modelo híbrido é uma mistura dos dois modelos acima. Primeiro, o VMMM gerencia diretamente o hardware, mas abrirá mão de certos direitos de controle de dispositivo para máquinas virtuais executadas com privilégios. A desvantagem desse modelo é que ele requer um sistema operacional privilegiado para fornecer Ocorrerá troca de modo, resultando em grande sobrecarga e degradação de desempenho.

As vantagens, desvantagens e escopo de aplicação das tecnologias de virtualização de software e virtualização de hardware (níveis de suporte à virtualização)

Virtualização de hardware

A virtualização de hardware significa que a própria plataforma física de hardware fornece suporte para interceptação e redirecionamento de instruções especiais.Simplificando, não depende do sistema operacional, ou seja, não depende do nível do aplicativo e da implantação retrógrada.

​ Na tecnologia de virtualização de software baseada em hardware, o hardware é a base para a virtualização, e o hardware (principalmente CPU) fornecerá suporte para o software de virtualização, realizando assim a virtualização dos recursos de hardware.

​ Vantagens: Bom desempenho, pode fornecer suporte para sistemas operacionais de 64 bits

Virtualização de software

​ Refere-se ao uso de software para fazer com que as instruções privilegiadas do cliente caiam em uma exceção, acionando assim o host para realizar o processamento de virtualização.

As principais tecnologias utilizadas são compressão prioritária e tradução de código binário

Vantagens: custo relativamente baixo, fácil implantação, gerenciamento e manutenção simples

​ Defeitos: Haverá muitas restrições durante a implantação, como sobrecarga adicional, e o sistema operacional convidado será restringido pelo ambiente da máquina virtual.

Problemas a serem resolvidos pela virtualização da CPU (brechas estruturais do processador x86) e soluções de software e hardware

O problema a ser resolvido é implementar a virtualização na arquitetura x86, que exige que o sistema cliente se junte à camada de virtualização para realizar o compartilhamento de recursos físicos. Portanto, esta camada de virtualização deve ser executada no nível Ring0, e o sistema operacional convidado só pode ser executado em níveis acima do Ring0. No entanto, se as instruções privilegiadas no sistema operacional convidado não forem executadas no nível Ring0, elas terão semânticas diferentes, produzirão efeitos diferentes ou nem funcionarão. Esta é uma falha no design de virtualização da estrutura do processador. Essas falhas levam diretamente a vulnerabilidades de virtualização. Para compensar esta vulnerabilidade, antes que o hardware forneça suporte suficiente, na paravirtualização, o sistema operacional convidado e a máquina virtual devem ser compatíveis, caso contrário, a máquina virtual não poderá operar efetivamente a máquina host.

A solução é baseada em software:

A tecnologia de virtualização baseada em software já forneceu duas soluções viáveis: virtualização completa e paravirtualização. A virtualização completa pode usar a tecnologia de tradução dinâmica de código binário para resolver o problema de instrução privilegiada do cliente.A vantagem deste método é que a conversão do código é concluída dinamicamente sem modificar o sistema operacional convidado, para que possa suportar vários sistemas operacionais. A paravirtualização resolve o problema de máquinas virtuais que executam instruções privilegiadas, modificando o sistema operacional convidado. Os sistemas operacionais convidados hospedados por uma plataforma de virtualização precisam modificar seus sistemas operacionais para substituir todas as instruções confidenciais por hiperchamadas para a plataforma de virtualização subjacente.

A solução é baseada em hardware:

Atualmente, a Intel e a AMD lançaram tecnologias de virtualização assistida por hardware Intel VT e AMD SVM, respectivamente, para alcançar a virtualização de forma mais eficiente e fácil.

Características técnicas do Intel VT-x, modo operacional VMX e processo de operação

Recursos técnicos

O IntelVT-x pode fazer uma CPU funcionar como várias CPUs rodando em paralelo, permitindo que vários sistemas operacionais sejam executados simultaneamente em um servidor físico. Ele pode reduzir (ou até mesmo eliminar) a contenção e as restrições de recursos entre vários sistemas operacionais de máquinas virtuais, melhorar significativamente a segurança e o desempenho das máquinas virtuais do ponto de vista do hardware e ajudar a melhorar a flexibilidade e a estabilidade das soluções de virtualização baseadas em software. A tecnologia IntelVT-x pode eliminar a participação do VMM (Virtual Machine Monitor) no processamento de solicitações de "interrupção" da máquina virtual e na execução de instruções específicas. Dessa forma, o VMM será mais rápido, confiável e seguro ao operar e controlar a máquina virtual.

Além disso, os recursos de migração de máquinas virtuais do IntelVT-x também podem fornecer forte proteção para investimentos em TI e melhorar ainda mais a flexibilidade de failover, balanceamento de carga, recuperação de desastres e manutenção.

Modo de operação VMX

imagem

Processo:

O VMM executa a instrução VMXON para entrar no modo operacional VMX. Neste momento, a CPU está no modo operacional raiz VMX e o software VMM começa a ser executado.

O VMM executa a instrução VMLAUNCH ou VMRESUME para gerar uma entrada VM e o software cliente começa a ser executado. Neste momento, a CPU converte do modo raiz para o modo não raiz.

Quando o cliente executa uma instrução privilegiada ou ocorre uma interrupção ou exceção durante a operação do cliente, o VM-Exit é acionado e cai no VMM. A CPU alterna automaticamente do modo não raiz para o modo raiz. O VMM lida com isso de acordo com o motivo do VM-Exit e, em seguida, continue executando o cliente.

Se o VMM decidir sair, execute VMXOFF para fechar o modo operacional VMX

A composição e operação básica do vCPU

​ Composição: A primeira é a estrutura VMCS (Virtual Machine Control Structure, estrutura de controle de máquina virtual), que armazena o conteúdo utilizado e atualizado pelo hardware, que são principalmente registros virtuais; a segunda é o conteúdo que não é salvo pelo VMCS, mas é usado e atualizado pelo VMM, principalmente peças diferentes do VCMS

imagem

Operações básicas:

Criação de vCPU: Criar um VCPU é na verdade criar um descritor de vCPU. Como o descritor de vCPU é uma estrutura, criar um descritor de vCPU é alocar memória do tamanho correspondente. Depois que o descritor de vCPU é criado, ele requer mais inicialização antes de poder ser usado.

Operação de vCPU: Depois que a vCPU for criada e inicializada, ela será agendada para execução pelo agendador, que selecionará a VCPU para execução de acordo com um determinado algoritmo de estratégia.

​ Saída da vCPU: Assim como o processo, a vCPU como unidade de agendamento não pode ser executada para sempre. Ela sempre sairá por vários motivos, como execução de instruções privilegiadas, interrupções físicas, etc. Essa saída se manifesta como uma VM em VT-x -Exit . O processamento da saída da vCPU é o núcleo do VMM para virtualização da CPU, como a simulação de várias instruções privilegiadas.

​ Reoperação de vCPU: refere-se ao VMM ser responsável por colocar a vCPU novamente em operação após processar a saída da VCPU.

Resolver problemas de mapeamento para virtualização de memória

A principal tarefa da virtualização de memória é lidar com dois aspectos dos problemas

Implementar a virtualização do espaço de endereço e manter o relacionamento de mapeamento entre o endereço físico do host e o endereço físico do convidado

Após a introdução do espaço de endereço físico convidado, a virtualização do espaço de endereço pode ser suportada por meio de duas traduções de endereços, ou seja, a conversão do endereço virtual do convidado - o endereço físico do convidado - o endereço físico do host. Durante o processo de implementação, a conversão de GVA para GPA geralmente é especificada pelo sistema operacional convidado por meio da tabela de páginas apontada pelo campo de estado convidado CR3 no VMCS. A conversão de GPA para HPA é determinada pelo VMM. O VMM geralmente usa uma estrutura de dados parcial para registrar o relacionamento de mapeamento dinâmico entre o endereço físico do cliente e o endereço físico do host.

Intercepte o acesso do host ao endereço físico do cliente e converta-o no endereço físico do host com base no relacionamento de mapeamento registrado

A solução mais simples é deixar o cliente disparar uma exceção toda vez que acessar o espaço de endereço físico do host e fazer com que o VMM consulte a tabela de tradução de endereços para imitar seu acesso.No entanto, o desempenho desse método é muito ruim.

Conceitos básicos do Intel EPT e processo de implementação de tradução de endereços

Conceitos Básicos

EPT é um mecanismo de hardware projetado pela Intel para virtualização de memória. É usado principalmente para controlar o acesso dos convidados à memória física. Para simplificar a implementação da virtualização de memória e melhorar o desempenho da virtualização de memória, a Intel lançou o EPT (Enhanced Page Table) tecnologia, ou seja, adicionar uma tabela de páginas EPT à tabela de páginas original para obter outro mapeamento. Desta forma, as duas traduções de endereços GVA-GPA-HPA são automaticamente concluídas pelo hardware da CPU.

Processo de conversão de endereço

​ O processo aproximado de tradução de GVA e HPA por meio de EPT:

​ A CPU em modo não root carrega gCR3 do processo convidado;

​ gCR3 é GPA, e a CPU precisa consultar a tabela de páginas EPT para implementar GPA->HPA;

​ Caso contrário, a CPU aciona a Violação de EPT, que é interceptada e processada pelo Hipervisor;

Suponha que o cliente tenha tabelas de páginas de nível M e o host EPT tenha níveis N. No pior caso, onde todos os TLBs são perdidos, ocorrerão acessos à memória MxN para completar uma tradução de endereço para o cliente;

Características técnicas do processo de remapeamento Intel VT-d e DMA

Recursos técnicos

Intel VT-d é a implementação da tecnologia IOMMU na Intel. Faz parte da tecnologia de virtualização da Intel. Tem como alvo principal o subsistema de E/S. A implementação ocorre principalmente através da introdução de uma unidade de redirecionamento no hardware. A unidade de redirecionamento de hardware usa Ele é usado para redirecionar as operações DMA e interromper a entrega do subsistema de E/S, auxiliando assim o VMM a implementar a virtualização do subsistema de E/S.

Processo de remapeamento DMA

1. Aloque a memória física que precisa ser mapeada

2. Aloque IOVA de acordo com o mecanismo de cache RCACE

3. Com base em TTBR e IOVA, crie entradas na tabela de páginas e estabeleça o mapeamento entre IOVA e PA

4. Por padrão, o mapeamento de IOVA para PA será armazenado em cache no TLB interno do hardware SMMU. Quando o dispositivo acessar o IOVA correspondente, ele primeiro o buscará no cache TLB. Se falhar, ele pesquisará o tabela de páginas (memória) nível por nível de acordo com o IOVA. Se não for encontrado, interrupção de falha de página

Como funciona o equipamento TUN/TAP

Princípio de funcionamento do driver Tun/Tap Em redes de computadores, TUN e TAP são dispositivos de rede virtuais no kernel do sistema operacional. Diferente dos dispositivos comuns implementados por placas de rede de hardware, esses dispositivos de rede virtuais são todos implementados em software e Um dispositivo de rede que fornece software executado em um sistema operacional com exatamente a mesma funcionalidade do hardware.

Estrutura da estrutura do sistema KVM, relacionamento entre QEMU e KVM

A relação entre QEMU e KVM

Do ponto de vista do QEMU, durante a execução da máquina virtual, o QEMU realiza as configurações do kernel através da interface de chamada do sistema fornecida pelo módulo KVM.O módulo KVM é responsável por colocar a máquina virtual em um modo especial do processador.

Estrutura da estrutura do sistema KVM

O driver kvm agora é um módulo do kernel Linux, sua principal função é criar uma máquina virtual, alocar memória virtual, ler e escrever registros de CPU virtual e executar a CPU virtual.

Outro componente é o Qemu. QEMU é um simulador e virtualizador geral de máquinas de código aberto. Sua principal função é simular o componente de espaço do usuário da máquina virtual, fornecer modelo de dispositivo io e acesso a periféricos.

Processo de inicialização KVM

Inicialize o hardware da CPU. O KVM detectará primeiro a CPU do sistema atual para garantir que a CPU suporte a virtualização.Quando o módulo KVM é carregado, o módulo KVM inicializa primeiro a estrutura de dados interna. A parte do kernel do KVM é executada no host como um módulo de kernel carregável dinamicamente. Um dos módulos é um módulo KVM independente de plataforma que implementa a infraestrutura central de virtualização, e o outro é um módulo KVM_Intel relacionado à plataforma de hardware ou veja módulo kvm_amd

​ Ligue a chave do modo de virtualização no registro de controle da CPU CR4 e coloque o sistema operacional host no modo raiz no modo de virtualização executando instruções específicas.

O módulo KVM cria um arquivo de dispositivo especial /dev/kvm e aguarda comandos do espaço do usuário (por exemplo, se deve criar um convidado virtual, que tipo de convidado virtual criar, etc.)

Comandos comuns do QEMU para criar arquivos de imagem de máquina virtual e iniciar máquinas virtuais

Conhecimento básico do Qemu

Comparação de três soluções de virtualização de E/S: software puro/paravirtualização/alocação direta

Virtualização completa de E/S

​ Este método é mais fácil de entender. Simplificando, ele simula as solicitações de E/S da máquina virtual na forma de software puro. Tomando qemu-kvm como exemplo, o módulo kvm no kernel é responsável por interceptar solicitações de E/S e, em seguida, notificar o modelo de dispositivo qemu sobre o espaço do usuário por meio de notificações de eventos. qemu é responsável por completar a simulação desta E/S solicitar.

Vantagens: Não há necessidade de modificar o sistema operacional ou alterar o driver, portanto este método possui melhor “portabilidade” e “compatibilidade” para diversas tecnologias de virtualização.

Desvantagens: A simulação pura de software tem baixo desempenho, além disso, as solicitações de E/S emitidas pela máquina virtual exigem múltiplas interações entre a máquina virtual e o VMM, resultando em um grande número de trocas de contexto e enorme sobrecarga.

Paravirtualização de E/S

Tendo em vista o baixo desempenho da pura simulação de software da virtualização total de E/S, a paravirtualização de E/S dá um passo à frente. Fornece um mecanismo que permite que Guest e Host estabeleçam uma conexão e se comuniquem diretamente, abandonando o método de interceptação e simulação, obtendo assim maior desempenho.

Existem dois pontos que merecem atenção:

​ 1) O mecanismo de anel de E/S é adotado para que o Guest e o Host possam compartilhar memória, reduzindo a interação entre a máquina virtual e o VMM.

2) Use eventos e mecanismos de retorno de chamada para implementar a comunicação entre o VMM convidado e o host. Dessa forma, ao realizar o processamento de interrupções, o mecanismo de evento e retorno de chamada pode ser usado diretamente, sem troca de contexto, o que reduz a sobrecarga.

Vantagens: O desempenho foi bastante melhorado em comparação com a virtualização total de E/S

Desvantagens: Requer modificação do kernel e dos drivers do sistema operacional, portanto haverá problemas de portabilidade e aplicabilidade, resultando em uso limitado.

Tecnologia de passagem ou passagem de E/S

Os dois métodos de virtualização acima ainda são implementados no nível do software e o desempenho naturalmente não será muito alto.A melhor maneira de melhorar o desempenho é resolvê-lo no nível do hardware. Se a máquina virtual ocupar exclusivamente um dispositivo físico e utilizar o dispositivo físico como host, o desempenho será sem dúvida o melhor.

A tecnologia de passagem de E/S é proposta para realizar tal coisa. Ela permite que máquinas virtuais acessem diretamente dispositivos físicos por meio da assistência de hardware sem passar pelo VMM ou serem interceptadas pelo VMM. A tecnologia de passagem de E/S requer suporte de hardware . Para completar, a primeira escolha nesse sentido é a tecnologia VT-d da Intel, que atende a tais requisitos por meio da transformação no nível do chip. Este método, claro, apresenta uma melhoria qualitativa no desempenho, não requer modificação do sistema operacional e tem boa portabilidade.

Embora a tecnologia de passagem de E/S elimine a sobrecarga adicional causada pela intervenção do VMM na E/S da máquina virtual, os dispositivos de E/S gerarão um grande número de interrupções durante as operações de E/S. Por motivos de segurança e outros, as máquinas virtuais não podem diretamente As interrupções são tratadas, portanto, as solicitações de interrupção precisam ser roteadas de forma segura e isolada pelo VMM para a máquina virtual apropriada.

​ Portanto, no uso real, é usada uma combinação de métodos de virtualização de software e hardware.

O princípio do virtio implementando paravirtualização de E/S

​ Virtio simula dispositivos de E / S. O driver front-end (frondend, como virtio-blk, virtio-net, etc.) é o módulo de driver que existe no cliente, e o manipulador back-end é implementado no QEMU. Entre os drivers front-end e back-end, também são definidas duas camadas para suportar a comunicação entre o cliente e o QEMU.

A camada "virtio" é a interface da fila virtual, que conecta conceitualmente o driver front-end ao manipulador back-end. Um driver front-end pode usar 0 ou mais filas, dependendo das necessidades. A fila virtual é na verdade implementada como um ponto de conexão entre o sistema operacional convidado e o hipervisor, mas pode ser implementada de qualquer forma, desde que tanto o sistema operacional convidado quanto o programa backend virtio sigam certos padrões e os implementem de maneira mutuamente correspondente. . O virtio-ring implementa um buffer de anel (buffer de anel), que é usado para salvar informações sobre a execução do driver front-end e do manipulador de back-end, e pode salvar várias solicitações de E/S do driver front-end de uma vez e entregá-los ao back-end. Processamento em lote e, finalmente, chamar o driver de dispositivo no host para implementar operações físicas de E/S. Dessa forma, o processamento em lote pode ser implementado de acordo com o acordo, em vez de cada um Solicitação de E/S no cliente que precisa ser processada uma vez, melhorando assim a eficiência do cliente e a eficiência da troca de informações do hipervisor

A função e o princípio da tecnologia de balões

Função: De modo geral, para alterar a memória do host ocupada pelo cliente, você deve primeiro desligar o cliente, modificar a configuração de inicialização e, em seguida, reiniciar o cliente. A tecnologia Ballooning pode ajustar dinamicamente a memória do host enquanto o cliente está em execução. O os recursos de memória do host ocupados, em vez de desligar o cliente, são completados pelo balão driver do cliente trabalhando em conjunto com o host por meio da interface de fila virtual virtio. A função do BalloonDriver é que ele pode expandir o tamanho da memória que usa e reduzir a memória .Quantidade de utilização.

Princípio: A memória no balão pode ser usada pelo host e não pode ser acessada ou usada pelo cliente.

Quando o uso de memória do host é pequeno e não há muita memória livre, você pode solicitar ao cliente que recicle parte da memória que foi alocada para o cliente. O cliente liberará sua memória livre, fazendo com que o balão de memória inche, permitindo que o host recicle o balão. A memória pode ser usada por outros processos (ou outros clientes)

Pelo contrário, quando a memória do cliente é insuficiente, o balão de memória do cliente também pode ser compactado para liberar parte da memória do balão de memória, permitindo que o cliente utilize mais memória.

Características, funções e etapas de operação da migração online V2V em KVM

Função: A migração online V2V reduz muito o tempo de inatividade da migração de máquinas virtuais.

Recursos: A migração V2V consiste em mover sistemas operacionais e dados entre máquinas virtuais, levando em consideração as diferenças no nível do host e lidando com diferentes hardwares virtuais. Uma máquina virtual é migrada do VMM em uma máquina física para o VMM em outra máquina física. Os dois tipos de VMM podem ser iguais ou diferentes. Por exemplo, VMware migra para KVM e KVM migra para KVM. Existem várias maneiras de mover uma máquina virtual de um sistema VM Host para outro.

Executar etapas

(1) O sistema verifica se as configurações de armazenamento e rede do servidor de destino estão corretas e pré-reserva os recursos da máquina virtual do servidor de destino.

(2) Quando a máquina virtual ainda está em execução no servidor de origem, todas as imagens de memória são copiadas para o servidor de destino no primeiro ciclo. Durante este processo, o KVM ainda monitorará quaisquer alterações na memória.

(3) Nos loops subsequentes, verifique se a memória do loop anterior foi alterada. Se ocorrer uma alteração, o VMM copiará as páginas de memória alteradas, ou seja, páginas sujas, para o servidor de destino novamente e substituirá as páginas de memória anteriores. Nesta fase, o VMM continuará monitorando as alterações de memória.

(4) O VMM continua o ciclo de cópia de memória, e o número de páginas sujas que precisam ser copiadas diminui gradualmente até que certas condições sejam atingidas (por exemplo, a diferença de memória entre os servidores de origem e de destino atinge um determinado padrão), a memória a operação de cópia termina e o servidor de origem é interrompido ao mesmo tempo.

(5) Quando os servidores de origem e de destino estiverem inativos, copie as páginas sujas do último ciclo e o status de funcionamento do dispositivo do servidor original para o servidor de destino.

(6) Finalmente, desbloqueie o armazenamento do servidor de origem e bloqueie-o no servidor de destino. Inicie o servidor de destino, restaure a conexão com os recursos da rede de armazenamento e continue a execução após assumir o controle do servidor original.

Arquitetura de tecnologia de segurança de virtualização KVM

​ Segurança de comunicação entre QEMU e Libvirt

Segurança do módulo QEMU

​ Segurança de comunicação entre módulos QEMU e KVM

Segurança do módulo KVM

Verificação de integridade da máquina virtual

Proteção de dados de máquinas virtuais

Segurança de rede de máquinas virtuais

Uso básico do monitor QEMU

​ O monitor QEMU (monitor) é um console para QEMU interagir com os usuários. Geralmente é usado para fornecer funções mais complexas para o emulador QEMU, incluindo adicionar e mover algumas imagens de mídia para o cliente, pausar e continuar a execução do cliente . , criação e exclusão de instantâneos, salvamento e restauração do status do cliente a partir de arquivos de disco, migração dinâmica de clientes, consulta de vários parâmetros de status atuais dos clientes, etc.

Comandos comuns do QEMU Monitor

​ Comandos auxiliares: como informações e ajuda

help pode consultar e exibir breves informações de ajuda para um determinado comando.

O comando info é usado principalmente para exibir as informações de execução da máquina virtual.

O comando info exibe várias informações sobre o status atual do sistema. Seu formato de comando é o seguinte: subcomando info

Comandos de classe de dispositivo:

O comando change altera a configuração de um dispositivo

​ Como "change vnc localhost:2 " para alterar a configuração do VNC

"alterar senha vnc" altera a senha da conexão VNC

"change ide1-cd0 /path/a.iso" altera o CD carregado pela unidade de CD-ROM no computador cliente.

Os comandos usb_add e usb_del adicionam e removem um dispositivo USB

Por exemplo, "usb_add host:002.004" significa adicionar o dispositivo 004 no barramento USB nº 002 do host ao cliente.

"usb_del 0.2" significa excluir um dispositivo USB no cliente

Os comandos device_add e device_del adicionam ou removem dispositivos dinamicamente

Por exemplo, "device_addpic-assign,host=02:00.0,id=mydev" atribui o dispositivo PCI com número BDF 0.2:00.0 no host ao cliente.

E "device_del mydev" remove o dispositivo que acabou de ser adicionado

O comando mouse_move move o cursor do mouse para as coordenadas especificadas

Por exemplo, "mouse_move 500 500" move o cursor do mouse para a posição com coordenadas (500.500)

O comando mouse_button simula clicar nos botões esquerdo, médio e direito do mouse

1 é o botão esquerdo, 2 é o botão do meio e 4 é o botão direito.

O comando sendkey keys envia chaves (ou combinações de teclas) para o cliente, assim como os efeitos de teclas em um ambiente não virtual. Se uma combinação de várias chaves for enviada ao mesmo tempo, use "-" para conectar as chaves.

Por exemplo, o comando "sendkey ctrl-alt-f2" envia a chave "ctrl-alt-f2" para o cliente, que mudará a saída de exibição do cliente para o terminal tty2;

O comando “snedkey ctrl-alt-delete” enviará a tecla “ctrl-alt-delete”, que reiniciará o sistema em modo texto.

Comandos da classe cliente

Os comandos savevm, loadvm e delvm criam, carregam e excluem snapshots do cliente

Por exemplo, "savevm mytag" significa criar um instantâneo com a tag "mytag" com base no status atual do cliente.

​ "loadvm mytag" significa carregar o estado quando o sinalizador do cliente é o instantâneo "mytag"

E "del mytag" significa excluir o instantâneo do cliente do sinalizador "mytag".

​Os comandos Migrate e Migrate_cancel migram e cancelam dinamicamente a migração dinâmica

Por exemplo, "migrar tcp:des_ip:6666" significa migrar dinamicamente o cliente atual para a porta TCP6666 do host com o endereço IP "des_ip"

​ E "migrate_cancel" significa cancelar o processo de migração dinâmica atual.

O comando commit confirma as partes modificadas na imagem do disco (quando o parâmetro de inicialização "-snapshot" é usado) ou confirma as partes modificadas no arquivo de imagem de back-end.

Comandos system_powerdown, system_reset e system_wakeup

Entre eles, o comando system_powerdown envia uma notificação de evento de desligamento ao cliente e geralmente faz com que o cliente execute uma operação de desligamento;

O comando system_reset redefine o sistema cliente, o que equivale a desconectar a fonte de alimentação, conectá-la e pressionar o botão liga / desliga para ligá-la;

e comando migrate_cancel para migrar dinamicamente e cancelar a migração dinâmica

Por exemplo, "migrar tcp:des_ip:6666" significa migrar dinamicamente o cliente atual para a porta TCP6666 do host com o endereço IP "des_ip"

​ E "migrate_cancel" significa cancelar o processo de migração dinâmica atual.

O comando commit confirma as partes modificadas na imagem do disco (quando o parâmetro de inicialização "-snapshot" é usado) ou confirma as partes modificadas no arquivo de imagem de back-end.

Comandos system_powerdown, system_reset e system_wakeup

Entre eles, o comando system_powerdown envia uma notificação de evento de desligamento ao cliente e geralmente faz com que o cliente execute uma operação de desligamento;

O comando system_reset redefine o sistema cliente, o que equivale a desconectar a fonte de alimentação, conectá-la e pressionar o botão liga / desliga para ligá-la;

system_wakeup desperta o cliente da suspensão

Acho que você gosta

Origin blog.csdn.net/qq_61897309/article/details/128661031
Recomendado
Clasificación