"Dipende."
Se ti trovi in un ambiente che controlli (vmware o kvm o altro) e riesci a prendere le tue decisioni in merito alle prestazioni del disco QoS, ti consiglio di non utilizzare LVM nelle macchine virtuali. Non ti offre molta flessibilità che non potresti ottenere a livello di hypervisor.
Ricorda, l'hypervisor sta già eseguendo in modo efficace queste attività. Se vuoi essere in grado di ridimensionare arbitrariamente i file system (una buona idea), basta creare un disco virtuale separato per ciascun filesystem.
Una cosa che potresti pensare mentre percorri questa strada. Non è nemmeno necessario inserire in questo modo partizioni sui dischi virtuali. Ad esempio, è possibile creare un disco virtuale per /home
; è /dev/vdc
dentro la tua vm. Quando crei il filesystem, fai semplicemente qualcosa di simile mke2fs -j /dev/vdc
invece di specificare una partizione.
Questa è una buona idea, ma ... la maggior parte degli strumenti (e altri amministratori che vengono dopo di te) si aspettano di vedere le partizioni su ogni disco. Consiglierei di mettere una sola partizione sul disco e finirla. Significa comunque un altro passo quando si ridimensiona il filesystem. E non dimenticare di allineare correttamente le tue partizioni: l'avvio della prima partizione a 1 MB è una buona regola empirica.
Detto questo, fare tutto questo a livello di hypervisor significa che probabilmente dovrai riavviare la VM per ridimensionare le partizioni. L'uso di LVM ti consentirebbe di aggiungere a caldo un disco virtuale (supponendo che la tua combinazione hypervisor / OS lo consenta) ed espandere il filesystem senza riavviare. Questo è sicuramente un vantaggio.
Nel frattempo, se stai utilizzando un provider cloud, è più sottile.
Non so molto su Azure, GCP o nessuno dei giocatori più piccoli, quindi non posso farci nulla.
Con AWS puoi seguire i miei consigli sopra e spesso starai bene. Puoi (ora) aumentare le dimensioni dei volumi EBS (dischi virtuali) al volo e ridimensionare le partizioni, ecc.
Tuttavia, nel caso generale, potrebbe avere senso mettere tutto su un unico grande volume EBS e utilizzare LVM (o, suppongo, partizioni semplici). Amazon ti dà un limite IOPS su ogni volume. Per impostazione predefinita, questo limite viene ridimensionato in base alla dimensione del volume. ad esempio, per i gp2
volumi si ottengono 3 IOPS per GiB (minimo 100 IOPS). Vedi https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
Per la maggior parte dei carichi di lavoro, tutti gli IOPS disponibili saranno disponibili per qualsiasi file system, a seconda delle necessità al momento. Quindi ha senso creare un grande volume EBS, ottenere tutti gli IOPS in un secchio e partizionarlo / LVM.
Esempio:
3 dischi con filesystem / aree di scambio indipendenti, ciascuno da 100 GB di dimensioni. Ognuno riceve 300 IOPS. Le prestazioni sono limitate a 300 IOPS su ciascun disco.
1 disco, dimensioni di 300 GB. Partizioni LVM sul disco da 100 GB ciascuna. Il disco ottiene 900 IOPS. Qualsiasi partizione può utilizzare tutti i 900 IOPS.