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.
lvm
kvm
virtualization
Lorin Hochstein
fonte
fonte
Respostas:
"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/vdc
dentro da sua vm. Ao criar o sistema de arquivos, faça algo como, emmke2fs -j /dev/vdc
vez 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
gp2
volumes, você obtém 3 IOPS por GiB (mínimo de 100 IOPS). Consulte https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.htmlPara 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.
fonte
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
fonte
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:
iostat
)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).
fonte
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
fonte
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/fstab
entrada, a máquina inicializaria. Deixar a/etc/fstab
entrada 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 usandofdisk
e criei o sistema de arquivos nela . Sem mais problemas.As montagens relevantes no meu
/etc/fstab
estavam 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
fonte
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.
fonte
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.
fonte
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.
fonte