Назад | Перейти на главную страницу

Резервирование свободного места в тонком пуле LVM для виртуальной машины администратора

Моя цель - это конфигурация по умолчанию для тонкого предоставления LVM, которая является достаточно гибкой, чтобы зарезервировать запас безопасности для одного LV административной виртуальной машины (VolA) по сравнению с пользовательскими LV (VolU1, VolU2, VolU3 ...), даже если разные администраторы (на разных установках) использовать очень разные объемы дискового пространства на соответствующих виртуальных машинах администратора.

Например, один администратор может использовать 4 ГБ в VolA System1, а другой администратор может использовать 50 ГБ в VolA System2. Это означает, что том фиксированного размера в 50 ГБ будет неприемлемым для первого администратора (и наоборот), поэтому для гибкости требуется размещение VolA в тонком пуле с другими «пользовательскими» томами виртуальных машин. Для этих систем невозможно настроить установку вручную.

Дополнительные реквизиты:

Проблема возникает, когда неопытность пользователя, ошибки или попытки DoS в пользовательских виртуальных машинах вызывают распределение всего оставшегося свободного места для своих пользовательских томов (VolU1, VolU2 и т. д.) и оставить VolA без свободного места, а виртуальная машина администратора не сможет загрузиться или нормально работать.

Решение / отказоустойчивость должно быть максимально автоматическим и пассивным. Идеальным решением может быть набор свойств LVM для всех пользовательских LV, позволяющий им выделять пространство только тогда, когда poolFree < N, а у VolA такого ограничения нет. Но мне не удалось найти такую ​​функцию в Linux LVM, и мне нужны предложения.


После некоторого исследования кажется, что решение может включать использование настройки для dmeventd для выполнения команд (например, «приостановить все виртуальные машины») при достижении порога. Более новая страница руководства для dmeventd Я нашел в Интернете, что это возможно с dmeventd/thin_command настройка в lvm.conf; похоже, эта функция была добавлена ​​в мае 2017 года, поэтому мне нужно было найти бэкпорт.

Другой вариант - добавить в rsyslog.conf правило вроде следующего:

:msg, contains, "some dmeventd message"  ^my_pause_vm_script

Если вы хотите запретить пользователям чрезмерно выделять тот же тонкий пул, что и ваш хост администратора, вы можете использовать другой подход с этим распределением.

Вы можете выделить административные рабочие нагрузки в отдельный тонкий пул. А если вы перераспределяете, это, как правило, хороший подход - предоставить более эластично назначаемое резервное хранилище вашим пулам, чтобы справиться с временным перераспределением. Хороший простой способ сделать это - зарезервировать несколько больших медленных LUN в качестве дешевого «аварийного» PV для ваших пулов.

Я знаю, что LVM может выполнить это экстренное расширение, используя свою собственную конфигурацию, но я пишу это на бутерброде с ветчиной, который едва ускользает от своего собственного пути, поэтому мне придется найти эту документацию позже.