Ответ
Использовал LVM для гибкого управления дисковым пространством на серверах баз данных, файловых хранилищах и в виртуальных машинах. Основное преимущество — возможность «на лету» расширять файловые системы и создавать снапшоты для консистентных бэкапов.
Типичный сценарий — добавление нового диска и расширение существующего тома:
-
Обнаружение и подготовка диска:
# Находим новый диск (например, /dev/sdb) lsblk # Создаем на нем раздел с типом LVM (8e) sudo fdisk /dev/sdb # -> n, p, 1, Enter, Enter, t, 8e, w -
Расширение группы томов (VG):
# Создаем физический том на новом разделе sudo pvcreate /dev/sdb1 # Расширяем существующую группу томов 'vg_data' sudo vgextend vg_data /dev/sdb1 -
Расширение логического тома (LV) и файловой системы:
# Расширяем логический том 'lv_app' на 50 ГБ sudo lvextend -L +50G /dev/vg_data/lv_app # Расширяем файловую систему ext4 внутри тома БЕЗ ПРОСТОЯ sudo resize2fs /dev/vg_data/lv_app # Для XFS команда другая: # sudo xfs_growfs /mount/point
Практическое применение в DevOps:
- Снапшоты для бэкапов: Перед обновлением БД создавал снапшот, что позволяло мгновенно откатиться в случае проблем.
sudo lvcreate -L 10G -s -n db_backup_snap /dev/vg_data/lv_database # ... выполняем обновление ... # Если что-то пошло не так: sudo lvconvert --merge /dev/vg_data/db_backup_snap - Шаблонизация в облаке: В образах VM (например, для OpenStack или VMware) заранее создавал тонкие LV, чтобы при развертывании инстанса можно было легко изменить размер корневого раздела через cloud-init.
- Мониторинг: Следил за свободным местом в группе томов (
vgs,pvs) и настраивал алерты в Prometheus при заполнении более чем на 80%.