LVM - это система управления дисковым пространством, находящаяся поверх логических разделов. Она даёт возможность более гибко использовать дисковое пространство. Основная область применения LVM - файловые хранилища, базы данных. Также её можно использовать на рабочих станциях и домашних персональных компьютерах.
Существует 2 версии LVM (Logical Volume Manager):
- LVM 1 - использовалась с ядрами версии 2.4.
- LVM 2 - новая и улучшенная версия, использует драйвер device mapper, поддерживаемый в ядрах 2.6 и в 2.4 (с патчами).
Иерархия LVM
Система, обычно используемая в Linux:
- жесткие диски: /dev/hda,/dev/sda,/dev/cciss/c0d0идр.
- логические разделы: /dev/hda1,/dev/sda2,/dev/cciss/c0d0p3идр., которые форматируются и монтируются в дерево каталогов.
Помимо них LVM включает в себя элементы:
PV(PhisycalVolume)- диски или разделы жёсткого диска, имеющие тип 8E (LVM), входят в состав VG.VG(VolumeGroup)- группы томов, объединяют пространство PV и могут быть нарезаны на один или несколько LV.LV(LogicalVolume)- логический том, представляется блоковым устройством, который можно использовать в операционной системе как логический раздел диска.PE(PhysicalExtent)- каждый PV разбивается на фрагменты. Аналог сектора для жесткого диска. Они имеют одинаковый размер с LE в составе своей группы томов.LE(LogicalExtent)- фрагмент VG, каждому такому логическому екстенду (LE) соответствует PE на PV. Далее из них собирается логические тома (LV).
Преимущества
- В отличии от логических разделов объекты VG и LV могут принимать осмысленные имена: VG home содержат LV vasya, petya. При этом home/vasya можно отформатировать в ext3, а home/petya - в reiserfs и, соответственно, cмонтировать в их домашние каталоги.
- Гибкость изменения размера: после изменения размера логического раздела /dev/hda1 с помощью fdisk требуется перезагрузка операционной системы. Изменение размера в LVM происходит «на лету». Для серверных систем это огромное преимущество.
- Использование нескольких дисков как один раздел. В теории можно использовать LVM, но практика показывает, что для большей скорости и надёжности лучше использовать RAID (md-software или hardware).
Создание LVM
Подготовка разделов
Создание разделов
Для примера создадим с чистого диска:
# /sbin/fdisk /dev/sdb Command (m for help): p Disk /dev/sdb: 2684 MB, 2684354560 bytes 255 heads, 63 sectors/track, 326 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System
Чистая таблица разделов. Создадим два раздела: на 1Gb и оставшиеся 1.6Gb:
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-326, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-326, default 326): +1G Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (124-326, default 124): Using default value 124 Last cylinder or +size or +sizeM or +sizeK (124-326, default 326): Using default value 326 Command (m for help): p Disk /dev/sdb: 2684 MB, 2684354560 bytes 255 heads, 63 sectors/track, 326 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 123 987966 83 Linux /dev/sdb2 124 326 1630597+ 83 Linux
Изменение типа разделов
Измените тип раздела, сейчас используется Linux (Id 83),
Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): L
Если нажать
L, то можно увидеть весь перечень доступных ID, но нам важен номер того, который называется Linux LVM (8E)Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM)
Сохранение изменений
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Устройство или ресурс занято. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.
Откат изменений
Если Вы где-то ошиблись - вместо
w нажмите q.Перезагрузка
# reboot
Инициализация PV
# /usr/sbin/pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created
При инициализации целого диска - таблица разделов должна быть предварительно стёрта:
# dd if=/dev/zero of=/dev/sdb bs=512 count=1 # /usr/sbin/pvcreate /dev/sdb
Инициализация VG
Просмотр существующих групп
# /usr/sbin/vgscan
Создание группы
# /usr/sbin/vgcreate vg00 /dev/sdb1 /dev/sdb2 Volume group "vg00" successfully created
Создание LV
# /usr/sbin/lvcreate -n music -L 2G vg00
создаст LV объемом 2Gb в группе томов vg00.
Имена устройств
# /dev/mapper/VG-LV
где:
VG- имя группы томовLV- имя тома.
Использование LV
Форматирование и монтирование раздела на LVM
Далее с полученным устройством можно делать то же, что и с обычными логическими дисками: форматировать и монтировать как файловую систему:
# mkfs.ext3 /dev/vg00/music
# mkdir -p /media/music
# mount -t ext3 o user,rw /dev/vg00/music /media/music
# df -h /media/music
Файловая система Разм Исп Дост Исп% смонтирована на
/dev/mapper/vg00-music
2,0G 68M 1,9G 4% /media/music
Изменение размера раздела
Определение количества свободного места в VG
# /usr/sbin/vgdisplay vg00 .... Free PE / Size 127 / 508,00 MB ....
где
- 127 - количество PE, а 508,00 - размер LV в MB.
Изменение размера раздела
# umount /media/music # /usr/sbin/lvresize -L +508M /dev/vg00/music # /sbin/e2fsck -f /dev/vg00/music # /sbin/resize2fs /dev/vg00/music # mount /media/music # df -h /media/music
Удаление LV из группы томов
# umount /dev/vg00/music # /usr/sbin/lvremove /dev/vg00/music Do you really want to remove active logical volume "music"? [y/n]: y Logical volume "music" successfully removed
Список команд для работы с LVM
dmsetup- низкоуровневая работа с драйвером device-mapperlvm- инструмент для настройки LVMlvmdiskscan- сканирует доступные диски, показывает их размер и принадлежность к PV LVM
Physical Volume
pvcreate- инициализация устройства как PVpvchange- изменение атрибутов PVpvremove- удаление неиспользуемого PVpvmove- перемещение PV между различными устройствамиpvresize- изменение размера PV занятой VGpvscan- сканирование дисков на предмет PVpvs- вывод информации о PVpvdisplay- вывод атрибутов PV
Volume Group
vgcfgbackup- резервное копирование области описания VG в файлvgcfgrestore- восстановление области описания VG из файлаvgconvert- конвертация метаданных из LVM1 в LVM2vgcreate- создание VGvgremove- удаление VGvgchange- изменение параметров VGvgrename- переименовывание VGvgmerge- склеивание двух VGvgsplit- разделение одной VG на двеvgscan- сканирование дисков на наличие VGvgdisplay- вывод атрибутов VGvgs- вывод информации о VGvgexport- отключение VGvgimport- подключение VGvgextend- добавление PV в VGvgreduce- удаление неиспользуемых PV из VGvgck- проверка целостности метаданных VG.vgmknodes- пересоздание файлов для VG в каталоге /dev
Logical Volume
lvcreate- создание LVlvremove- удаление LVlvrename- переименовывание LVlvchange- изменение параметров LVlvresize- изменение размера LVlvextend- увеличение размера LVlvreduce- уменьшение размера LVlvscan- поиск LV в VGlvdisplay- вывод атрибутов LVlvs- вывод информации о LV
No comments:
Post a Comment