LVM2 создание, сопровождение, удаление

Администрирование > Разное

Менеджер логических томов (LVM – англ. Logical Volume Manager) — предоставляет собой дополнительный уровень абстракции между физическими/логическими дисками (привычными разделами, с которыми работает fdisk и аналогичные программы) и файловой системой. 

Это достигается путём разбивки изначальных разделов на небольшие блоки (экстенты, обычно 4—32 МБайт) и объединения их в единый виртуальный том, точнее группу томов (volume group), которая далее разбивается на логические тома (logical volume). Для файловой системы логический том представлен как обычное блочное устройство, хотя отдельные экстенты тома могут находиться на разных физических устройствах (и даже сам экстент может быть распределён подобно RAID). LVM увеличивает гибкость файловой системы, однако, являясь просто промежуточным слоем, не отменяет ограничения и использование других слоёв и усложняет работу. То есть, по-прежнему нужно создавать и изменять разделы, форматировать их.(c)Wikipedia
Не буду описывать детальное описание технологии, цель немного другая – написать краткую инструкцию по созданию, сопровождению и удалению LVM системы. Описываемая версия – 2, первая реализация устарела и ее использование нецелесообразно.

Ядро(актуально для Gentoo)

Перед тем как начать необходимо убедиться что LVM поддерживается ядром. Должна быть обязательно включена опция CONFIG_BLK_DEV_DM.

1 # grep _DM /proc/config.gz
2 CONFIG_BLK_DEV_DM=y

Если же поддержка не включена, необходимо пересобрать ядро с включенными опциями. Главной опций является Device mapper support, остальные реализуют дополнительный функционал в LVM.

01 Device Drivers  —>[*] Multiple devices driver support (RAID and LVM)  —>   Device mapper support
02 [ ]     Device mapper debugging support
03 < >     Crypt target support
04 < >     Snapshot target
05 < >     Mirror target
06 < >     Zero target
07 < >     Multipath target
08 < >     I/O delaying target
09 [ ]     DM uevents
10 < >     Bad Block Relocation Device Target


Разобравшись с ядром, ставим пакет для работы с LVM

1 # emerge lvm2


Перед созданием LVM на диске необходимо указать тип раздела LVM – 0x8e в любом из редакторов, типа fdisk/cfdisk.

1. Создание.

1 # pvcreate /dev/sdb1 /dev/sdb2 //создание физического тома (physical volume)
2 # vgcreate volgroup00 /dev/sdb1 //создание группы томов (volume group)
3 # vgextend volgroup00 /dev/sdb2 //добавление нового раздела в группу томов
4 # pvdisplay /dev/sdb2 //отображение атрибутов физического тома
5 # lvcreate -L20G -ntest01 volgroup00 //создание логического тома с именем test размером 20Гб


Размер тома можно создавать по количеству экстентов, их число в группе томов определяется через vgdsplay:

1 # vgdisplay |grep “Total PE”
2 Total PE              17878


Таким образом можно создать логический том, с размером меньше или равному количеству экстентов:

1 # lvcreate -l 10000 volgroup00 -n test02


Теперь когда логический том создан над ним можно выполнять теже действия как и с обычным разделом, т.е. его можно форматировать, монтировать, переносить информацию и проч.

1 # mkreiserfs /dev/volgroup00/test01 //форматирование логического тома под ReiserFS
2 # mount /dev/volgroup00/test01 /mnt/lvmtest //монтирование логического тома
3 # cp -a /etc/ /mnt/lvmtest //копирование


2. Сопровождение LVM.

Увеличение размера логического тома

После увеличения логического тома, необходимо увеличить размер файловой системы. Для каждой ФС свой метод. Причем в каждом случае есть свои нюансы:

  • Перед изменением размера ФС Ext2 необходимо отмонтировать раздел (размер Ext3/Ext4 изменяется на лету).
  • Ext4 увеличивается только средством resize2fs. В fsadm поддержка Ext4 вероятно добавится позже.
  • Увеличивать размер файловых систем Reiserfs можно как в смонтированном, так и в размонтированном состоянии.
  • Размер файловой системы XFS можно увеличить только в смонтированном состоянии. Кроме того, утилите в качестве параметра нужно передать точку монтирования, а не имя устройства.
