Процесс установки и использования менеджера логических томов LVM на Linux-системе.
LVM (Logical Volume Manager), менеджер логических томов - это система управления дисковым пространством, абстрагирующаяся от физических устройств. Она позволяет эффективно использовать и легко управлять дисковым пространством. LVM обладает хорошей масштабируемостью, уменьшает общую сложность системы. У логических томов, созданных с помощью LVM, можно легко изменить размер, а их названия могут нести большую смысловую нагрузку, в отличие от традиционных /dev/sda, /dev/hda ... Реализации менеджеров логических томов существуют практически во всех UNIX-подобных операционных системах. Зачастую они сильно отличаются в реализации, но все они основаны на одинаковой идее и преследуют аналогичные цели. Для работы с системой LVM ее нужно инициализировать командами:
# vgscan
# vgchange -ay
Первая команда сканирует диски на предмет наличия групп томов, вторая активирует все найденные группы томов. Аналогично для завершения всех работ, связанных с LVM, нужно выполнить деактивацию групп:
# vgchange -an
Первые две строки нужно будет поместить в скрипты автозагрузки (если их там нет), а последнюю можно дописать в скрипт shutdown.
Перед использованием диска или раздела в качестве физического тома необходимо его инициализировать:
Для целого диска:
# pvcreate /dev/hdb
Эта команда создает в начале диска дескриптор группы томов.
Если вы получили ошибку инициализации диска с таблицей разделов -- проверьте, что работаете именно с нужным диском, и когда полностью будете уверены в том, что делаете, выполните следующие команды
# dd if=/dev/zero of=/dev/diskname bs=1k count=1
# blockdev --rereadpt /dev/diskname
Эти команды уничтожат таблицу разделов на целевом диске.
Для разделов:
Установите программой fdisk тип раздела в 0x8e.
# pvcreate /dev/hdb1
Команда создаст в начале раздела /dev/hdb1 дескриптор группы томов.
Для создания группы томов используется команда 'vgcreate'
# vgcreate vg00 /dev/hda1 /dev/hdb1
Замечание: если вы используете devfs важно указывать полное имя в devfs, а не ссылку в каталоге /dev. Таким образом приведенная команда должна выглядеть в системе с devfs так:
# vgcreate vg00 /dev/ide/host0/bus0/target0/lun0/part1 /dev/ide/host0/bus0/target1/lun0/part1
Кроме того, вы можете задать размер экстента при помощи ключа "-s", если значение по умолчанию в 32Мб вас не устраивает. Можно, также, указать ограничения возможного количества физических и логических томов.
После перезагрузки системы или выполнения команды vgchange -an, ваши группы томов и логические тома находятся в неактивном состоянии. Для их активации необходимо выполнить команду
# vgchange -a y vg00
Убедитесь, что группа томов не содержит логических томов. Как это сделать, показано в следующих разделах. Деактивируйте группу томов:
# vgchange -a n vg00
Теперь можно удалить группу томов командой:
# vgremove vg00
Для добавления предварительно инициализированного физического тома в существующую группу томов используется команда 'vgextend':
# vgextend vg00 /dev/hdc1
^^^^^^^^^ новый физический том
Убедитесь, что физический том не используется никакими логическими томами. Для этого используйте команду 'pvdisplay':
# pvdisplay /dev/hda1
--- Physical volume ---
PV Name /dev/hda1
VG Name vg00
PV Size 1.95 GB / NOT usable 4 MB [LVM: 122 KB]
PV# 1
PV Status available
Allocatable yes (but full)
Cur LV 1
PE Size (KByte) 4096
Total PE 499
Free PE 0
Allocated PE 499
PV UUID Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7
Если же физический том используется, вам нужно будет перенести данные на другой физический том. Эта процедура будет описана в следующих разделах. После этого можно использовать 'vgreduce' для удаления физических томов:
# vgreduce vg00 /dev/hda1
Для того, чтобы создать логический том "lv00", размером 1500Мб, выполните команду:
# lvcreate -L1500 -nlv00 vg00
Для создания логического тома размером в 100 логических экстентов с расслоением по двум физическим томам и размером блока данных 4 KB:
# lvcreate -i2 -I4 -l100 -nlv01 vg00
Если вы хотите создать логический том, полностью занимающий группу томов, выполните команду vgdisplay, чтобы узнать полные размер группы томов, после чего используйте команду lvcreate.
# vgdisplay vg00 | grep "Total PE"
Total PE 10230
# lvcreate -l 10230 vg00 -n lv02
Эти команды создают логический том testvg, полностью заполняющий группу томов.
Логический том должен быть размонтирован перед удалением:
# umount /dev/vg00/home
# lvremove /dev/vg00/home
lvremove -- do you really want to remove "/dev/vg00/home"? [y/n]: y
lvremove -- doing automatic backup of volume group "vg00"
lvremove -- logical volume "/dev/vg00/home" successfully removed
Для увеличения логического тома вам нужно просто указать команде lvextend до какого размера вы хотите увеличить том:
# lvextend -L12G /dev/vg00/home
lvextend -- extending logical volume "/dev/vg00/home" to 12 GB
lvextend -- doing automatic backup of volume group "vg00"
lvextend -- logical volume "/dev/vg00/home" successfully extended
В результате /dev/vg00/home увеличится до 12Гбайт.
# lvextend -L+1G /dev/vg00/home
lvextend --
extending logical volume "/dev/vg00/home" to 13 GB
lvextend -- doing automatic backup of volume group "vg00"
lvextend -- logical volume "/dev/vg00/home" successfully extended
Эта команда увеличивает размер логического тома на 1Гб.
После того как вы увеличили логический том, необходимо соответственно увеличить размер файловой системы. Как это сделать зависит от типа используемой файловой системы.
По умолчанию большинство утилит изменения размера файловой системы увеличивают ее размер до размера соответствующего логического тома. Так что вам не нужно беспокоится об указании одинаковых размеров для всех команд.