As partições LVM devem ser usadas em imagens de máquinas virtuais?

43

O LVM deve ser usado para as partições ao criar imagens de VM (por exemplo, imagens KVM)? Parece que isso adiciona complexidade se você quiser, digamos, montar uma imagem qcow2 no host se a imagem tiver partições LVM.

Por outro lado, não parece que as vantagens das partições LVM sejam tão significativas em uma imagem de VM, pois é muito mais fácil colocar uma VM off-line e redimensionar partições do que em um sistema físico.

    
por Lorin Hochstein 05.03.2012 / 19:37

8 respostas

19

"Depende".

Se você estiver em um ambiente que você controla (vmware ou kvm ou qualquer outro) e puder tomar suas próprias decisões sobre o desempenho do disco em QoS, recomendamos não usar o LVM dentro de suas VMs. Não lhe dá muita flexibilidade que você não conseguiria no nível do hipervisor.

Lembre-se, o hypervisor já está executando efetivamente essas tarefas. Se você quiser redimensionar arbitrariamente os sistemas de arquivos (uma boa ideia), basta criar um disco virtual separado para cada sistema de arquivos.

Uma coisa que você pode pensar enquanto você segue esse caminho. Você nem precisa necessariamente colocar partições em seus discos virtuais dessa maneira. Por exemplo, você pode criar um disco virtual para /home ; é /dev/vdc dentro do seu vm. Ao criar o sistema de arquivos, basta fazer algo como mke2fs -j /dev/vdc em vez de especificar uma partição.

Esta é uma ótima idéia, mas ... a maioria das ferramentas (e outros administradores que vêm depois de você) espera ver partições em todos os discos. Eu recomendaria apenas colocar uma única partição no disco e terminar com ela. Isso significa mais um passo ao redimensionar o sistema de arquivos. E não se esqueça de alinhar corretamente suas partições - iniciar a primeira partição em 1 MB é uma boa regra geral.

Tudo o que foi dito - Fazer tudo isso no nível do hipervisor significa que você provavelmente precisará reinicializar a VM para redimensionar as partições. Usar o LVM permitiria adicionar um disco virtual a quente (presumindo que sua combinação de hipervisor / sistema operacional permita isso) e expandir o sistema de arquivos sem uma reinicialização. Este é definitivamente um plus.

Enquanto isso, se você estiver usando um provedor de nuvem, será mais sutil.

Não sei muito sobre o Azure, o GCP ou qualquer um dos players menores, por isso não posso ajudar.

Com a AWS, você pode seguir meu conselho acima e, com frequência, ficará bem. Você pode (agora) aumentar o tamanho dos volumes do EBS (discos virtuais) on-the-fly e redimensionar partições, etc.

No entanto, no caso geral, pode fazer sentido colocar tudo em um único volume grande do EBS e usar o LVM (ou, suponho, partições simples). A Amazon fornece um limite de IOPS em cada volume. Por padrão, esse limite é dimensionado com o tamanho do volume. Por exemplo, para gp2 volumes, você recebe 3 IOPS por GiB (mínimo de 100 IOPS). Consulte o link

Para a maioria das cargas de trabalho, você desejará que todas as suas IOPS disponíveis estejam disponíveis para qualquer sistema de arquivos, dependendo da necessidade no momento. Portanto, faz sentido fazer um grande volume de EBS, obter todos os seus IOPS em um bucket e particionar / LVM-lo.

Exemplo:

3 discos com sistemas de arquivos / áreas de troca independentes, cada um com 100 GB. Cada um recebe 300 IOPS. O desempenho está limitado a 300 IOPS em cada disco.

1 disco, 300 GB de tamanho. Partições LVM no disco de 100GB cada. O disco recebe 900 IOPS. Qualquer uma das partições pode usar todas as 900 IOPS.

    
por 13.09.2012 / 17:27
7

Volumes lógicos são mais fáceis de criar na hora, redimensionar, deletar.
A questão "para LVM ou não" sempre tem a mesma resposta, depende :)
Faz sentido se você precisa da flexibilidade no (s) disco (s), nível (s) de partição. Não faz muito sentido se você não precisa da flexibilidade fornecida pelo LVM ou não quer aproveitar outras Recursos do LVM

    
por 05.03.2012 / 20:01
5

