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


45

O LVM deve ser usado para as partições ao criar imagens de VM (por exemplo, imagens KVM)? Parece que aumenta a complexidade se você quiser, por exemplo, 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 offline e redimensionar partições do que para um sistema físico.


Você pergunta sobre o uso de LVs como discos inteiros ou como partições que, por sua vez, compõem um disco em uma VM?
Nils

@ Nils Estou falando de LVs como partições que compõem um disco. Por exemplo, ter a partição "/" e a partição swap como volumes lógicos dentro de um grupo de volumes.
Lorin Hochstein

Apenas para esclarecer, parece que você estava perguntando sobre o uso do LVM no lado do convidado. É muito mais fácil gerenciar se você usa o LVM no lado do host, passa um ou dois discos e os usa sem particionar no convidado.
Tobu

A sobrecarga do LVM está no intervalo de 10 a 9 segundos.
Emmanuel

Respostas:


21

"Depende."

Se você estiver em um ambiente que você controla (vmware ou kvm ou qualquer outra coisa) e puder tomar suas próprias decisões sobre a QoS de desempenho do disco, recomendo não usar o LVM dentro de suas VMs. Não oferece muita flexibilidade que você não poderia obter no nível do hipervisor.

Lembre-se de que o hipervisor já está efetivamente executando essas tarefas. Se você deseja redimensionar arbitrariamente os sistemas de arquivos (uma boa idéia), basta criar um disco virtual separado para cada sistema de arquivos.

Uma coisa que você pode pensar ao percorrer este caminho. Você nem precisa necessariamente colocar partições em seus discos virtuais dessa maneira. Por exemplo, você pode criar um disco virtual para /home; está /dev/vdcdentro da sua vm. Ao criar o sistema de arquivos, faça algo como, em mke2fs -j /dev/vdcvez de especificar uma partição.

É uma boa idéia, mas ... a maioria das ferramentas (e outros administradores que vêm depois de você) esperam ver partições em todos os discos. Eu recomendo apenas colocar uma única partição no disco e pronto. 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 com 1 MB é uma boa regra.

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


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

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

Com a AWS, você pode seguir meus conselhos acima e muitas vezes ficará bem. Você pode (agora) aumentar o tamanho dos volumes EBS (discos virtuais) on-the-fly e redimensionar partições, etc.

No entanto, no caso geral, pode fazer sentido colocar tudo em um único grande volume EBS e usar o LVM (ou, suponho, partições simples). A Amazon fornece um limite de IOPS para cada volume. Por padrão, esse limite é escalado com o tamanho do volume. por exemplo, para gp2volumes, você obtém 3 IOPS por GiB (mínimo de 100 IOPS). Consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html

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

Exemplo:

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

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


7

Os volumes lógicos são mais fáceis de criar em tempo real, redimensionar, excluir.
A pergunta "para LVM ou não" sempre tem a mesma resposta, depende :)
Faz sentido se você precisar da flexibilidade no (s) disco (s), partição (s).
Não faz muito sentido se você não precisa da flexibilidade fornecida pelo LVM ou não deseja tirar proveito de outros recursos do LVM


5

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

Outras características importantes dos LVs:

  • Você pode fazer instantâneos
  • Você pode analisar E / S de disco com base 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 posso redimensionar com facilidade a última partição do "disco" - mas meu layout de disco de VM padrão leva isso em consideração (para que a última partição contenha os dados importantes do aplicativo).


2

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


1
Essa é uma resposta para uma pergunta diferente. A questão aqui era sobre o uso do LVM nos convidados, não o uso do LVM no host (LVs para armazenar os discos da VM).
Stéphane Chazelas

1
Não, a pergunta era sobre o uso do LVM PARA os convidados, não nos convidados.
HDave

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 descobri foi que a inicialização da VM seria interrompida no estágio initrd; se eu comentasse a /etc/fstabentrada, a máquina inicializaria. Deixar a /etc/fstabentrada comentada não foi uma solução com a qual fiquei feliz em viver. Então, criei uma imagem de disco normal (ainda um volume lógico), particionei-a com uma partição usando fdiske criei o sistema de arquivos nela . Sem mais problemas.

As montagens relevantes no meu /etc/fstabestavam usando UUID.

Pensei em usar arquivo ou sistema de arquivos, mas decidi contra.

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


1

Na verdade, eu apenas uso LVMs para o armazenamento de backup no nível do hipervisor, os arquivos de imagem são para os pássaros. Eu também recomendaria usá-los no nível de convidado também. É verdade que você não se beneficiará do pool de fontes de armazenamento diferentes ou achará mais fácil aumentar o espaço total em disco disponível (já que você pode obtê-lo com a mesma facilidade redimensionando o que o hypervisor está apresentando), mas às vezes você aloca muito em um sistema de arquivos . Você pode gostar de uma maneira fácil de obter 1 gig de / opt e fornecê-lo a / var (por exemplo). Se você estiver fazendo partições regulares dentro da própria VM, isso tornará o aspecto do redimensionamento muito mais difícil.


1

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

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

isto é, como um auxílio de auto-ensino.


0

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

Você está executando VMs de desenvolvimento em um laptop? então você provavelmente está melhor com o QCow2.

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


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

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


2
Na verdade, você pode confirmar demais o armazenamento usando os instantâneos lvm. Tem sobrecarga, no entanto.
Derobert 13/09/12

3
e, na verdade, as versões mais recentes do LVM oferecem suporte a um "thin pool", que é supercomprometido sem qualquer bobagem de instantâneo.
Derobert 13/09/12

É um ponto válido, embora incorreto; vale a pena ressaltar o modo "padrão" / rápido de usar partições / discos LVM no cenário descrito. No entanto, a resposta pode ser alterada para refletir que acrescentaria ainda mais complexidade ao caminho da aprendizagem .
ILMostro_7
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.