====== LVM (Logical Volume Manager) ======
FIXME
Менеджер логических томов (Logical Volume Manager)
|||LV|-@2|VG|-@8|PV|LV=**[[#LV|LV]]**|VG=**[[#VG|VG]]**|PV=**[[#PV|PV]]**
||||:||||||||:|
|root|C||||||||D|sda1|
||||:||||||||:|
|usr|C||||||||D|sda2|
||||:||||||||:|
|home|C||||||||D|sdb|
||||:||||||||:|
|var|J||||||||L|sdc|
====== Установка ======
apt install lvm2
====== Иерархический список блочных устройств ======
Команда: ''lsblk''
Пример:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 298,1G 0 disk
├─sda1 8:1 0 487M 0 part /boot/efi
├─sda2 8:2 0 244M 0 part /boot
└─sda3 8:3 0 297,4G 0 part
├─vg01-root 254:0 0 20G 0 lvm /
├─vg01-swap 254:1 0 7,8G 0 lvm [SWAP]
└─vg01-home 254:2 0 269,6G 0 lvm /home
sr0 11:0 1 1024M 0 rom
====== Настройка ======
Папка: ''/etc/lvm''
===== Команды =====
|''lvm''|Командная оболочка для работы с LVM2|
|''lvmconf''|LVM configuration modifier|
|''lvmdiskscan''|scan for all devices visible to LVM2|
|''lvmdump''|create lvm2 information dumps for diagnostic purposes|
**Установка графического интерфейса для управления LVM**
apt-get install system-config-lvm
====== PV ======
Физический том (Physical volume)
Обычно это раздел на диске или весь диск. В том числе, устройства программного и аппаратного RAID (которые уже могут включать в себя несколько физических дисков). Физические тома входят в состав группы томов.
===== Команды =====
|''pvchange''|Изменить атрибуты физического тома|
|''pvck''|Проверка физического тома|
|''pvcreate''|Инициализировать физический том для использования в LVM|
|''pvremove''|Удалить метку LVM с физического тома|
|''pvresize''|Изменить размер физического тома, использующегося в группе томов|
|''pvscan''|Показать список всех физических томов|
===== pvdisplay =====
Отображает карту распределения физических томов:
* кратко:pvdisplay -C
* подробно:pvdisplay -m
===== pvmove =====
Перенос эстенты с одного физического тома на другой.
Перенос логического тома [[#LV|LV]] из одного физического тома ([[#PV|PV]]) в другой, внутри одной группы томов([[#VG|VG]])
FIXME
==== Пример ====
Создание нового раздела с использованием [[parted:parted|GNU parted]]
# parted
(parted) select /dev/sdb
(parted) mklabel msdos
(parted) mkpart primary 0 100%
Добавление физического тома ([[#PV|PV]]) в группу томов([[#VG|VG]])
pvcreate /dev/sdb1
vgextend vg01 /dev/sdb1
pvdisplay
Перенос логического тома ''lv001'' с ''/dev/sda5'' на ''/dev/sdb1''
pvmove -n lv001 /dev/sda5 /dev/sdb1
===== pvs =====
Показать информацию о физическом томе.
Пример вывода:
PV VG Fmt Attr PSize PFree
/dev/md0 vg-0 lvm2 a-- 223,44g 96,27g
/dev/md1 vg-0 lvm2 a-- 931,38g 681,38g
====== LV ======
Логический том (Logical volume)
Раздел группы томов, эквивалентен разделу диска в не-LVM системе. Представляет собой блочное устройство и, как следствие, может содержать файловую систему.
===== Команды =====
|''lvchange''|Изменить атрибуты логического тома|
|''lvconvert''|convert a logical volume from linear to mirror or snapshot|
|''lvdisplay''|Показать информацию о логическом томе|
|''lvextend''|Увеличить размер логического тома|
|''lvmchange''|(команда устарела, её лучше не использовать)|
|''lvmdiskscan''|Показать список устройств, которые могут быть использованы как физический том|
|''lvmsadc''|Собрать данные об активности использования LVM|
|''lvmsar''|Создать отчёт об активности использования LVM|
|''lvreduce''|Уменьшить размер логического тома|
|''lvresize''|Изменить размер логического тома|
|''lvs''|Показать информацию о логическом томе|
|''lvscan''|Показать список логических томов во всех группах томов|
==== lvcreate ====
Создать логический том
Пример:
1. Создание тома ''home'' в группе томов ''vg'' на устройстве ''/dev/md1''
lvcreate -L 30G -n home vg /dev/md1
2. Создание файловой системы на томе ''home''
mkfs.ext4 /dev/vg/users-home
3. Монтирование тома
mount /dev/vg/home /srv/home
===== lvremove =====
Удалить логический том из системы.
lvremove ИМЯ_ГРУППЫ_ТОМОВ/ИМЯ_ТОМА
Пример:
lvremove vg01/lv001
===== lvrename =====
Переименование логического тома.
Пример:
lvrename /dev/vg01/lv001 /dev/vg01/lv001_test
===== Изменение размеров томов =====
Карту распределения физических томов можно узнать по команде [[#pvdisplay]].
==== Увеличение ====
- Добавляем 95 Гбайт: lvextend -L+95G /dev/mapper/vg--volume_name
можно расширить до максимума (занять всё свободное место): lvextend /dev/mapper/vg--volume_name -l +100%FREE
- Изменяем размер ФС: resize2fs /dev/mapper/vg--volume_name
----
[[https://www.altlinux.org/LVM#Увеличение_логических_томов|LVM — ALT Linux Wiki : Увеличение логических томов]]
==== Уменьшение ====
Для **уменьшения** размера корневой файловой системы нужно чтобы она не была смонтирована, для этого можно загрузить систему с внешнего носителя, например можно использовать [[systemrescuecd:systemrescuecd|]] или [[finnix:finnix|Finnix]].
Например, чтобы уменьшить ''/home'' до 100 Гбайт и за счёт этого увеличить размер ''/root'' нужно выполнить следующие действия:
1. Размонтируем ''/home''
umount /home
2. Выполняем проверку файловой системы
e2fsck -f /dev/mapper/vg01-home
3. Уменьшаем размер файловой системы раздела ''/home'' до 100 Гбайт:
resize2fs /dev/mapper/vg01-home 100G
4. Уменьшаем размер логического тома ''/dev/mapper/vg01-home'' до 100 Гбайт:
lvreduce -L 100G /dev/mapper/vg01-home
5. Расширяем логический том ''/dev/mapper/vg01-root'' до максимально возможного размера:
lvextend -l +100%FREE /dev/mapper/vg01-root
6. Увеличиваем размер файловой системы раздела ''/root'' используя все свободное место.
resize2fs /dev/mapper/vg01-root
7. Монтируем /home
mount /home
8. Смотрим на результат
lsblk
====== VG ======
Группа томов (Volume group)
Группа томов может содержать физические и логические тома.
===== Команды =====
|''vgcfgbackup''|Сделать резервную копию конфигурации группы томов|
|''vgcfgrestore''|Восстановить из резервной копии конфигурацию группы томов|
|''vgchange''|Изменить атрибуты группы томов|
|''vgck''|Проверить целостность группы томов|
|''vgconvert''|Изменить формат метаданных группы томов|
|''vgcreate''|Создать группу томов|
|''vgdisplay''|Показать информацию о группе томов|
|''vgexport''|Разрегистрировать группу томов в системе|
|''vgimport''|Зарегистрировать эскпортированную группу томов в системе|
|''vgimportclone''|import and rename duplicated volume group (e.g. a hardware snapshot)|
|''vgmerge''|Объединить группы томов|
|''vgmknodes''|Создать файлы устройств для групп томов в папке ''/dev/''|
|''vgreduce''|Удалить физический том из группы томов|
|''vgremove''|Удалить группу томов|
|''vgs''|Показать информацию о группах томов|
|''vgscan''|Выполнить поиск групп томов|
|''vgsplit''|Переместить физический том в новую группу томов|
===== vgextend =====
Добавить физический том в группу томов.
Пример добавления тома ''/dev/md1'' в группу ''vg01'':
vgextend vg01 /dev/md1
===== vgreduce =====
Удалить неисправные записи
vgreduce vg01 --removemissing
===== vgrename =====
Переименовать группу томов
vgrename vg01 vg01-new
После изменения имени группы томов при необходимости нужно внести изменения в:
* файлы загрузчика [[grub:grub|GRUB]] командой update-grub
* файл ''/etc/fstab''
====== Extents ======
''Extent'' — это минимальная единица размера (блок) которой можно оперировать при работе с физическим или логическим томом.
|''PE''|Физическая мера (Physical extent)|
|''LE''|Логическая мера (Logical extent)|
Значение по умолчанию: ''4 Мбайт''
:!: Физические тома и группы томов должны состоять из базовых блоков одинакового размера
====== Создание резервной копии логического тома ======
#удаление root-backup
lvremove vg/root-backup
# создание снимка root-backup для резервной копии root в группе томов vg на устройстве /dev/md2
# размер не менее реально размера исходного тома
lvcreate -L 50G -s -n root-backup /dev/mapper/vg-root /dev/md2
# монтирование снимка
mount /dev/vg/root-backup /mnt/root-backup
====== Ссылки ======
[[wpru>LVM]]
[[http://xgu.ru/wiki/LVM|Повесть о Linux и LVM (Logical Volume Manager)]]
[[http://www.ibm.com/developerworks/ru/library/l-lvm2/|Создание томов, управление томами, мгновенные резервные копии и другие возможности LVM2]]
[[http://pingtool.org/ru/online-resize-lvm-partitions-shrink-home-extend-root/|Изменение размеров разделов LVM]]
[[https://habr.com/ru/post/323824/|Ускорение домашнего ESXi 6.5 с помощью SSD кэширования / Хабр]]
[[https://www.altlinux.org/LVM|LVM — ALT Linux Wiki]]
{{tag>Prepare_Storage_Device Linux LVM}}