Questa è una domanda interessante ...
Non credo che ci sia una risposta definitiva, ma posso fornire un contesto storico su come le migliori pratiche relative a questo argomento possano essere cambiate nel tempo.
Ho dovuto supportare migliaia di VM Linux distribuite in varie forme in ambienti VMware dal 2007. Il mio approccio alla distribuzione si è evoluto e ho avuto l' esperienza unica (a volte sfortunata ) di ereditare e refactoring sistemi creati da altri ingegneri.
I vecchi tempi...
Nel passato (2007), i miei primi sistemi VMware erano partizionati proprio come i miei sistemi bare metal. Sul lato VMware, stavo usando file spessi da 2 GB per comprendere i dati della VM e non pensavo nemmeno al concetto di più VMDK, perché ero solo felice che la virtualizzazione potesse persino funzionare!
Infrastruttura virtuale ...
Con ESX 3.5 e le prime versioni di ESX / ESXi 4.x (2009-2011), stavo usando Linux, partizionato come normale in cima a file VMDK con provisioning thick monolitici . La necessità di preallocare lo spazio di archiviazione mi ha costretto a pensare al design di Linux in un modo simile a quello che farei con l'hardware reale. Stavo creando VMDK da 36 GB, 72 GB, 146 GB per il sistema operativo, partizionando il solito /, / boot, / usr, / var, / tmp, quindi aggiungendo un altro VMDK per la partizione "dati" o "crescita" (indipendentemente dal fatto che sia / home, / opt o qualcosa di specifico per l'applicazione). Ancora una volta, il punto debole nelle dimensioni del disco rigido fisico durante questa era era di 146 GB, e poiché il preallocazione era un requisito (a meno che non si utilizzasse NFS), dovevo essere prudente con lo spazio.
L'avvento del thin provisioning
VMware ha sviluppato funzionalità migliori per il thin provisioning nelle versioni successive di ESXi 4.x e questo ha cambiato il modo in cui ho iniziato a installare nuovi sistemi. Con l'insieme completo di funzionalità aggiunto in 5.0 / 5.1, un nuovo tipo di flessibilità ha consentito progetti più creativi. Intendiamoci, questo stava tenendo il passo con le maggiori capacità sulle macchine virtuali, in termini di quanti vCPUS e quanta RAM poteva essere impegnata nelle singole VM. È possibile virtualizzare più tipi di server e applicazioni rispetto al passato. Questo è vero poiché gli ambienti informatici stavano iniziando a diventare completamente virtuali.
LVM è terribile ...
Quando la funzionalità di hot-add completa a livello di VM era attiva e comune (2011-2012), stavo lavorando con un'azienda che si sforzava di mantenere il tempo di attività delle VM dei propri clienti a qualsiasi costo ( stupido ). Quindi questo includeva aumenti della CPU / RAM VMware online e il ridimensionamento del disco LVM rischioso su VMDK esistenti. La maggior parte dei sistemi Linux in questo ambiente erano singole configurazioni VMDK con partizioni ext3 su LVM. Ciò è stato terribile perché il livello LVM ha aggiunto complessità e rischi inutili alle operazioni. A corto di spazio in / usr, ad esempio, potrebbe tradursi in una catena di decisioni sbagliate che alla fine significava ripristinare un sistema dai backup ... Ciò era parzialmente legato al processo e alla cultura, ma comunque ...
Lo snobismo della partizione ...
Ho colto l'occasione per provare a cambiarlo. Sono un po ' snob in Linux e sento che i filesystem dovrebbero essere separati per esigenze di monitoraggio e operative. Inoltre, non mi piace LVM, specialmente con VMware e la capacità di fare ciò di cui stai chiedendo. Quindi ho ampliato l'aggiunta dei file VMDK alle partizioni che potrebbero potenzialmente crescere. / opt, / var, / home potrebbe ottenere i propri file di macchine virtuali, se necessario. E quelli sarebbero dischi grezzi. A volte questo era un metodo più semplice per espandere al volo una particolare partizione sottodimensionata.
Obamacare ...
Con l'onboarding di un client di alto profilo , mi è stato affidato il compito di progettare il modello di riferimento di VM Linux che sarebbe stato usato per creare il loro ambiente applicativo estremamente visibile. I requisiti di sicurezza dell'applicazione richiedevano un set unico di montaggi , quindi hanno collaborato con gli sviluppatori per provare a stipare le partizioni di non crescita su un VMDK e quindi aggiungere VMDK separati per ogni mount che aveva un potenziale di crescita o che aveva requisiti specifici (crittografia, auditing, ecc.) Quindi, alla fine, queste VM erano composte da 5 o più VMDK, ma offrivano la migliore flessibilità per il futuro ridimensionamento e protezione dei dati.
Cosa faccio oggi ...
Oggi, il mio progetto generale per Linux e filesystem tradizionali è il sistema operativo su un VMDK sottile (partizionato) e VMDK discreti per qualsiasi altra cosa. Aggiungerò a caldo se necessario. Per i filesystem avanzati come ZFS, è un VMDK per il sistema operativo e un altro VMDK che funge da zpool ZFS e può essere ridimensionato, scolpito in file system ZFS aggiuntivi, ecc.