1 # lvextend -L+4G /dev/volgroup00/test01 //увеличение логического тома на 4Гб
2 # resize2fs /dev/volgroup00/ext //расширение Ext2/Ext3/Ext4 или второй вариант через fsadm (в некоторых источниках пишут про e2fsadm, у себя ее не нашел).
3 # fsadm -l resize /dev/volgroup00/ext 2G //увеличение логического тома Ext2/Ext3, с расширением ФС. На сенятбрь 2009 Ext4 пока не поддерживается
4 # resize_reiserfs -f /dev/volgroup00/reiser //расширение ReiserFS
5 # xfs_growfs /mnt/lvm/xfs //расширение XFS
6 # btrfsctl -r +2g /mnt/lvm/btrfs/ //расширение Btrfs
7 или
8 # btrfsctl -r +2g -A /dev/volgroup00/btrfs //расширение Btrfs


Уменьшение размера логического тома

Логические тома также могут быть уменьшены в размере. В первую очередь необходимо уменьшить размер файловой системы, и только после этого уменьшать размер логического тома. В обратной последовательности можно потерять данные. Также есть некоторые нюансы:

  • Перед изменением размера файловую систему необходимо отмонтировать.
  • При изменении размера Ext2/Ext3 resize2fs’у указывается ее новый размер.
  • Уменьшить XFS и JFS невозможно.
  • Уменьшить Btrfs можно на лету, но лучше не рисковать.
1 # resize2fs /dev/volgroup00/ext2 500m //указание нового размера для ФС Ext2/Ext3
2 # fsadm -l resize /dev/volgroup00/ext3 200M //указание нового размера для ФС Ext2/Ext3
3 # resize_reiserfs -s-1G /dev/volgroup00/reiserfs //уменьшение ФС Reiserfs
4 # btrfsctl -r -2g -A /dev/volgroup00/btrfs //уменьшение ФС Btrfs
5 # lvreduce -L-1G /dev/volgroup00/test01 //уменьшение логического тома

Переименование логического тома

1 # lvrename /dev/volgroup00/volume-oldname /dev/volgroup00/volume-newname


Переименование группы томов

1 # vgrename volgroup_oldname volgroup_newname


Слияние групп томов

1 # vgchange -a n /dev/volgroup02 //отключение логических томов в группе-жертве
2 # vgmerge volgroup01 volgroup02 //поглощение группы volgroup02 группой volgroup01


Разделение группы томов

1 # vgsplit volgroup01 volgroup02 /dev/sdb1 //выделение новой группы томов volgroup02 которая разместится на физическом томе /dev/sdb1


Изменение размера физического тома. Есть несколько нюансов:

  • Увеличение размера физического тома LVM, производится после увеличения раздела программами типа cfdisk/fdisk
  • Уменьшение тома следует проводить после уменьшения файловых систем и логических томов, иначе возможна порча данных


1 # [b]pvresize[/b] /dev/sda1 //увеличение физического тома
2 # [b]pvresize[/b] –setphysicalvolumesize 40G /dev/sda1 //уменьшение физического тома


Создание снимков (Snapshots)

Снимок это доступная только для чтения копия другого тома. При создании снимков необходимо убедиться что запущен dmeventd. При создании снимков с XFS ее предвариетльно надо заморозить – xfs_freeze.

1 # lvcreate -L600M -s -n var-backups /dev/volgroup00/var //создание тома var-backup, как копии тома var
2 # mount /dev/volgroup00/var-backup /mnt/backup //последующее монтирование снимка


Создание зеркала (Mirrors)

Зеркала используются для повышения отказоустойчивости и повышения уровня сохранности информации. Для создания зеркала необходимо 3 физических тома, 2 для зеркала и 1 для журнала. Рекомендуется использовать физические тома размещенные на разных носителях. Использование физических томов с одного носителя сводит на ноль целесообразность использования зеркала, т.к. в случае аппаратного сбоя зеркало оказывается бесполезным. При создании зеркал необходимо убедиться что запущен dmeventd

