baltun
Администратор
- Сообщения
- 12.282
- Реакции
- 3.082
- Баллы
- 1.833
LVM или Logical Volume Manager - это еще один программный уровень абстракции над физическими разделами жесткого диска, который позволяет создавать логические тома для хранения данных без непосредственной переразметки жесткого диска на одном или нескольких жестких дисках. LVM увеличивает удобство работы с жестким диском, аппаратные особенности работы скрываются программным обеспечением, поэтому вы можете изменять размеры дисков, перемещать их на лету, без остановки приложений или размонтирования файловых систем. Это очень удобно на серверах, вы можете добавить еще один диск или расширить существующие lvm тома на лету.
Самый простой вариант проводить все работы, создание, монтирование, сжатие, уделение LVM через Cockpit.
LVM работает на уровне ядра, поэтому гарантируется максимальная прозрачность настройки и использования дисков. Программы смогут работать с логическими, виртуальными LVM разделами, точно так же, как и с обычными.
Давайте рассмотрим преимущества использования LVM перед обычными разделами жесткого диска.
Структура LVM состоит из трех слоев:
Чтобы посмотреть действительно ли были созданы физические тома LVM вы можете использовать команду pvscan:
Также можно посмотреть физические LVM разделы с более подробными атрибутами, такими как размер, общий размер, физический размер, свободное место и т д:
Здесь PE Size - это размер одного блока LVM, по умолчанию он равен четырем мегабайтам, но это значение можно изменить.
Создание группы разделов LVM.
Группа томов - это не что иное, как пул памяти, который будет распределен между логическими томами и может состоять из нескольких физических разделов. После того как физические разделы инициализированы, вы можете создать из них группу томов (Volume Group, VG):
С помощью LVM команды vgdisplay вы можете посмотреть созданные группы томов:
Создание логических томов LVM.
Теперь все готово, чтобы создать логические LVM разделы. Для этого будем использовать команду lvcreate и создадим логический раздел размером 80 мегабайт, или 20 блоков LVM:
Если вы хотите задать размер в обычных единицах измерения, то необходимо использовать опцию -L. Например, для тех же 80-ти мегабайт:
В качестве приставки для указания размера можно использовать такие буквы:
Теперь, когда раздел создан, мы можем работать с ним как с обычным разделом. Например, отформатируем его в файловую систему ext4, а затем примонтируем в /mnt:
Как видите, монтирование LVM в Linux ничем не отличается от монтирования обычных разделов.
Вообще говоря, LVM разделы могут быть трех типов:
Полосные разделы очень полезны при больших нагрузках на жесткий диск. Здесь вы можете настроить одновременную запись на разные физические устройства, для одновременных операций, это может очень сильно увеличить производительность работы системы.
Для этого нужно задать количество полос записи с помощью опции -i, а также размер полосы опцией -l. Количество полос не должно превышать количества физических дисков. Например:
Зеркалированный том позволяет записывать данные одновременно на два устройства. Когда данные пишутся на один диск, они сразу же копируются на другой. Это позволяет защититься от сбоев одного из дисков. Если один из дисков испортится, то разделы LVM просто станут линейными и все данные по-прежнему будут доступны. Для создания такого раздела LVM Linux можно использовать команду:
Удалить раздел LVM.
Вы можете не только настроить LVM тома изменяя их размер и атрибуты, но и удалить LVM раздел, если он вам больше не нужен. Это делается с помощью LVM команды lvremove:
Изменение размера тома LVM.
Вы можете изменять уже созданные разделы LVM увеличивая или уменьшая их размер. Причем неважно есть ли место на физическом диске после этого раздела, если в пуле есть память, вы можете ее использовать для любого раздела. Чтобы изменить размер LVM используйте команду lvextend. Например, LVM увеличим размер диска из 80 до 100 мегабайт:
Добавить весь объем диска:
Также вы можете увеличить размер LVM, использовав знак +:
Точно так же можно выполнить уменьшение LVM раздела с помощью знака -.
Посмотреть используемую файловую систему:
Для каждой файловой системы существуют свои инструменты.
ext2/ext3/ext4:
XFS:
Reiserfs:
Создание снапшотов для тома, где уже используется файловая система XFS, имеет некоторые нюансы, поэтому разберем разные примеры.
Создание для не XFS:
* данная команда помечает, что 500 Мб дискового пространства устройства /dev/vg01/lv01 (тома lv01 группы vg01) будет использоваться для snapshot (опция -s).
Создание для XFS:
* команда xfs_freeze замораживает операции в файловой системе XFS.
Посмотрим список логических томов:
Получим что-то на подобие:
* поле Origin показывает, к какому оригинальному логическому тому относится LV, например, в данной ситуации наш раздел для снапшотов относится к lv01.
Также можно посмотреть изменения в томах командой:
Мы должны увидеть что-то подобное:
С этого момента все изменения пишутся в vg01-sn01-cow, а vg01-lv01-real фиксируется только для чтения и мы может откатиться к данному состоянию диска в любой момент.
Содержимое снапшота можно смонтировать и посмотреть, как обычный раздел:
Монтирование не XFS:
Монтирование XFS:
Для выполнения отката до снапшота, выполняем команду:
Создание зеркала LVM.
С помощью LVM мы может создать зеркальный том — данные, которые мы будем на нем сохранять, будут отправляться на 2 диска. Таким образом, если один из дисков выходит из строя, мы не потеряем свои данные.
Зеркалирование томов выполняется из группы, где есть, минимум, 2 диска.
Сначала инициализируем диски:
* в данном примере sdd и sde.
Создаем группу:
Создаем зеркальный том:
* мы создали том lv-mir на 200 Мб из группы vg02.
Самый простой вариант проводить все работы, создание, монтирование, сжатие, уделение LVM через Cockpit.
LVM работает на уровне ядра, поэтому гарантируется максимальная прозрачность настройки и использования дисков. Программы смогут работать с логическими, виртуальными LVM разделами, точно так же, как и с обычными.
Давайте рассмотрим преимущества использования LVM перед обычными разделами жесткого диска.
- Легкое изменение размера - вы можете расширить или уменьшить lvm раздел без переформатирования диска
- Легкая расширяемость пространства - вы можете увеличить доступное пространство просто добавляя новые физические диски в общий пул памяти LVM, таким образом, вы получаете большую гибкость.
- Резервное копирование и зеркалирование данных - возможность записи на несколько дисков одновременно позволяет увеличить производительность работы системы, а также есть возможность настроить зеркалирование данных и резервное копирование разделов для увеличения безопасности.
- Читаемые имена - вы можете давать любые имена вашим логическим разделам, так чтобы они соответствовали назначению раздела и легко запоминались.
Структура LVM состоит из трех слоев:
- Физический том (один или несколько), Physical Volume (PV)
- Группа физических томов, Volume Group (VG)
- Логический том, который и будет доступен программам, Logical Volume (LV)
Код:
sudo pvcreate /dev/sdb /dev/sdc
Чтобы посмотреть действительно ли были созданы физические тома LVM вы можете использовать команду pvscan:
Код:
sudo pvscan
Также можно посмотреть физические LVM разделы с более подробными атрибутами, такими как размер, общий размер, физический размер, свободное место и т д:
Код:
sudo pvdisplay
Создание группы разделов LVM.
Группа томов - это не что иное, как пул памяти, который будет распределен между логическими томами и может состоять из нескольких физических разделов. После того как физические разделы инициализированы, вы можете создать из них группу томов (Volume Group, VG):
Код:
sudo vgcreate vol_grp1 /dev/sdb /dev/sdc
С помощью LVM команды vgdisplay вы можете посмотреть созданные группы томов:
Код:
sudo vgdisplay
Создание логических томов LVM.
Теперь все готово, чтобы создать логические LVM разделы. Для этого будем использовать команду lvcreate и создадим логический раздел размером 80 мегабайт, или 20 блоков LVM:
Код:
sudo lvcreate -l 20 -n logical_vol1 vol_grp1
Если вы хотите задать размер в обычных единицах измерения, то необходимо использовать опцию -L. Например, для тех же 80-ти мегабайт:
Код:
sudo lvcreate -L 80M -n logical_vol1 vol_grp1
В качестве приставки для указания размера можно использовать такие буквы:
- B - байты;
- K - килобайты;
- M - мегабайты;
- G - гигабайты;
- T - терабайты.
Код:
sudo lvdisplay
Теперь, когда раздел создан, мы можем работать с ним как с обычным разделом. Например, отформатируем его в файловую систему ext4, а затем примонтируем в /mnt:
Код:
sudo mkfs.ext4 /dev/vol_grp1/logical_vol1
sudo mount /dev/vol_grp1/logical_vol1 /mnt/
Как видите, монтирование LVM в Linux ничем не отличается от монтирования обычных разделов.
Вообще говоря, LVM разделы могут быть трех типов:
- Линейные разделы (Linear Volume)
- Полосные разделы (Striped Volume)
- Зеркалированные разделы (Mirrored Volume)
Полосные разделы очень полезны при больших нагрузках на жесткий диск. Здесь вы можете настроить одновременную запись на разные физические устройства, для одновременных операций, это может очень сильно увеличить производительность работы системы.
Для этого нужно задать количество полос записи с помощью опции -i, а также размер полосы опцией -l. Количество полос не должно превышать количества физических дисков. Например:
Код:
sudo lvcreate -L 1G -i 2 -n logical_vol2 vol_grp1
Зеркалированный том позволяет записывать данные одновременно на два устройства. Когда данные пишутся на один диск, они сразу же копируются на другой. Это позволяет защититься от сбоев одного из дисков. Если один из дисков испортится, то разделы LVM просто станут линейными и все данные по-прежнему будут доступны. Для создания такого раздела LVM Linux можно использовать команду:
Код:
sudo lvcreate -L 200M -m1 -n lv_mirror vol_grp1
Удалить раздел LVM.
Вы можете не только настроить LVM тома изменяя их размер и атрибуты, но и удалить LVM раздел, если он вам больше не нужен. Это делается с помощью LVM команды lvremove:
Код:
sudo lvremove /dev/vol-grp1/lv_mirror
Изменение размера тома LVM.
Вы можете изменять уже созданные разделы LVM увеличивая или уменьшая их размер. Причем неважно есть ли место на физическом диске после этого раздела, если в пуле есть память, вы можете ее использовать для любого раздела. Чтобы изменить размер LVM используйте команду lvextend. Например, LVM увеличим размер диска из 80 до 100 мегабайт:
Код:
sudo lvextend -L100 /dev/vol_grp1/logical_vol1
Extending logical volume logical_vol1 to 100.00 MB
Logical volume logical_vol1 successfully resize
Добавить весь объем диска:
Код:
lvextend -l +100%FREE /dev/vol_grp1/logical_vol1
Также вы можете увеличить размер LVM, использовав знак +:
Код:
sudo lvextend -L+100M /dev/vol_grp1/logical_vol1
Увеличение размера файловой системы.
Чтобы сама система увидела больший объем дискового пространства, необходимо увеличить размер файловой системы.Посмотреть используемую файловую систему:
Код:
df -T
Для каждой файловой системы существуют свои инструменты.
ext2/ext3/ext4:
Код:
resize2fs /dev/vg01/lv01
XFS:
Код:
xfs_growfs /dev/vg01/lv01
Reiserfs:
Код:
resize_reiserfs /dev/vg01/lv01
Работа со снапшотами
Снимки диска позволят нам откатить состояние на определенный момент. Это может послужить быстрым вариантом резервного копирования. Однако нужно понимать, что данные хранятся на одном и том же физическом носителе, а значит, данный способ не является полноценным резервным копированием.Создание снапшотов для тома, где уже используется файловая система XFS, имеет некоторые нюансы, поэтому разберем разные примеры.
Создание для не XFS:
Код:
lvcreate -L500 -s -n sn01 /dev/vg01/lv01
Создание для XFS:
Код:
xfs_freeze -f /mnt; lvcreate -L500 -s -n sn01 /dev/vg01/lv01; xfs_freeze -u /mnt
Посмотрим список логических томов:
Код:
lvs
Получим что-то на подобие:
Код:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 owi-aos--- 1,00g
sn01 vg01 swi-a-s--- 500,00m lv01 2,07
Также можно посмотреть изменения в томах командой:
Код:
lsblk
Мы должны увидеть что-то подобное:
Код:
sdc 8:32 0 1G 0 disk
vg01-lv01-real 253:3 0 1G 0 lvm
vg01-lv01 253:2 0 1G 0 lvm /mnt
vg01-sn01 253:5 0 1G 0 lvm
vg01-sn01-cow 253:4 0 500M 0 lvm
vg01-sn01 253:5 0 1G 0 lvm
С этого момента все изменения пишутся в vg01-sn01-cow, а vg01-lv01-real фиксируется только для чтения и мы может откатиться к данному состоянию диска в любой момент.
Содержимое снапшота можно смонтировать и посмотреть, как обычный раздел:
Код:
mkdir /tmp/snp
Монтирование не XFS:
Код:
mount /dev/vg01/sn01 /tmp/snp
Монтирование XFS:
Код:
mount -o nouuid,ro /dev/vg01/sn01 /tmp/snp
Для выполнения отката до снапшота, выполняем команду:
Код:
lvconvert --merge /dev/vg01/sn01
Создание зеркала LVM.
С помощью LVM мы может создать зеркальный том — данные, которые мы будем на нем сохранять, будут отправляться на 2 диска. Таким образом, если один из дисков выходит из строя, мы не потеряем свои данные.
Зеркалирование томов выполняется из группы, где есть, минимум, 2 диска.
Сначала инициализируем диски:
Код:
pvcreate /dev/sd{d,e}
Создаем группу:
Код:
vgcreate vg02 /dev/sd{d,e}
Создаем зеркальный том:
Код:
lvcreate -L200 -m1 -n lv-mir vg02
Последнее редактирование: