"По-разному."
Если вы находитесь в среде, которой вы управляете (vmware или kvm или что-то еще), и можете самостоятельно принимать решения о QoS производительности диска, то я бы рекомендовал не использовать LVM внутри ваших виртуальных машин. Это не дает вам большой гибкости, которую вы не могли получить на уровне гипервизора.
Помните, что гипервизор уже эффективно выполняет эти задачи. Если вы хотите иметь возможность произвольного изменения размера файловых систем (хорошая идея), просто создайте отдельный виртуальный диск для каждой файловой системы.
Одна вещь, о которой вы можете подумать, когда идете по этой дороге. Вам даже не обязательно размещать разделы на ваших виртуальных дисках таким образом. Например, вы можете создать виртуальный диск для /home
; это /dev/vdc
внутри вашего вм. При создании файловой системы просто сделайте что-то подобное, mke2fs -j /dev/vdc
а не указывайте раздел.
Это хорошая идея, но ... большинство инструментов (и других администраторов, которые придут за вами) ожидают увидеть разделы на каждом диске. Я бы рекомендовал просто поместить один раздел на диск и покончить с этим. Это означает еще один шаг при изменении размера файловой системы. И не забудьте правильно выровнять свои разделы - начиная с первого раздела размером в 1 МБ, вы получите хорошее правило.
Все это говорит: выполнение всего этого на уровне гипервизора означает, что вам, вероятно, придется перезагрузить виртуальную машину, чтобы изменить размер разделов. Использование LVM позволит вам добавить виртуальный диск в «горячем» режиме (предполагается, что это позволяет ваша комбинация гипервизор / ОС) и расширить файловую систему без перезагрузки. Это определенно плюс.
Между тем, если вы используете облачного провайдера, это более тонко.
Я не очень разбираюсь в Azure, GCP или других мелких игроках, поэтому ничего не могу поделать.
С AWS вы можете последовать моему совету выше, и вы часто будете в порядке. Вы можете (сейчас) оперативно увеличивать размер томов EBS (виртуальных дисков), изменять размеры разделов и т. Д.
Однако в общем случае может иметь смысл поместить все на один большой том EBS и использовать LVM (или, я полагаю, простые разделы). Amazon дает вам ограничение IOPS для каждого тома. По умолчанию этот предел масштабируется в зависимости от размера тома. Например, для gp2
томов вы получаете 3 IOPS за ГиБ (минимум 100 IOPS). См. Https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html.
Для большинства рабочих нагрузок вам потребуется, чтобы все доступные IOPS были доступны для любой файловой системы, в зависимости от необходимости на данный момент. Поэтому имеет смысл создать один большой том EBS, собрать все свои IOPS в одном сегменте и разбить его на разделы / LVM.
Пример:
3 диска с независимыми файловыми системами / областями подкачки, каждый размером 100 ГБ. Каждый получает 300 IOPS. Производительность ограничена 300 IOPS на каждом диске.
1 диск, размером 300 ГБ. Разделы LVM на диске по 100ГБ каждый. Диск получает 900 IOPS. Любой из разделов может использовать все 900 IOPS.