1 # pvcreate /dev/sda5 /dev/sdb1 /dev/sdc1 //создаем физический том
2 # vgcreate mirror00 /dev/sda5 /dev/sdb1 /dev/sdc1 //создаем группу mirror00
3 # lvcreate -L 5G -n volume00 -m 1 mirror00 //создаем зеркальный том volume00


просмотр информации о логических томах, процент Copy должен достигнуть 100%

1 # lvs
2  
3 LV       VG         Attr   LSize   Origin Snap%  Move Log           Copy%  Convert
4 volume00 mirror00   mwi-a-   5.00G                    volume00_mlog   6.17


проверка использования устройств в созданном зеркале

1 # lvs -a -o +devices
2  
3 LV                  VG         Attr   LSize   Origin Snap%  Move Log           Copy%  Convert Devices
4 volume00            mirror00   mwi-a-   5.00G                    volume00_mlog 100.00         volume00_mimage_0(0),volume00_mimage_1(0)
5 [volume00_mimage_0] mirror00   iwi-ao   5.00G                                                 /dev/sda5(0)
6 [volume00_mimage_1] mirror00   iwi-ao   5.00G                                                 /dev/sdb1(0)
7 [volume00_mlog]     mirror00   lwi-ao   4.00M

/dev/sdc1(0)

1 # mkreiserfs /dev/mirror00/volume00 //форматирование
2 # mount /dev/mirror00/volume00 /var/data //монтирование


Преобразование логического тома в зеркальный

1 # vgextend volgroup01 /dev/sdc1 /dev/sdd1 //добавление новых физических томов в группу
2 # lvconvert -m 1 /dev/volgroup01/volume-new //преобразование обычного тома в зеркальный


Удаление томов и групп

Логические тома перед удалением должны быть отмонтированы.

1 # vgreduce volgroup00 /dev/sdb1 //удаление физического тома из группы
2 # lvremove /dev/volgroup00/test01 //удаление логического тома
3 # vgremove volgroup00 //удаление группы томов
4 # pvremove /dev/sdc1 //удаление физического тома



команды LVM2:

pvs отчетная информация о физических томах
vgs отчетная информация о группах томов
lvs отчетная информация о логических томах
pvck проверка метаданных на физических томах
vgck проверка метаданных в группах томов
pvscan сканирование устройств на наличие физических томов
pvcreate создание физического тома
pvdisplay показ атрибутов физического тома
pvchange смена атрибутов физического тома
pvresize изменение размера физического тома
pvremove удаление физического тома
pvmove перенос физических экстентов
vgscan сканирование дисков на наличие групп томов
vgcreate создание группы томов
vgdisplay показ атрибутов группы томов
vgchange смена атрибутов группы томов
vgextend добавление физического тома в группу томов
vgreduce уменьшение группы томов
vgmerge слияние двух групп томов в одну
vgsplit разделение одной группы томов на две
vgrename переименование группы томов
vgexport делает группу неузнаваемой для системы, для дальнейшего переноса в другую систему
vgimport делает экспортированную группу томов узнаваемой
vgcfgbackup резервное копирование области дескрипторов группы томов
vgcfgrestore восстанавливает область дескрипторов группы томов
vgremove удаление группы томов
lvscan сканирование дисков на наличие логических томов
lvcreate создание логического тома
lvdisplay показ атрибутов логических тома
lvchange смена атрибутов логического тома
lvextend увеличение рамера логического тома
lvreduce уменьшение размералогического тома
lvrename переименование логического тома
lvresize изменение размера логического тома
lvconvert преобразует логический том с обычного в зеркальный или снимок
lvremove удаление логического тома
vgmknodes заново создает каталог группы томов и специальные файлы логических томов
vgconvert смена формата метаданных в группе томов (метаданные формата LVM1 в формат LVM2)
fsadm утилита для проверки и изменения размеров файловых систем
lvmdump создание дампы для диагностических целей
lvmsadc собирает данные об активности
lvmsar создает отчет об активности
lvmdiskscan сканирование всех устройств видимых LVM

Источник:
http://gnu.su/plugins/forum/forum_viewtopic.php?217.post

Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>