Esta es una pregunta interesante...
No creo que haya una respuesta definitiva, pero puedo dar un contexto histórico sobre cómo las mejores prácticas en torno a este tema pueden haber cambiado con el tiempo.
He tenido que soportar miles de máquinas virtuales Linux implementadas en diversas formas en entornos VMware desde 2007. Mi enfoque para la implementación ha evolucionado, y he tenido la experiencia única (a veces desafortunada ) de heredar y refactorizar sistemas creados por otros ingenieros.
Los viejos tiempos...
En el pasado (2007), mis primeros sistemas VMware se dividieron al igual que mis sistemas de metal desnudo. En el lado de VMware, estaba usando archivos gruesos divididos de 2GB para comprender los datos de la VM, y ni siquiera pensé en la noción de múltiples VMDK, ¡porque estaba feliz de que la virtualización pudiera funcionar!
Infraestructura virtual ...
Con ESX 3.5 y las primeras versiones de ESX / ESXi 4.x (2009-2011), estaba usando Linux, particionado como normal sobre archivos VMDK aprovisionados Thick monolíticos . Tener que preasignar el almacenamiento me obligó a pensar en el diseño de Linux de manera similar a como lo haría con el hardware real. Estaba creando VMDK de 36 GB, 72 GB, 146 GB para el sistema operativo, particionando el /, / boot, / usr, / var, / tmp habitual, y luego agregué otro VMDK para la partición de "datos" o "crecimiento" (ya sea / inicio, / opt o algo específico de la aplicación). Nuevamente, el punto óptimo en el tamaño de los discos duros físicos durante esta era fue de 146 GB, y dado que la preasignación era un requisito (a menos que usara NFS), necesitaba ser conservador con el espacio.
El advenimiento del aprovisionamiento delgado
VMware desarrolló mejores funciones en torno al aprovisionamiento delgado en versiones posteriores de ESXi 4.x, y esto cambió la forma en que comencé a instalar nuevos sistemas. Con el conjunto completo de características que se agregó en 5.0 / 5.1, un nuevo tipo de flexibilidad permitió diseños más creativos. Eso sí, esto se mantenía al ritmo de las capacidades mejoradas en las máquinas virtuales, en términos de cuántos vCPUS y cuánta RAM podría comprometerse con máquinas virtuales individuales. Se podrían virtualizar más tipos de servidores y aplicaciones que en el pasado. Esto es correcto ya que los entornos informáticos comenzaban a ser completamente virtuales.
LVM es horrible ...
Para cuando la funcionalidad completa de agregar en caliente a nivel de VM estaba en su lugar y era común (2011-2012), estaba trabajando con una empresa que se esforzó por mantener el tiempo de actividad de las máquinas virtuales de sus clientes a cualquier costo ( estúpido ). Por lo tanto, esto incluyó el aumento de CPU / RAM VMware en línea y el cambio de tamaño de disco LVM arriesgado en VMDK existentes. La mayoría de los sistemas Linux en este entorno eran configuraciones de VMDK individuales con particiones ext3 sobre LVM. Esto fue terrible porque la capa LVM agregó complejidad y riesgos innecesarios para las operaciones. Quedarse sin espacio en / usr, por ejemplo, podría dar lugar a una cadena de malas decisiones que eventualmente significarían restaurar un sistema a partir de copias de seguridad ... Esto estuvo parcialmente relacionado con el proceso y la cultura, pero aún así ...
El esnobismo de la partición ...
Aproveché esta oportunidad para intentar cambiar esto. Soy un poco snob de partición en Linux y creo que los sistemas de archivos deben estar separados para las necesidades operativas y de monitoreo. Tampoco me gusta LVM, especialmente con VMware y la capacidad de hacer lo que me pides. Así que amplié la adición de archivos VMDK a particiones que potencialmente podrían crecer. / opt, / var, / home podrían obtener sus propios archivos de máquina virtual si fuera necesario. Y esos serían discos en bruto. A veces, este era un método más fácil para expandir particiones particulares de menor tamaño sobre la marcha.
Obamacare ...
Con la incorporación de un cliente de muy alto perfil , me encargaron el diseño de la plantilla de referencia de VM de Linux que se utilizaría para crear su entorno de aplicación extremadamente visible. Los requisitos de seguridad de la aplicación requerían un conjunto único de montajes , por lo que trabajamos con los desarrolladores para tratar de agrupar las particiones sin crecimiento en un VMDK, y luego agregar VMDK separados para cada montaje que tenía potencial de crecimiento o tenía requisitos específicos (cifrado, auditoría, etc.) Entonces, al final, estas máquinas virtuales estaban compuestas de 5 o más VMDK, pero proporcionaban la mejor flexibilidad para el cambio de tamaño y la protección de datos en el futuro.
Lo que hago hoy ...
Hoy, mi diseño general para Linux y sistemas de archivos tradicionales es el sistema operativo en un VMDK delgado (particionado) y VMDK discretos para cualquier otra cosa. Agregaré en caliente según sea necesario. Para sistemas de archivos avanzados como ZFS, es un VMDK para el sistema operativo, y otro VMDK que sirve como un conjunto de ZFS y puede redimensionarse, dividirse en sistemas de archivos ZFS adicionales, etc.