Virtualização de área de trabalho: cuidado e manutenção de ambientes virtuais

Wes Miller

A virtualização evoluiu de uma anomalia que exigia explicação até chegar a uma tecnologia viável sem a qual a maioria de nós não pode viver. Talvez você a esteja usando para testes de controle de qualidade, desenvolvimento, design da Web ou treinamento. Talvez você faça parte da vanguarda e defina tendências, implantando uma infraestrutura virtual, ou até mesmo de uma das massas que usa a virtualização “em nuvem” da Amazon.com, Rackspace Inc. ou de outro fornecedor.

Não importa como você esteja usando a virtualização; se a está usando há algum tempo, sem dúvida já se deu conta de que ela possui seu próprio conjunto de desafios, da mesma forma que a manutenção do hardware físico apresenta seus próprios dilemas. Vários problemas são diferentes, outros são semelhantes.

Tratando hipervisores

Você provavelmente já ouviu a palavra “hipervisor” circulando indiscriminadamente há algum tempo. Ela se tornou um termo moderno no jargão da virtualização. Contudo, os hipervisores não são novos. Eles têm sido usados desde que começamos a usar as VMs (máquinas virtuais). De fato, a IBM cunhou o termo hipervisor nos anos 70.

O hipervisor é o software que apresenta os convidados executados “virtualmente” em um sistema com um conjunto de hardware virtualizado. Ele abstrai o hardware físico para os sistemas operacionais convidados. A confusão começa com a grande expansão até os “hipervisores tipo 1” executados na plataforma x86 nos últimos anos, incluindo o Microsoft Hyper-V e o VMware ESX Server. O hipervisor que a maioria das pessoas usa, especialmente para sistemas cliente, é chamado de “hipervisor tipo 2”. Qual é a diferença entre eles?

  1. Um hipervisor tipo 1 é executado diretamente no hardware host e não exige um “sistema operacional host”. O Microsoft Hyper-V e o VMware ESX Server são exemplos comuns de hipervisor tipo 1.
  2. O hipervisor tipo 2 exige o funcionamento de um sistema operacional host. Em geral, um hipervisor tipo 2 é executado principalmente como um aplicativo em modo de usuário em seu sistema operacional host. O Microsoft Virtual PC e o VMware Workstation são exemplos comuns de hipervisor tipo 2.

Na maioria das vezes, você não desejará usar um hipervisor tipo 1 para nenhuma carga de trabalho “sempre ativa”, como um servidor de arquivos ou SQL virtualizado. No mínimo, ele usará menos recursos que o tipo 2. No entanto, dependendo do host, ele pode exigir o logon do usuário para ser iniciado, o que não é uma boa opção para um sistema de missão crítica. Por outro lado, faz mais sentido usar um hipervisor tipo 2 para VMs “por demanda”. Esse tipo de função inclui VMs para testes, compatibilidade de aplicativos ou acesso seguro.

O que a virtualização economiza?

A resposta óbvia é que a virtualização economiza o dinheiro investido em hardware, mas não é assim tão simples. Claro, se você tiver dois sistemas de servidor em fatores forma 1U montáveis sobre rack, pegar essas duas cargas de trabalho e carregá-las em um sistema 1U, economizará os custos de hardware adiantados, mas há um truque para isso. Quando você pega esses mesmos dois sistemas de servidor, ambos operam tranquilamente em dois servidores 1U individuais, onde cada um tem CPUs com núcleo duplo, 2 GB de RAM e um disco rígido SATA com 160 GB.

Agora, ao colocar ambos em um servidor com a mesma configuração de hardware, você deverá dividir os recursos pela metade, será que o fará? De forma geral, serão necessários mais recursos para um hipervisor tipo 2.

Então, considere os custos necessários com CPU, RAM e HDD ao pensar em como consolidar cargas de trabalho do físico para o virtual. Frequentemente, a consolidação virtualizada é chamada de “empilhamento de sistemas vertical em vez de horizontal”, porque você está removendo a dependência de n sistemas físicos de um OEM. Em contrapartida, você está solicitando muito mais de um sistema individual do que faria antes da virtualização. Isso cria uma reação no gerenciamento de sistemas que muitas organizações não consideram ao entrar de cabeça na virtualização.

