Форумы

Модераторы: tastelinux, Frizze, BIZON, Audioholic, andrey, Bender, AndreikA, faerie.qveene
Автор Добавил
tastelinux
Срд Окт 13 2010, 02:41
andreika

ID пользователя #1
Зарегистрирован: Птн Апр 30 2010, 12:25

Сообщений: 337
Оригинал.

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

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

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

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

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


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

Device Drivers  —>[*] Multiple devices driver support (RAID and LVM)  —><*>   Device mapper support
[ ]     Device mapper debugging support
< >     Crypt target support
< >     Snapshot target
< >     Mirror target
< >     Zero target
< >     Multipath target
< >     I/O delaying target
[ ]     DM uevents
< >     Bad Block Relocation Device Target


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

# emerge lvm2


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

1. Создание.

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


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

# vgdisplay |grep “Total PE”
Total PE              17878


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

# lvcreate -l 10000 volgroup00 -n test02


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

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


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

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

После увеличения логического тома, необходимо увеличить размер файловой системы. Для каждой ФС свой метод. Причем в каждом случае есть свои нюансы:
  • Перед изменением размера ФС Ext2 необходимо отмонтировать раздел (размер Ext3/Ext4 изменяется на лету).
  • Ext4 увеличивается только средством resize2fs. В fsadm поддержка Ext4 вероятно добавится позже.
  • Увеличивать размер файловых систем Reiserfs можно как в смонтированном, так и в размонтированном состоянии.
  • Размер файловой системы XFS можно увеличить только в смонтированном состоянии. Кроме того, утилите в качестве параметра нужно передать точку монтирования, а не имя устройства.


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


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

Логические тома также могут быть уменьшены в размере. В первую очередь необходимо уменьшить размер файловой системы, и только после этого уменьшать размер логического тома. В обратной последовательности можно потерять данные. Также есть некоторые нюансы:
  • Перед изменением размера файловую систему необходимо отмонтировать.
  • При изменении размера Ext2/Ext3 resize2fs’у указывается ее новый размер.
  • Уменьшить XFS и JFS невозможно.
  • Уменьшить Btrfs можно на лету, но лучше не рисковать.


# resize2fs /dev/volgroup00/ext2 500m //указание нового размера для ФС Ext2/Ext3
# fsadm -l resize /dev/volgroup00/ext3 200M //указание нового размера для ФС Ext2/Ext3
# resize_reiserfs -s-1G /dev/volgroup00/reiserfs //уменьшение ФС Reiserfs
# btrfsctl -r -2g -A /dev/volgroup00/btrfs //уменьшение ФС Btrfs
# lvreduce -L-1G /dev/volgroup00/test01 //уменьшение логического тома


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

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


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

# vgrename volgroup_oldname volgroup_newname


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

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


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

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


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


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


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

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

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


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

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

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


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

# lvs

LV       VG         Attr   LSize   Origin Snap%  Move Log           Copy%  Convert
volume00 mirror00   mwi-a-   5.00G                    volume00_mlog   6.17


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

# lvs -a -o +devices

LV                  VG         Attr   LSize   Origin Snap%  Move Log           Copy%  Convert Devices
volume00            mirror00   mwi-a-   5.00G                    volume00_mlog 100.00         volume00_mimage_0(0),volume00_mimage_1(0)
[volume00_mimage_0] mirror00   iwi-ao   5.00G                                                 /dev/sda5(0)
[volume00_mimage_1] mirror00   iwi-ao   5.00G                                                 /dev/sdb1(0)
[volume00_mlog]     mirror00   lwi-ao   4.00M 
/dev/sdc1(0)

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


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

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


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

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

# vgreduce volgroup00 /dev/sdb1 //удаление физического тома из группы
# lvremove /dev/volgroup00/test01 //удаление логического тома
# vgremove volgroup00 //удаление группы томов
# 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

Еще раз огромное спасибо Deavy.

[ Редактирование Срд Окт 13 2010, 03:37 ]
Наверх
LVM2 расширение раздела   LVM2 уменьшение раздела   LVM2 удаление раздела   работа с LVM2   сканирование всех устройств видимых LVM   слияние двух групп томов в один   Linux   gentoo   LVM2   lvm   

 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System