Eu realmente gosto de usar LVs porque eles não são facilmente acessíveis a partir do virt-server. Assim, esses arquivos não podem ser facilmente destruídos / movidos por acaso.

Outras características importantes dos LVs:

  • Você pode criar instantâneos
  • Você pode analisar o disco rígido baseado em LV ( iostat )
  • Fácil de redimensionar
  • Usando instantâneos, você pode criar um clone consistente de sistemas em execução

Para reduzir a complexidade, uso um LV como disco (não como partição). A desvantagem é que eu só posso redimensionar facilmente a última partição do "disco" - mas meu layout padrão de disco VM leva isso em conta (então a última partição contém os dados importantes da aplicação).

    
por 06.03.2012 / 16:06
2

Além da flexibilidade, as imagens de VM baseadas em LVM têm menos sobrecarga, porque não são acessadas por meio de um sistema de arquivos. Por outro lado, elimina os meios de mover imagens facilmente, como faria com um arquivo. Não é impossível, mas um pouco mais complicado

    
por 06.03.2012 / 07:49
2

Minha própria experiência ....

Eu queria usar um volume lógico (lv) com lvm2 para um sistema de arquivos ext4; não como um disco, ou melhor, simplesmente como um disco bruto não particionado para o fs.

O que eu encontrei foi que a inicialização da VM seria interrompida no estágio initrd; se eu comentei a entrada /etc/fstab , a máquina inicializaria. Deixar a entrada /etc/fstab comentada não foi uma solução com a qual eu fiquei feliz em conviver. Então, criei uma imagem de disco normal (ainda um volume lógico), particionei-a com uma partição usando fdisk e criei o sistema de arquivos nela. Sem mais problemas.

As montagens relevantes no meu /etc/fstab estavam usando o UUID.

Eu pensei em usar arquivos ou sistemas de arquivos, mas decidi contra isso.

No meu caso, estou usando um sistema baseado no Debian Jessie Devuan

    
por 10.10.2016 / 08:22
1

Na verdade, só uso o LVM para o armazenamento de backup no nível do hipervisor, os arquivos de imagem são para os pássaros. Eu também recomendo usá-los no nível do convidado também. É verdade que você não se beneficiará do agrupamento de fontes de armazenamento distintas ou achará mais fácil aumentar o espaço total em disco disponível (desde que você consiga isso com a mesma facilidade redimensionando o que o hipervisor está apresentando), mas em algum momento você aloca muito um sistema de arquivos . Você pode gostar de um jeito fácil de pegar 1 gig de / opt e dar para / var (por exemplo). Se você está fazendo partições regulares dentro da própria VM, isso torna o aspecto de redimensionamento muito mais difícil.

    
por 02.04.2013 / 00:23
1

Além das outras boas respostas aqui, a única boa razão para usar o LVM dentro de uma VM é que você quer que um ambiente de teste experimente e obtenha alguma experiência prática com o LVM.

Você pode passar por vários HOWTOs e tutoriais, praticar tarefas de administração de LVM comuns (e não tão comuns), configurar vários cenários de falha e aprender a lidar com elas.

i.e. como uma ajuda auto-didata.

    
por 02.10.2013 / 02:47
0

Editar: O texto abaixo não é mais verdadeiro. O valor do uso do thin provisioning fornecido pelo LVM para imagens de disco da VM é provavelmente situacional;

Você está executando o Development VM em um laptop? então provavelmente você está melhor com o QCow2.

Gerenciando um farm de VMs que possivelmente pode usar grandes quantidades de armazenamento em vários discos? O LVM é provavelmente uma boa maneira de gerenciar esse armazenamento.

um motivo não para usar lvm é que você não pode comprometer o armazenamento usando lvm. Se você criar 10 VMs com 100 GB de armazenamento, precisará de 1000 GB de disco real, mesmo que 9 das 10 VMs usem apenas 20 GB de seus sistemas de arquivos. Imagens de disco esparso ou imagens em formato qcow2 podem significar que apenas o armazenamento realmente usado pelos convidados precisa ser alocado para eles.

Se isso realmente é útil para você, depende do que você precisa do armazenamento.

    
por 06.03.2012 / 17:32