Qual é o custo da virtualização?

No passado, um bom software de virtualização custava bastante dinheiro. Ao longo do tempo, o mercado se aqueceu, e você pode conseguir vários tipos de software de virtualização por um custo baixo. Contudo, a maioria dos recursos empresariais críticos ainda são caros, inclusive o sistema operacional host ou o hipervisor.

Dependendo da carga de trabalho que você planeja executar em uma VM, pode ser necessário investigar o failover. Às vezes, os convidados são corrompidos e o hardware do host pode falhar. A virtualização não torna o hardware mais confiável. Ela apenas muda as probabilidades. Em sistemas de missão crítica, ainda será necessário ter uma estratégia para fazer backup do sistema operacional convidado, quer você esteja fazendo backup do próprio contêiner da VM (o que é absolutamente recomendado) ou do sistema de arquivos contido nele.

Mesmo que você esteja virtualizando apenas um conjunto de sistemas operacionais convidados para testes ou desenvolvimento em um hipervisor tipo 2, ainda será necessário alocar RAM suficiente para executar um ou mais desses convidados simultaneamente (sobre o sistema operacional host). O problema de gerenciamento de virtualização esquecido com mais frequência é o consumo de espaço em disco.

Eu uso a virtualização há algum tempo como base para testes de segurança. Não há nada melhor que executar uma exploração potencial em uma VM, observar seu funcionamento e reverter para uma versão anterior usando a funcionalidade de instantâneo ou o desfazer do hipervisor, apenas para testá-la novamente. A verdadeira beleza de empilhar essas operações de desfazer alterações uma sobre a outra é que o espaço em disco pode sair do controle rapidamente. Ele pode exceder em muito o tamanho real do disco rígido no próprio sistema operacional convidado.

Uma das VMs que eu uso regularmente tem uma imagem de disco rígido com 50 GB. Eu não tinha me dado conta como ela estava fora de controle, até que tentei movê-la (ela tinha seis instantâneos do VMware) e o disco tinha bem mais que 125 GB.

 Estas são algumas práticas recomendadas para minimizar o impacto/custo da virtualização:

  • Se estiver usando um sistema operacional cliente Windows em um hipervisor tipo 2 com a funcionalidade “desfazer”, desabilite a Restauração do Sistema do Windows de forma definitiva. Caso contrário, o disco aumentará sempre que você fizer uma alteração no sistema.
  • Se você executar a etapa 1, seja rigoroso com a demarcação de quando deseja criar um ponto de desfazer.
  • Se estiver fazendo testes de segurança/explorações, não confie no Windows para a reversão para um ponto anterior no tempo. Use a funcionalidade de desfazer do hipervisor, pois em geral ela não pode ser corrompida da mesma forma que os pontos de restauração.
  • Execute sistemas operacionais convidados com a quantidade mínima de recursos necessária.
  • Verifique se você alocou RAM suficiente para que os sistemas operacionais cliente não fiquem trocando entre RAM e disco o tempo todo. Isso pode tornar o host e todos os convidados mais lentos.
  • Desfragmente os convidados internamente e depois externamente (consulte a seção posterior sobre desfragmentação). Execute as duas operações periodicamente.

Proliferação de VMs

Como você pode ver, o gerenciamento de VMs pode se tornar um problema rapidamente. A facilidade de duplicação de uma VM pode ser um grande benefício, mas também pode criar problemas enormes de gerenciamento e segurança de convidados, ao controlar as licenças de sistemas operacionais com o Windows (anteriores ao Windows Vista, em que o novo gerenciamento de chaves pode realmente ser vantajoso) e para garantir que segredos comerciais não saiam de seu controle. É absurdamente mais fácil para um funcionário não autorizado transportar uma VM em uma unidade flash ou um disco rígido USB que tentar e transportar um sistema de desktop inteiro.

