O IO de propagação é carregado por unidades / arrays físicos em VMs do VirtualBox

3

Usamos VMs com snapshots como parte de nossos processos de testes de suporte e lançamento, o que torna convenientes os patches de teste para sistemas clientes (tirar instantâneos, aplicar alterações, testar, reverter, ensaboar, enxaguar, repetir e reaplicar as atualizações e ; confirme as alterações do instantâneo quando as atualizações forem ativadas)), uma configuração que estou tentando melhorar.

Um dos problemas que temos é o desempenho do banco de dados, que estou ciente de que sempre será ruim em uma VM instantânea devido à quantidade de trabalho extra para cada gravação comparada à mesma gravação em uma máquina física, mas gostaria de melhorar isso o máximo possível.

Na máquina física, tendemos a dividir as coisas em três unidades separadas (ou três matrizes separadas como RAID1 ou 10 são padrão em nossas caixas de produção) ao executar o SQL Server, como uma regra de polegar mantendo arquivos de dados em um, principal arquivos de log do banco de dados em outro e tempdb (& o SO) em um terceiro.

Isso não parece ser possível com o VirtualBox com instantâneos, pois não consigo encontrar uma maneira de dividir os instantâneos para cada unidade em locais diferentes. Posso manter três vdisks em unidades separadas no host físico, o que faria o mesmo tipo de diferença se os snapshots não fossem usados, mas com um snapshot toda a atividade de gravação (e a atividade de leitura subseqüente para as áreas afetadas) seria concentrada em um dirija como todos os arquivos de diferenciação vão para o mesmo lugar. Posso manter os arquivos de diferenciação como uma unidade separada para as unidades que contêm os vdisks de base contendo atividade confirmada, o que sem dúvida ajudará, mas não tanto quanto a capacidade de separar completamente o IO para cada vdisk para diferentes unidades físicas.

tl; dr: Existe uma maneira de solicitar ao VirtualBox (ou outra solução de virtualização, como posso considerar alternativas neste momento) manter os arquivos de diferenciação para instantâneos com o vdisk base? arquivos aos quais eles se relacionam, em vez de todos entrarem em um diretório comum? A opção de localização do instantâneo está disponível apenas no nível da VM, não no nível do vdisk, não parece aceitar caminhos relativos. Ou será melhor mantermos a VM em um volume físico RAID0 de 4 unidades (com backups em uma matriz muito mais segura, é claro!)

    
por David Spillett 25.06.2011 / 10:40

2 respostas

1

Você não diz qual é o seu servidor OS para VBox. Mas se você usasse o Linux, poderia colocar seus discos virtuais em LVMs e tirar fotos instantâneas deles.

Alternativas para o VirtualBox (eu uso o VBox apenas em PCs, não em servidores): - XEN (muito bom para usar o para-virtual linux com linux vserver os) - KVM (se você quiser o linux como vserver) - Hyper-V (Microsoft / Microsoft)

Outra alternativa: Faça um backup completo antes do teste e uma restauração completa após o teste - sem fazer snapshots.

Ou: use o instantâneo para criar um clone completo e, em seguida, remova o instantâneo ...

    
por 31.07.2011 / 22:29
0

Eu dei uma olhada em um arquivo .vbox de uma VM DOS depois de tirar um instantâneo:

A seção HardDisk desse arquivo XML parece promissora:

<HardDisks>
  <HardDisk uuid="{e3f3bbd7-1a6d-45b1-9c3b-1a22c12e97d7}"
            location="DOS.vdi"
            format="VDI"
            type="Normal">
  <HardDisk uuid="{b299df93-905b-4030-b66d-04828a194d7c}"
            location="Snapshots/{b299df93-905b-4030-b66d-04828a194d7c}.vdi"
            format="VDI"/>
  </HardDisk>
</HardDisks>

Meu palpite é que você pode modificar o caminho dado em "local" para o instantâneo à sua vontade (com uma pausa ou shutdown vm). Experimente ...

    
por 04.08.2011 / 22:35