LVM (Logical Volume Manager) – подсистема операционных систем Linux , позволяющая использовать разные области физического жесткого диска или разных жестких дисков как один логический том. LVM встроена в ядро Linux и реализуется на базе device mapper.
Главные преимущества LVM – высокий уровень абстракции от физических дисков, гибкость и масштабируемость. Вы можете на лету изменять размер логического тома, добавлять (и удалять) новые диски. Для LVM томов поддерживается зекалирование, снапшоты (persistent snapshot) и striping (расслоение данных между несколькими дисками с целью увеличения производительности).
В данной статье мы рассмотрим использование LVM разделов на примере Linux CentOS 8 , покажем процесс объединения двух дисков в одну группу LVM, посмотрим как создавать группы, тома, монтировать, расширять и уменьшать размер LVM разделов.
Прежде всего нужно разобраться с уровнями дисковых абстракций LVM.
Чтобы начать работу с LVM , нужно установить утилиту lvm2 . Выполним следующие команды:
apt-get install lvm2
— для Ubuntu, Mint, Debian
yum install lvm2
– для Centos, Red-Hat, Fedora
В разных версиях Linux отличается только способ установки утилиты lvm2 (установка через yum /dnf или apt-get), дальнейшие команды для работы с LVM , одинаковы.
Итак, у нас имеется виртуальная машина KVM , к которой подключены два дополнительных диска. Проверим, что они доступны в системе, используя команду:
fdisk -l
Как вы видите, у меня доступны два диска /dev/vdb
и /dev/vdc
.
При настройке LVM на своем виртуальном или физическом сервере, используйте свою маркировку дисков.
Чтобы диски были доступны для LVM , их нужно пометить (инициализировать) утилитой pvcreate:
pvcreate /dev/vdb /dev/vdc
Теперь, чтобы убедиться, что данные диски можно использовать для LVM , введите команду pvdisplay :
Как видим, оба диска отображаются. Разберем информацию из вывода команды:
С помощью команды pvscan вы можете просканировать диски на предмет PV.
Следующий этап – создание группы томов. Для создания групп томов используется команда vgcreate . Чтобы объединить ранее помеченные диски, воспользуемся командой:
# vgcreate test /dev/vdb /dev/vdc
Volume group "test" successfully created
Чтобы проверить результат введите vgdisplay :
Как видим, диски объединены в группу test и VG Size показывает общий размер дисков.
Разберем информацию из листинга команды vgdisplay :
После того, как мы создали общую группу для дисков, мы можем создать логический том на этой группы. При создании тома, используется команда lvcreate .
Чтобы в вашей группе создать логический том определенного размера и именем, используйте команду:
# lvcreate -L 5G test
Logical volume "lvol0" created.
Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.
Если вы хотите сами задать имя, используйте флаг -n :
# lvcreate -L 5G -n test1 test
Logical volume "test1" created
Несколько примеров для создания логических томов с разными размерами:
lvcreate -l 40%VG test
– 40% от дискового пространства группы test
lvcreate -l 100%FREE test
– использовать все свободное пространство группы test
Чтобы вывести информацию о логическом томе, используйте lvdisplay :
Так же разберем листинг данной команды:
Чтобы создать файловую систему на логическом томе, воспользуйтесь утилитой mkfs :
Создадим файловую систему ext4 на LVM томе:
mkfs.ext4 /dev/test/test1
Файловая система была создана без ошибок.
Теперь создадим тестовую директорию и примонтируем логический том к данной директории:
# mkdir /var/www/home
# mount /dev/test/test1 /var/www/home/
Как видите, все прошло без ошибок и теперь директория /var/www/home существует как отдельный раздел.
Чтобы логический том монтировался при загрузке системы, нужно добавить его в fstab и назначить директорию для монтирования.
Откроем файл:
nano /etc/fstab
И добавим в него следующую информацию:
/dev/test/test1 /var/www/home ext4 defaults 1 2
После чего примонтировать том можно будет через mount -a :
# mount -a
# df -h
Filesystem Size Used Avail Use% Mounted on_x000D_devtmpfs 485M 0 485M 0% /dev_x000D_tmpfs 496M 0 496M 0% /dev/shm_x000D_tmpfs 496M 6.7M 489M 2% /run_x000D_tmpfs 496M 0 496M 0% /sys/fs/cgroup_x000D_/dev/vda2 20G 1.3G 19G 7% /_x000D_/dev/vda1 488M 100M 353M 23% /boot_x000D_tmpfs 100M 0 100M 0% /run/user/0_x000D_/dev/mapper/test-test1 4.8G 20M 4.6G 1% /var/www/home_x000D_
Чтобы проверить общую информацию по дискам, разделам и томам, введите команду lsblk :
Как видим, наш созданный том отображается, и указана директория к которой он примонтирован.
Команда lvmdiskscan
позволяет просканировать доступные диски, показывает их размер и принадлежность к LVM.
Чтобы добавить дополнительный диск к группе томов, нужно воспользоваться уже знакомой схемой:
pvcreate /dev/нашдиск
— инициализация диска для lvm
vgextend test /dev/нашдиск
— добавление диска в группу томов
Чтобы расширить логический том, воспользуйтесь следующей схемой:
lvextend -L10G /dev/test/test1
Данным способом вы расширите раздел на 10 Гб.
Еще несколько примеров расширения LVM раздела:
lvextend -L+10G /dev/test/test1
— добавите 10 Гб к вашему тому
lvextend -l +100%FREE /dev/test/test1
— выделите все нераспределенное пространство в группе test
Осталось увеличить раздел файловой системы:
resize2fs /dev/test/test1
– для ext4
xfs_growfs /dev/test/test1
– для xfs
LVM позволяют уменьшать размер тома. Но для безопасности умеьшения размера раздела его нужно отключить.
Отмонтируем том от директории:
umount /var/www/home/
Выполним проверку диска:
e2fsck -fy /dev/test/test1
Уменьшим раздел файловой системы на 4 Гб:
# resize2fs /dev/test/test1 4G
resize2fs 1.42.9 (28-Dec-2013)_x000D_Resizing the filesystem on /dev/test/test1 to 1048576 (4k) blocks._x000D_The filesystem on /dev/test/test1 is now 1048576 blocks long._x000D_
# lvreduce -L-4G /dev/test/test1
WARNING: Reducing active logical volume to 6.00 GiB._x000D_THIS MAY DESTROY YOUR DATA (filesystem etc.)_x000D_Do you really want to reduce test/test1? [y/n]: y_x000D_Size of logical volume test/test1 changed from 10.00 GiB (2560 extents) to 6.00 GiB (1536 extents)._x000D_Logical volume test/test1 successfully resized.
Теперь уменьшим размер самого LVM тома:
lvreduce -L-4G /dev/test/test1
После чего, нужно примонтировать том обратно и проверить текущий размер:
Как видим, размер уменьшился до 4 Гб.
Для удаления LVM томов, используется команда lvremove :
lvremove /dev/test/test1
Чтобы удалить группу логических томов, используйте:
# vgremove test
Volume group "test" successfully removed
Убрать метки с LVM дисков:
# pvremove /dev/vdb /dev/vdc
Labels on physical volume "/dev/vdb" successfully wiped._x000D_Labels on physical volume "/dev/vdc" successfully wiped._x000D_
LVM позволяет создать зеркальные тома для повышения отказоустойчивости хранения данных. В LVM зеркале данные одновременно хранятся на двух (или более) физических дисках (подобие RAID-1). Процедура создания зеркального тома в LVM.
pvcreate /dev/sd{b,c}
vgcreate mirror1 /dev/sd{b,c}
lvcreate -L 5g -m1 -n lvMirr1 VGmirror1
Инструменты LVM очень удобны для работы, с помощью них можно легко управлять томами, нарезать их на нужные вам размеры и с легкостью использовать под свои нужды. В данной статье я постарался затронуть все основные моменты в работе с LVM .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…