Compare as Tecnologias de Memória no VMware e Microsoft VIR311 Alexandre Goudard Team Lead – ProConsult Brazil Dell | IT Computing Services Fabio Hara Especialista de Infraestrutura Microsoft Brasil @fabiohara Agenda Memória e Virtualização Técnicas de Otimização de Memória Hyper-V Dynamic Memory Arquitetura e Conceitos Demo Impacto no sistema Tecnologia e Terminologia Parent Partition Service Console VHD (Virtual Hard Disk) VMDK (Virtual Machine Disk) Failover Clustering VMware HA (High Availability) Live Migration vMotion CSV (Clustered Shared Volumes) VMFS Coordinator Node Primary Node VM Affinity VM Affinity Pass-Through Disks Raw Device Mapping Core Parking Distributed Power Management Tecnologia e Terminologia (cont…) Hyper-V Manager VI Client Windows Server Backup (WSB) Consolidated Backup Dynamic Disk Thin Provisioning Expand Disk/Volume Volume/Extent Grow VM IDE boot VM SCSI Hot Add Disks Hot Add Disks Integration Components VMware Tools Virtual Switch Standard/Distributed Switch Tecnologia e Terminologia (cont…) System Center Virtual Machine Manager vCenter Performance and Resource Optimization (PRO) Distributed Resource Scheduler (DRS) Self Service Portal Web Access Quick Storage Migration Storage vMotion Templates Templates Clones Full Clones P2V / V2V Converter Virtual Machine Servicing Tool (VSMT) Update Manager Virtualização e Memória Virtualização e Memória Quanto de memória um servidor realmente precisa? IIS Server? Print server? File server? Banco de dados? Servidor de email? Ninguém quer Dimensionar a Memória de uma VM “Novas VMs utilizam 1GB de RAM [não importa o que a VM esteja rodando]. Eu apenas forneço mais memória se as pessoas reclamam de performance” “Todas as VMs usam 4GB de RAM [não tenho idéia do que acontece com a memória] e ninguém reclama” “Eu configuro o mínimo requisitado pelo sistema e adiciono (50%, 100%, 150%, etc)” “O fabricante me disse que a aplicação precisa de 4GB de RAM. Não tenho tempo de testar para saber se é verdade ou não” Virtualização e Memória Memória Fator chave para a quantidade de VMs rodando O recurso mais utilizado no sistema, porém o mais caro Estatisticas na utilização de recursos CPU 10% Memória 40% Rede I/O <5% Disco I/O <5% Requisitos de clientes Densidade máxima, sem sacrificar performance Manter consistência na performance Não prover um recurso que não se encaixe em um ambiente de produção Técnicas Utilizadas Transparent Page Sharing (TPS) Hypervisor Swapping Ballooning Compressão de Memória Transparent Page Sharing (TPS) Utilizado em cenários com VM’s utilizando mesmo Sistema Operacional, mesmo aplicativo ou mesmo dados Hypervisor mantém apenas uma cópia dos dados redundantes Uma tabela de Hash é mantida c/ possíveis paginas idênticas Utiliza técnica de Copy-on-Write para gerenciar escritas nas paginas compartilhadas Uma cópia particular é mantida para cada VM que realiza uma escrita Hashes de 4KB, mesmo para páginas grandes de 2MB Baixa probabilidade de encontrar paginas identicas Overhead para comparação bit-a-bit é maior com páginas de 2MB Como Funciona VM 1 VM 2 VM 3 Função de Hash Valor do Hash = “A” Ballooning Implantado dentro da VM (depende de um “device” driver) Comunica com o Hypervisor e informa quando está sob pressão para obter mais memória Quando o driver de Ballooning é “inflado” cabe ao SO da VM decidir quais páginas serão desalocadas da memória para satisfazer as requisições de alocação do Balloooning Como Funciona Compressão de Memória Utiliza cache (por VM) para armazenar páginas Mais rápido se comparado com swap de disco devido ao Disk I/O Hypervisor Swapping Memória-extra solicitada pela VM é redirecionada para paginação em disco Elimina problemas das outras técnicas Seleção de paginas que estarão fora do swap Problemas com dupla paginação Latência Ideal desde que utilizado com discos SSD Gerenciamento de Memória Processos não endereçam diretamente a memória física Memória física é apresentada para os processos do kernel e user-mode através de um espaço de endereçamento virtual Cada processo tem acesso até a 8TB de espaço de endereçamento virtual Processo Processo Processo Paginas de Memória Virtual Paginas de Memória Física Gerenciamento de Memória Modificado Páginas de memória que ainda não foram utilizadas durante algum tempo, mas precisam ser gravadas no disco antes que possam ser reutilizados Standby Páginas que não estão sendo usadas e foram escritas para o disco Elas podem ser devolvidas a um processo se este precisar, mas também estão disponíveis para uso por outro processo Free Páginas de memória que não estão em uso, mas ainda não foram “zeradas” Objetivos do Dynamic Memory Altas taxas de consolidação de VMs com impacto mínimo de performance Dependente de: Variação na utilização de memória, dependendo da carga de trabalho O trabalho que você teve ao dimensionar corretamente da primeira vez Funciona bem para cargas de trabalho de VMs de servidores e desktops Adiciona um mínimo de overhead ao sistema Dynamic Memory Habilitado no Windows Server 2008 R2 SP1 HYPER-V host deve rodar R2 SP1 ICs da Virtual Machine com R2 SP1 versão (7601) Permite que a memória de host possa ser vendida, porém entregue apenas no limite físico existente Dinamicamente gerencia a memória alocada para uma VM, baseado na demanda Monitore de “Committed Bytes” dentro da VM Utiliza técnica de “hot add” para adicionar memory Utiliza técnica de “memory ballooning” para remover a memória Buffer configurável para as necessidades de memória de cache para as VM’s Permite que voce priorize a memoria de cada VM Como funciona Conceitos de Dynamic Memory Buffer de Memória Demanda de Memória Demanda de Memória: Qdade de memória que uma VM necessita Dinamicamente calculada por VM Buffer de Memória: Para satisfazer necessidade de cache para a VM Configurável Online por VM Conceitos de Dynamic Memory Máximo de Memória Buffer de Memória Demanda de Memória Memóriaalvo Memória Inicial SLAs Memória Inicial Memoria é designada durante boot inicial Memória reservada para a VM Máximo de Memória Limite de memória para a VM Buffer de Memória Tem como alvo o percentual para caching de memória Memória “Apenas o necessário” de memória para a VM baseado na demanda + buffer Componentes do Dynamic Memory Componentes do Host Dynamic Memory VSP Host HYPER-V Balanceador de Memória Dynamic Memory VSP Virtualization Stack Memory Manager Memória Física do Sistema Comunica com a VM (VSC) e corretores de solicitacao para os balanceadores de memória Balanceador de Memória Monitora pressao de memória no Host e entre as maquinas virtuais Aloca memória para a VM. Baseado em em demanda de memória da VM Recupera memória das VMs que estejam em déficit Deppois da memória ser removida , a mesma é adicionada nas maquinas que necessitam Componentes do Dynamic Memory Componentes da Virtual Machine Virtual Machine Windows Memory Manager Dynamic Memory VSC Page File Endereco físico de memória do Guest (Máquina Virtual) Dynamic Memory VSC Driver (DMVSC.sys) é instalado no guest via IC’s, mas não é habilitado até que o DM esteja habilitado também. Coleta e envia estatísticas de memória do Guest para o Balanceador de Memória do Host Adiciona memória na VM através de enlightenments Remove memória da VM através de ballooning Adicionando Memória Quando a demanda de memória aumenta então o VSC requisita memória adicional via VSP VSC apresenta memória adicionada para o gerenciador de memória da VM DM não utiliza a técnica tradicional de HotAdd, porém utiliza no lugar o “HotAdd Enlightenments” Aparece como memória física dentro da VM Removendo Memória Utiliza técnica de Ballooning para “inflar” o driver do espaço de endereçamento virtual não-paginado O SO da VM ainda acredita que a memória esteja lá, porém o espaço de endereçamento é designado para o Kernel driver A memória virtual é liberada e/ou despaginada, e colocada em uma lista livre (free/zero) O VSC chama a função do Gerenciador de Memória para alocar a memória fora da lista livre (free/zero) A técnica de ballooning invalida os contadores de memória do Task Manager Balanceamento de Memória Política de adicão de memória ativa Memória é adicionada imediatamente quando a VM necessitar Política de reclamacao de memória passiva Memória não é removida quando não há necessidade imediata de memória Memória inutilizada é coletada a cada 5 minutos Banda de Pressão de Memória Banda calculada para a pressão da VM com objetivo de minimizar operacões de adicão/remocão Banda alta de pressão de memória Pressão atual de memória Banda baixa de pressão de memória Interface gráfica HYPER-V Manager Assigned memory: Memória alocada para a VM Memory Demand: Demanda de Memória da VM (Memory/Committed bytes) Memory Status: Demanda de memória da VM + buffer OK: memória corretamente configurada na VM para demanda + buffer Warning: memória corretamente configurada na VM para demanda, porém pequena no buffer Critical: memória incorretamente configurada na VM para demanda (VM está paginando) Contadores do Monitor de Performance Contadores específicos da VM HYPER-V Dynamic Memory VM/* Current Pressure: demanda de memória da VM vs. Designada (em %) Physical Memory: memória designada para a VM Guest Visible Physical Memory: memória física que uma VM acredita que está designada para ela. Inclui memória fora do balloon Contadores do Host HYPER-V HYPER-V Dynamic Memory Balancer/System Balancer Available Memory: Memória física total disponível no Host Average Pressure: Média de pressão de todas as VMs rodando atualmente no host Integracão com SCVMM Necessário SP1 do SCVMM 2008 R2 Configuracões de Dm através de “Hardware Configuration” Prioridade de DM priority é gerenciado separadamente em “Advanced” Por que a Microsoft não implementa Page Sharing? Page Sharing funciona bem com páginas de 4K, porém eficiência é muito baixa com Large Memory Pages (2MB) Páginas de 4K não conseguem usar com eficiência o Translation Lookaside Buffer (TLB) com Large Memory Pages Usar paginas de 4K ao invés de Large Memory Pages reduz a performance de servidores c/ SLAT em ~20% Windows Vista/7 e Windows Server 2008/2008R2 usam Large Memory Pages por padrão SuperFetch Popula trechos de memória com aplicações que sejam frequentemente carregados, melhorando tempo de resposta Reduz quantidade de “Zero Pages” reduzindo eficiência do Page Sharing Desde o Windows XP é implementado o SuperFetch Preload (Linux) Address Space Layout Randomization (ASLR) DLL`s de sistema e executáveis são carregados em areas diferentes da memória toda vez que o SO é inicializado Por que a Microsoft não implementa Second Level Paging? Se o Hypervisor não conseguir identificar quais páginas da VM devem ir para swap pode ocorrer interações desnecessárias com as políticas de gerenciamento da memoria nativa na VM Ex: O sistema operacional da VM nunca vai fazer paginação das paginas do Kernel. O Hypervisor não consegue identificar quais são as paginas do Kernel e vai fazer swap Possibilidades de dupla-paginação VM fazendo swap e Hypervisor fazendo outro swap Necessário pelo menos array de discos SSD Tipo Velocidade Memória DDR3-1600 5 nanosegundos Memória DDR3-1333 6 nanosegundos Memória DDR3-1066 7,5 nanosegundos Memória DDR3-800 10 nanosegundos Disco ~8milisegundos Conteúdo Relacionado http://technet.microsoft.com/pt-br/treinamento www.microsoft.com/brasil/servidores Blogs.technet.com/virtualization www.vmware.com/resources/techresources/10206 Get the free mobile app for your phone http:/ / gettag.mobi http://technet.microsoft.com/pt-br Get the free mobile app for your phone http:/ / gettag.mobi http://msdn.microsoft.com/pt-br Não esqueça de preencher sua avaliação online www.teched.com.br/avaliacao Get the free mobile app for your phone http:/ / gettag.mobi © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.