Esta é uma pergunta interessante ...
Acho que não há uma resposta definitiva, mas posso fornecer um contexto histórico sobre como as melhores práticas em torno deste tópico podem ter mudado ao longo do tempo.
Eu tive que suportar milhares de VMs Linux implantadas de várias formas nos ambientes VMware desde 2007. Minha abordagem à implantação evoluiu e tive a experiência única ( às vezes infeliz ) de herdar e refatorar sistemas construídos por outros engenheiros.
Os velhos tempos...
Na época (2007), meus primeiros sistemas VMware foram particionados como meus sistemas bare metal. No lado da VMware, eu estava usando arquivos espessos de 2 GB para compor os dados da VM e nem pensei na noção de vários VMDKs, porque fiquei feliz que a virtualização pudesse funcionar!
Infraestrutura virtual ...
No ESX 3.5 e nas primeiras versões do ESX / ESXi 4.x (2009-2011), eu usava o Linux, particionado como normal no topo de arquivos VMDK monolíticos e espessados provisionados. Ter que pré-alocar o armazenamento me forçou a pensar no design do Linux da mesma maneira que faria com o hardware real. Eu estava criando VMDKs de 36 GB, 72 GB e 146 GB para o sistema operacional, particionando os usuais /, / boot, / usr, / var, / tmp e adicionando outro VMDK para a partição "data" ou "growth" (seja / home, / opt ou algo específico do aplicativo). Novamente, o ponto ideal no tamanho do disco rígido físico durante essa era foi de 146 GB e, como a pré-alocação era um requisito (a menos que se usasse o NFS), eu precisava ser conservador quanto ao espaço.
O advento do thin provisioning
A VMware desenvolveu melhores recursos com relação ao provisionamento dinâmico em versões posteriores do ESXi 4.x, e isso mudou a maneira como comecei a instalar novos sistemas. Com o conjunto completo de recursos sendo adicionado em 5.0 / 5.1, um novo tipo de flexibilidade permitiu projetos mais criativos. Lembre-se, isso acompanhava o aumento dos recursos em máquinas virtuais, em termos de quantos vCPUS e quanta RAM poderia ser comprometida em VMs individuais. Mais tipos de servidores e aplicativos podem ser virtualizados do que no passado. Isso é verdade, pois os ambientes de computação começaram a ficar completamente virtuais.
LVM é horrível ...
Quando a funcionalidade de adição a quente completa no nível da VM estava em vigor e era comum (2011-2012), eu trabalhava com uma empresa que se esforçava para manter o tempo de atividade das VMs de seus clientes a qualquer custo ( estúpido ). Portanto, isso inclui aumentos on-line da CPU / RAM do VMware e o redimensionamento arriscado do disco LVM nos VMDKs existentes. A maioria dos sistemas Linux nesse ambiente eram configurações únicas do VMDK com partições ext3 no topo do LVM. Isso foi terrível porque a camada LVM adicionou complexidade e riscos desnecessários às operações. A falta de espaço no / usr, por exemplo, pode resultar em uma cadeia de decisões ruins que eventualmente significam restaurar um sistema a partir de backups ... Isso foi parcialmente relacionado ao processo e à cultura, mas ainda assim ...
Snobbery partição ...
Aproveitei esta oportunidade para tentar mudar isso. Sou um pouco desajeitado em partições no Linux e sinto que os sistemas de arquivos devem ser separados para atender às necessidades operacionais e de monitoramento. Também não gosto do LVM, especialmente do VMware e da capacidade de fazer o que você está perguntando. Então, eu expandi a adição de arquivos VMDK para partições que poderiam crescer potencialmente. / opt, / var, / home pode obter seus próprios arquivos de máquina virtual, se necessário. E esses seriam discos brutos. Às vezes, esse era um método mais fácil de expandir partições subdimensionadas em tempo real.
Obamacare ...
Com a integração de um cliente de alto perfil , fui encarregado do design do modelo de referência da VM do Linux que seria usado para criar seu ambiente de aplicativo extremamente visível. Os requisitos de segurança do aplicativo exigiam um conjunto exclusivo de montagens , então trabalhei com os desenvolvedores para tentar empilhar as partições sem crescimento em um VMDK e adicionar VMDKs separados para cada montagem que tivesse potencial de crescimento ou tivesse requisitos específicos (criptografia, auditoria etc.) Portanto, no final, essas VMs eram compostas por 5 ou mais VMDKs, mas forneciam a melhor flexibilidade para redimensionamento e proteção futuros de dados.
O que eu faço hoje ...
Hoje, meu design geral para Linux e sistemas de arquivos tradicionais é o SO em um VMDK fino (particionado) e VMDKs discretos para qualquer outra coisa. Vou adicionar a quente, conforme necessário. Para sistemas de arquivos avançados como o ZFS, é um VMDK para o sistema operacional e outro VMDK que serve como um zpool do ZFS e pode ser redimensionado, esculpido em sistemas de arquivos ZFS adicionais, etc.