Работа с LVM (шпаргалка)
Вступление / Постановка задачи
Это очень короткая шпаргалка по LVM – основные команды для создания тома.
Имеем виртуальный диск /dev/xvdb
нужно сделать на нем том LVM с возможностью снапшотов (т.к. том не должен занять весь физический диск).
Итак:
Создаем раздел тип раздела 8e
fdisk -l /dev/xvdb Диск /dev/xvdb: 10.7 ГБ, 10737418240 байт 255 heads, 63 sectors/track, 1305 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xe90a3c2f Устр-во Загр Начало Конец Блоки Id Система /dev/xvdb1 1 1305 10482381 8e Linux LVM
Создаем физический том
pvcreate /dev/xvdb1
Создаем группу томов
vgcreate <имя_группы> /dev/xvdb1
Смотрим какой получился размер у группы томов
число физических экстентов (2558):
~# vgdisplay | grep "Total PE" Total PE 2558
размер физического экстента (4,00 MiB):
~# vgdisplay | grep "PE Size" PE Size 4,00 MiB
Допустим мы хотим зарезервировать 400Мб под снапшоты, 400Мб = 100 физических экстентов, тогда размер LVM-тома должен быть “Total PE”-100 = 2458.
Создаем LVM-том нужного размера:
lvcreate -l 2458 --name <имя_раздела> <имя_группы>
Узнать есть ли свободное место на физическом томе под снапшоты (400,00 MiB free):
pvscan PV /dev/xvdb1 VG mysql lvm2 [9,99 GiB / 400,00 MiB free] Total: 1 [9,99 GiB] / in use: 1 [9,99 GiB] / in no VG: 0 [0 ]
Уменьшить раздел
Сперва нужно проверить файловую систему на ошибки
e2fsck -f /dev/pve/data
Затем уменьшаем файловую систему на размер, меньший, чем будет раздел в итоге.
resize2fs /dev/pve/data 900G
Потом уменьшаем раздел LVM
lvreduce -L 1000G /dev/pve/data
И наконец, расширяем файловую систему до полного размера раздела
resize2fs /dev/pve/data
Thin LVM
Должны быть установлены thin-provisioning-tools
apt-get -y install thin-provisioning-tools
Создать пул тонких томов:
lvcreate -L 300G --name data pve lvconvert --type thin-pool pve/data --poolmetadatasize 10G
Проверить chunksize:
lvs -o+chunksize
Создать тонкий том в пуле:
lvcreate -T -V 100G -n thin-volume pve/data
Отобразить все тома включая скрытые
lvs -a
Ключевые моменты в работе тонких томов:
1. При создании тонкого тома дополнительно к исходному тому создаются два скрытых тома под метаданные (один запасной с названием lvol0_pmspare). Если метаданные испортились их можно попробовать восстановить при помощи lvconvert --repair VG/ThinPoolLV
2. Для метаданных (информация о выделенных блоках) сохраняется на отдельном томе (который автоматически создается), и когда на нем кончается место, то происходит порча метаданных и файловвых систем на тонких томах (т.к. ошибка записи будет).
3. Thin-LVM поддерживает автоувеличение томов, в том числе и тома metadata (что бы увеличить метадату, нужно что бы были свободные екстенты на vg, по этому под нужно всегда оставлять свободное место на VG!!). Автоувеличение настраивается в /etc/lvm.conf (thin_pool_autoextend)
Enjoy