A proliferação de VM é um problema muito maior entre o pessoal técnico altamente especializado (que entende as entranhas da virtualização). Em geral, ela também é mais predominante entre os convidados clientes que entre convidados servidores virtualizados.

Gerenciamento de sistemas

Empresas inteiras começaram a se voltar à ajuda na retomada do controle dos sistemas virtualizados. A Microsoft e a VMware concentram-se intencionalmente menos no valor da virtualização propriamente dita e mais no gerenciamento de sistemas. Isso é importante porque você não está se livrando dos sistemas, mas apenas virtualizando-os.

Vários produtos de gerenciamento de sistemas podem ser executados perfeitamente em VMs, mas algumas funcionalidades mais novas permitem o gerenciamento mais inteligente de sistemas virtualizados, incluindo a ativação e atualização de convidados; de outra forma, ocorreria falha na atualização desses convidados. Na era das explorações de dia zero, isso é crítico. A última coisa de que você precisa é que uma VM pouco usada se torne o representante do botnet local em sua rede corporativa.

Sua abordagem de gerenciamento de sistemas deve considerar que você tem hosts e convidados, assegurando que eles sejam atualizados apropriadamente e que se saiba as funções de cada um deles. A última coisa que você deseja é que uma solução de gerenciamento de patches com um design inadequado atualize seu hipervisor e o derrube no meio do dia para uma reinicialização, levando quatro servidores convidados de missão crítica com ele.

Também é necessário abordar a recuperação desses sistemas da mesma forma que teria feito historicamente. O fato de um sistema ser virtualizado não significa que você não pode perdê-lo devido à corrupção do Registro ou de toda a VM: você pode. Faça backup com o mesmo empenho aplicado atualmente em seus sistemas físicos.

Uma consideração adicional é se o seu hipervisor executa a funcionalidade de desfazer. Tenha isso em mente ao considerar o gerenciamento de patches. É fácil atualizar um convidado na quarta-feira após o patch da terça-feira, revertê-lo para o ponto de desfazer da segunda-feira e ser atingido por uma exploração de dia zero contra a qual teoricamente ele estava “protegido”. Esse é um problema sério, pois as tecnologias de desfazer funcionam revertendo para um ponto anterior da apresentação inteira do disco do hipervisor. Isso significa que você perderá todos os patches do Windows e de aplicativos, além de todas as assinaturas de antivírus.

Software de segurança

Deixando a funcionalidade de desfazer de lado, é necessário fornecer a mesma proteção de segurança aos convidados virtualizados que aos computadores físicos e muito mais. Quando se trata de ameaças de entrada, as VMs são tão suscetíveis quanto os computadores físicos; não faz diferença.

Porém, a grande diferença é que as VMs não críticas (aquelas que não ficam sempre ligadas) frequentemente têm uma latência para as atualizações de patches e de antivírus. Como resultado, elas podem se tornar um alvo muito maior e impossível de rastrear para explorações de dia zero. Esse é um motivo ainda mais importante para assegurar que você esteja usando uma solução de gerenciamento de sistemas madura, que possa levar isso em consideração e também corrigir os sistemas virtuais.

