Qual é o melhor formato de imagem, raw ou qcow2, para usar como baseimage para outras VMs?

19

Estou usando uma baseimage e, com base nisso, criando muitas VMs. E agora eu quero saber qual é melhor, qcow2 ou raw para usar em uma imagem de base. Além disso, você pode por favor me dizer se há alguma vantagem de usar essa coisa de baseimagem, em vez de clonar todo o disco. A velocidade pode ser um fator, mas em termos de eficiência existe algum problema em usar uma baseimage e, em seguida, criar VMs usando essa baseimage?

Editar 1:

Eu realizei alguns experimentos e obtive

O primeiro é quando a baseimagem e a sobreposição são qcow2. Segundo Quando a baseimagem é bruta, mas a sobreposição é qcow2 e, em terceiro caso, estou dando uma imagem de disco bruta individual para cada VM. Surpreendentemente, o último caso é muito mais eficiente em comparação com os outros dois.

Experimental Setup: 
OS in baseimage : Ubuntu Server 14.04 64 bit.
Host OS: Ubuntu 12.04 64bit
RAM : 8GB
Processor : Intel® Core™ i5-4440 CPU @ 3.10GHz × 4 
Disk : 500 GB 

No eixo x: número de VM inicializado simultaneamente. Começando de 1 e incrementado até 15.

No eixo y: Tempo total para inicializar o número "x" de máquinas.

A partir dos gráficos, parece que dar imagem de disco completa à VM é muito mais eficiente do que outros 2 métodos.

Editar 2:

Isto é para o caso quando estamos dando imagem bruta individual para cada VM. Depois de fazer o cache flushing, este é o gráfico. É quase semelhante à sobreposição de baseimage + qcow.

Obrigado.

    
por Ankit 23.03.2015 / 17:34

2 respostas

15

Para o seu caso de uso específico (base image + qcow2 overlay), o formato RAW deve ser o preferido:

  1. É mais rápido: como não tem metadados associados, é o mais rápido possível. Por outro lado, Qcow2 tem duas camadas de indireção que devem ser cruzadas antes para atingir os dados reais
  2. Como a camada de sobreposição deve ser um arquivo Qcow2, você não perde o recurso de instantâneo sempre útil (imagens RAW não suportam instantâneos por si só)

A escolha entre a imagem de base + sobreposição qcow2 versus várias cópias completas depende da sua prioridade:

  1. Para um desempenho absoluto, use imagens RAW falsas. Isso tem o lado negativo de não suportar snapshot, com a maioria dos ambientes é um preço muito alto para pagar
  2. Para flexibilidade e eficiência de espaço, use imagens base RAW + sobreposições Qcow2.

Enfim, achei os arquivos Qcow2 um pouco frágeis.

Para meus hipervisores KVM de produção, basicamente uso duas configurações diferentes:

  1. em que o desempenho é o número 1, uso volumes LVM diretamente conectados às máquinas virtuais e uso o recurso de captura instantânea LVM para fazer backups consistentes
  2. onde eu posso sacrificar um pouco de desempenho para maior flexibilidade, eu uso um único e grande volume LVM Thin Provisioned + imagens RAW XFS +

Outra possibilidade é usar um volume LVM normal + imagens XFS + RAW. A única desvantagem é que os instantâneos LVM normais (não-finos) são muito lentos e a captura instantânea de um volume LVM normal ocupado matará o desempenho (durante a vida útil do instantâneo). De qualquer forma, se você planeja usar apenas um uso esporádico de snapshots, esta pode ser a aposta mais simples e segura.

Algumas referências:
KVM I / O lentidão no RHEL 6
Desempenho de armazenamento KVM e pré-localização Qcow2 no RHEL 6.1 e no Fedora 16
Desempenho de armazenamento KVM e configurações de cache no Red Hat Enterprise Linux 6.2
LVM thin volume explicado

    
por 23.03.2015 / 18:01
5

Por favor, esteja avisado .... se você estiver usando o linux você pode usar raw e obter os mesmos benefícios de qcow2 no que diz respeito ao tamanho.

... Se o seu sistema de arquivos suporta falhas (por exemplo, em ext2 ou ext3 no Linux ou NTFS no Windows), somente os setores gravados irão reservar espaço.

link

raw Raw disk image format (default). This can be the fastest file-based format. If your file system supports holes (for example in ext2 or ext3 on Linux or NTFS on Windows), then only the written sectors will reserve space. Use qemu-img info to obtain the real size used by the image or ls -ls on Unix/Linux.

    
por 30.01.2016 / 01:06