As ameaças de saída são outra questão. As VMs podem ser uma porta para o roubo de propriedade intelectual. É fundamental entender isso porque as VMs em execução em hosts não controlados podem criar uma brecha para seus dados. Primeiro, se o ambiente virtual puder ser copiado com facilidade, isso será um problema, especialmente se você lidar com requisitos de conformidade que controlem o acesso aos dados (como discuti em um artigo de 2008 (https://technet.microsoft.com/magazine/2008.06.desktopfiles).

Segundo, como você pode relembrar no meu artigo sobre RMS e IRM (https://technet.microsoft.com/magazine/2008.11.desktopfiles), esses controles dependem do sistema operacional para evitar captura de tela, impressão e assim por diante. No entanto, esses controles não se estendem para o hipervisor, o que significa que se o conteúdo protegido pelo RMS for exibido em um sistema operacional convidado, o sistema operacional host ainda poderá imprimir capturas de tela individuais ou criar uma captura de vídeo da tela.

Apesar de não ser tecnicamente um análogo, isso não é totalmente diferente da “falha analógica”. Eu não conheço nenhuma maneira de proteger o conteúdo controlado por DRM desse tipo de exploração. Sendo realista, mesmo que isso fosse possível, você voltaria para o problema da proteção contra usuários com câmeras ou câmeras de vídeo que podem realizar a mesma “exploração”.

Desfragmentação de disco

A desfragmentação de disco é um desafio único nas VMs, por diversos motivos:

  1. Em geral, você terá dois níveis de fragmentação: no próprio contêiner do disco virtualizado (fragmentação dos convidados que cada um vê em seu nome), que eu chamo de “fragmentação principal”, e a fragmentação do arquivo real que contém o disco virtualizado em todos os discos do sistema operacional host, ou “fragmentação secundária”.
  2. Os produtos de virtualização com discos que têm o tamanho mínimo necessário e aumentam “por demanda” podem levar à fragmentação secundária.
  3. A funcionalidade de desfazer pode levar rapidamente não apenas ao inchaço do disco, mas também à grande fragmentação secundária, pois como ela consome espaço em disco adicional do sistema operacional host, cada convidado começa a competir pelos setores disponíveis.
  4. Com discos que crescem por demanda, a maioria não tem a funcionalidade para ser reduzida quando a demanda diminuir. Se você alocar 40 GB, usar apenas 10 GB inicialmente, mas o crescimento exigir 35 GB, o disco não se recuperará sozinho; você terá um arquivo grande em que a probabilidade da fragmentação secundária é muito maior.

O tamanho dos discos virtuais, a velocidade com que eles podem ser alterados, reduzidos ou aumentados, e o fato de que são suscetíveis a dois tipos de fragmentação significam que você deve tratá-los de forma ainda mais séria do que faria com sistemas físicos.

Veja uma abordagem à proteção de seus arquivos:

  1. Minimize o uso de todas as tecnologias de desfazer, pois elas causarão o crescimento indevido dos arquivos em disco totais e não é possível executar a fragmentação imediata no convidado, embora o host possa desfragmentar os arquivos que formam o disco virtual.
  2. Para começar, use um bom produto de desfragmentação de disco em seus convidados e o execute periodicamente.
  3. Se estiver usando a tecnologia de expansão de disco por demanda:
    a. Use o utilitário sdelete.exe da Sysinternals, da seguinte maneira: sdelete –c letra_da_unidade, onde letra_da_unidade é o volume que você deseja zerar. Por exemplo, sdelete –c C: eliminará todo o espaço em disco não utilizado após a desfragmentação.
    b. Use qualquer tecnologia de redução de disco virtual (se oferecida pelo seu fornecedor) para reduzir o contêiner do disco virtual a seu tamanho mínimo
  4. Desfragmente os volumes do sistema operacional host que contêm as VMs.

Várias pessoas ignoram a desfragmentação de disco. O grande volume de correspondência que recebi de leitores do meu artigo sobre desfragmentação de disco em 2007 (technet.microsoft.com/magazinebeta/2007.11.desktopfiles) comprovou que esse é um tema frequentemente mal-compreendido, mas que não deve ser ignorado, mesmo em sistemas virtualizados.

Conforme continua a explosão da virtualização em importância e uso, pode se tornar fácil demais varrê-la junto com a mensagem da “consolidação” sem compreender os custos e suas complexidades involuntárias inerentes. Isso deve ajudá-lo a descobrir alguns dos custos adicionais que precisam ser considerados ao migrar para ou viver com a virtualização.

Wes Milleré diretor de gerenciamento de produtos na CoreTrace (CoreTrace.com) em Austin, Texas. Ele trabalhou na Winternals Software e como gerente de programa da Microsoft. Entre em contato com Miller pelo email technet@getwired.com.

Conteúdo relacionado