set up this disk as an lvm group что это
LVM — это просто!
Собственно, хочется просто и доступно рассказать про такую замечательную вещь как Logical Volume Management или Управление Логическими Томами.
Поскольку уже давно пользуюсь LVM-ом, расскажу что он значит именно для меня, не подглядывая в мануалы и не выдёргивая цитаты из wiki, своими словами, чтобы было понятно именно тем кто ничего о нем не знает. Постараюсь сразу не рассказывать о всяческих «продвинутых» функциях типа страйпов, снапшотов и т.п.
LVM — это дополнительный слой абстракции от железа, позволяющий собрать кучи разнородных дисков в один, и затем снова разбить этот один именно так как нам хочется.
есть 3 уровня абстракции:
1. PV (Physical Volume) — физические тома (это могут быть разделы или целые «неразбитые» диски)
2. VG (Volume Group) — группа томов (объединяем физические тома (PV) в группу, создаём единый диск, который будем дальше разбивать так, как нам хочется)
3. LV (Logical Volume) — логические разделы, собственно раздел нашего нового «единого диска» ака Группы Томов, который мы потом форматируем и используем как обычный раздел, обычного жёсткого диска.
это пожалуй вся теория. 🙂 теперь практика:
для работы нужны пакеты lvm2 и возможность работать с привелегиями root поэтому:
$ sudo bash
# apt-get install lvm2
допустим у нас в компе есть жёсткий диск на 40Гб и нам удалось наскрести немного денег и наконец-то купить себе ТЕРАБАЙТНИК! :))) Система уже стоит и работает, и первый диск разбит одним разделом (/dev/sda1 как / ), второй — самый большой, который мы только подключили — вообще не разбит /dev/sdb…
Предлагаю немножко разгрузить корневой диск, а заодно ускорить (новый диск работает быстрее старого) и «обезопасить» систему с помощью lvm.
Можно делать на втором диске разделы и добавлять их в группы томов (если нам нужно несколько групп томов),
а можно вообще не делать на диске разделы и всё устройство сделать физическим разделом (PV)
# pvcreate /dev/sdb
Physical volume «/dev/sdb» successfully created
Создаём группу томов с говорящим названием, например по имени машины «ws», чтобы когда мы перетащим данный диск на другую машину небыло конфликтов с именами групп томов:
# vgcreate ws /dev/sdb
Volume group «vg0» successfully created
желательно внести с корневого раздела такие папки как /usr /var /tmp /home, чтобы не дефрагментировать лишний раз корневой раздел и ни в коем случае его не переполнить, поэтому создаём разделы:
# vgdisplay
информацию по созданным логическим томам
root@ws:
# lvdisplay
информацию по физическим томам
root@ws:
дальше lvm уже почти кончается… форматируем наши разделы в любимые файловые системы:
root@ws:
кстати, не плохо было бы сделать раздел подкачки:
root@ws:
создаём папку и подключая по очереди новообразовавшиеся тома, копируем в них нужное содержимое:
root@ws:
# mkdir /mnt/target
root@ws:
# mount /dev/ws/home /mnt/target
копируем туда всё из папки /home своим любимым файловым менеджером (с сохранением прав доступа), например так ;):
root@ws:
# umount /mnt/target/
кстати, для папки temp необходимо только поправить права, копировать туда что-либо необязательно:
root@ws:
На вкусное, хочу предложить более продвинутую штуку:
допустим у нас есть система с разделом на LVM, а жёсткий диск начал сбоить, тогда мы можем без перезагрузки переместить всю систему на другой жёсткий диск/раздел:
# On-line добавление/удаление жёстких дисков с помощью LVM (пример)
# pvcreate /dev/sda1 # наш эмулятор сбойного диска
Physical volume «/dev/sda1» successfully created
# pvcreate /dev/sdb1 # наш эмулятор спасательного диска
Physical volume «/dev/sdb1» successfully created
# vgcreate vg0 /dev/sda1 # создаю группу томов vg0
Volume group «vg0» successfully created
# mkfs.ext2 /dev/vg0/test # создаю файловую систему на разделе
root@ws:
# mount /dev/mapper/vg0-test /mnt/tmp/ #монтирую раздел
… # заполняю его информацией, открываю на нем несколько файлов и т.п.
# vgextend vg0 /dev/sdb1 # расширяю нашу групу томов на «спасательный» диск
Volume group «vg0» successfully extended
# pvmove /dev/sda1 /dev/sdb1 #передвигаю содержимое с «умирающего» диска на «спасательный»
/dev/sda1: Moved: 0.9%
/dev/sda1: Moved: 1.8%
…
/dev/sda1: Moved: 99.7%
/dev/sda1: Moved: 100.0%
# vgreduce vg0 /dev/sda1 # убираю «умирающий» диск из группы томов.
Removed «/dev/sda1» from volume group «vg0»
Итого:
Я создал логический раздел, отформатировал его, примонтировал и заполнил нужными данными, затем переместил его с одного устройства на другое, при этом раздел остался примонтирован и данные всё время оставались доступны!
Подобным образом мне удавалось без перезагрузки перенести всю систему с умирающего диска на рэид-массив. 🙂
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
LVM для начинающих. Часть 2. Основы управления томами
В нашей прошлой статье мы рассмотрели теоретические основы LVM, в объеме минимально необходимом для начала работы с этой технологией. Сегодня мы перейдем к практическим сценариям и расскажем, как начать использовать LVM и какие задачи можно решать с его помощью. Основной упор при этом будет сделан на базовые действия с привлечением изложенного в предыдущей части теоретического материала, чтобы читатель не только изучил необходимые команды, но и представлял, что именно и на каком уровне абстракции они делают.
Настраиваем LVM при установке системы
Дальнейшие действия при автоматической разметке ничем не отличаются от обычной установки, и мы не будем заострять на них внимания.
При ручном разбиении диска следует учесть следующий момент: загрузочный раздел /boot или EFI-раздел должны располагаться за пределами LVM-разметки.
Поэтому сразу создадим в самом начале диска первичный раздел размером 250 МБ с файловой системой ext2 и точкой монтирования /boot, не забываем отметить раздел как загрузочный.
Для EFI разметки следует создать первичный радел размером 499 МБ с типом системный раздел EFI, метка загрузочный будет установлена автоматически:
Создав загрузочный раздел можно приступать к настройке LVM, для этого выберите Настройка менеджера логических томов (LVM):
В котором сразу создаем группу томов (VG), рекомендуем давать группам томов и логическим томам понятные имена с использованием сокращений VG и LV, чтобы в дальнейшем было понятно, с чем именно вы имеете дело.
В качестве устройства для группы томов указываем доступное свободное место:
Затем создаем нужное количество логических томов, в нашем случае мы сделали тома для корневого раздела и домашней директории:
После создания структуры LVM мы возвращаемся в меню разметки дисков и указываем для каждого логического тома используемую файловую систему и точку монтирования:
Далее установка продолжается обычным образом, и мы не будем на этом останавливаться.
Ниже мы будем рассматривать разметку, созданную автоматически с выделением /home в отдельный раздел.
Сразу после загрузки посмотрим структуру блочных устройств в системе, для этого воспользуемся командой:
В выводе мы видим загрузочный раздел sda1 размером в 243 МБ, расширенный раздел sda2 в котором располагается логический раздел sda5 используемый под LVM. Также видим три логических тома: root, swap_1 и home.
Обратите внимание, что при использовании MBR-разметки система всегда использует расширенный раздел, размещая в нем все остальные разделы, кроме первого. Это связано с ограничением MBR на 4 первичных раздела. При использовании EFI-разметки расширенный раздел не создается и для LVM был бы использован сразу sda2.
Теперь посмотрим информацию об элементах LVM, начнем с физических томов (PV):
Указанная команда выведет информацию обо всех физических томах, здесь мы увидим используемое устройство или раздел, группу томов, которую входит физический том, его размер, размер физического экстента, общее количество экстентов, а также количество используемых (отображенных) и свободных.
Вас может удивить необычный размер физического тома Обратите внимание! В первую очередь всегда уменьшается размер файловой системы, а только затем содержащего ее логического тома, при этом размер тома должен быть больше или равен размеру содержащейся в нем файловой системы. В противном случае произойдет ее разрушение с потерей данных.
В некоторых случаях требуется расширить логический том на вполне определенные физические диски, для этого следует явно их указать в команде расширения:
Указанная команда расширит логический том home на 5118 экстентов с физического тома /dev/sdb, перед выполнением команды следует убедиться, что выбранный том содержит нужное количество свободного пространства, поэтому наиболее удобно использовать свободные экстенты, точное количество которых мы всегда можем узнать получив информацию об указанном физическом томе.
Перемещение логических томов LVM
Прежде всего создадим на новом диске физический том и добавим его в нужную группу томов:
Затем переместим экстенты логического тома home на новый диск. Так как sdb не содержит никаких иных логических томов, кроме home, то команда будет проста:
Она переместит все физические экстенты диска sdb на диск sdc. Для sda5, который содержит три логических тома такой фокус не пройдет, поэтому добавим конкретики:
Эта команда переместит все физические экстенты тома с именем home с диска sda5 на диск sdc.
Посмотрим информацию о логическом томе home:
Как можно видеть из вывода он теперь содержит единственный сегмент, который расположен на диске sdc.
Отлично, теперь можно расширить корневой раздел. Но нам следует использовать только пространство sda5 и желательно использовать его по максимуму. Как мы уже говорили выше, лучше всего опираться на число свободных экстентов. Чтобы узнать это значение выполним команду:
Это число, в отличии от размера в байтах, либо процентов, является абсолютным, и мы можем смело его использовать:
Данная команда расширит логический том root на 2874 физических экстента принадлежащих разделу sda5. Затем не забудем расширить файловую систему:
А теперь посмотрим информацию о логическом томе:
Для чего мы заостряем внимание на этих моментах? С практической точки зрения не так уж и важно, где именно лежат ваши данные, но это важно для понимания работы LVM, чтобы он перестал быть для вас черным ящиком, и вы могли на практике получить подтверждение теоретическим знаниям из предыдущей статьи.
Удаление дисков из LVM
Удаляемый диск не должен содержать логических томов, их следует переместить, либо удалить. Это можно сделать командой
Которая удалит логический том myvolume1 из группы томов andrey-lvm-vg.
В приведенном выше примере у нас освободился диск sdb в группе томов debian-lvm-vg. Удалим его из группы томов:
Ну и наконец удалим LVM-разметку с указанного диска:
После чего диск можно изъять из системы и использовать по собственному усмотрению. Также можно удалив физический том из одной группы томов, включить в другую, таким образом перераспределив имеющиеся аппаратные ресурсы.
Заключение
Несмотря на то, что в данной статье мы коснулись всего лишь основ управления томами, перед нами открылись богатые возможности LVM, которая в умелых руках предоставляет весьма широкие возможности по управлению дисковой подсистемой, позволяя быстро и без простоя системы изменять ее конфигурацию согласно текущим потребностям.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Настройка и управление LVM разделами в Linux
LVM (Logical Volume Manager) – подсистема операционных систем Linux, позволяющая использовать разные области физического жесткого диска или разных жестких дисков как один логический том. LVM встроена в ядро Linux и реализуется на базе device mapper.
Главные преимущества LVM – высокий уровень абстракции от физических дисков, гибкость и масштабируемость. Вы можете на лету изменять размер логического тома, добавлять (и удалять) новые диски. Для LVM томов поддерживается зекалирование, снапшоты (persistent snapshot) и striping (расслоение данных между несколькими дисками с целью увеличения производительности).
В данной статье мы рассмотрим использование LVM разделов на примере Linux CentOS 8, покажем процесс объединения двух дисков в одну группу LVM, посмотрим как создавать группы, тома, монтировать, расширять и уменьшать размер LVM разделов.
Прежде всего нужно разобраться с уровнями дисковых абстракций LVM.
Установка утилиты lvm2
Чтобы начать работу с LVM, нужно установить утилиту lvm2. Выполним следующие команды:
apt-get install lvm2 — для Ubuntu, Mint, Debian
yum install lvm2 – для Centos, Red-Hat, Fedora
В разных версиях Linux отличается только способ установки утилиты lvm2 (установка через yum/dnf или apt-get), дальнейшие команды для работы с LVM, одинаковы.
Создание LVM разделов
Итак, у нас имеется виртуальная машина KVM, к которой подключены два дополнительных диска. Проверим, что они доступны в системе, используя команду:
При настройке LVM на своем виртуальном или физическом сервере, используйте свою маркировку дисков.
Чтобы диски были доступны для LVM, их нужно пометить (инициализировать) утилитой pvcreate:
pvcreate /dev/vdb /dev/vdc
Теперь, чтобы убедиться, что данные диски можно использовать для LVM, введите команду pvdisplay:
Как видим, оба диска отображаются. Разберем информацию из вывода команды:
С помощью команды pvscan вы можете просканировать диски на предмет PV.
Следующий этап – создание группы томов. Для создания групп томов используется команда vgcreate. Чтобы объединить ранее помеченные диски, воспользуемся командой:
# vgcreate test /dev/vdb /dev/vdc
Чтобы проверить результат введите vgdisplay:
Как видим, диски объединены в группу test и VG Size показывает общий размер дисков.
Разберем информацию из листинга команды vgdisplay:
После того, как мы создали общую группу для дисков, мы можем создать логический том на этой группы. При создании тома, используется команда lvcreate.
Чтобы в вашей группе создать логический том определенного размера и именем, используйте команду:
Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.
Если вы хотите сами задать имя, используйте флаг -n:
Несколько примеров для создания логических томов с разными размерами:
Чтобы вывести информацию о логическом томе, используйте lvdisplay:
Так же разберем листинг данной команды:
LVM: создание файловой системы, монтирование логического тома
Чтобы создать файловую систему на логическом томе, воспользуйтесь утилитой mkfs:
Создадим файловую систему ext4 на LVM томе:
Файловая система была создана без ошибок.
Теперь создадим тестовую директорию и примонтируем логический том к данной директории:
# mkdir /var/www/home
# mount /dev/test/test1 /var/www/home/
Как видите, все прошло без ошибок и теперь директория /var/www/home существует как отдельный раздел.
Чтобы логический том монтировался при загрузке системы, нужно добавить его в fstab и назначить директорию для монтирования.
Откроем файл:
nano /etc/fstab
И добавим в него следующую информацию:
Чтобы проверить общую информацию по дискам, разделам и томам, введите команду lsblk:
Как видим, наш созданный том отображается, и указана директория к которой он примонтирован.
Команда lvmdiskscan позволяет просканировать доступные диски, показывает их размер и принадлежность к LVM.
Увеличение логического тома LVM
Чтобы добавить дополнительный диск к группе томов, нужно воспользоваться уже знакомой схемой:
pvcreate /dev/нашдиск — инициализация диска для lvm
vgextend test /dev/нашдиск — добавление диска в группу томов
Чтобы расширить логический том, воспользуйтесь следующей схемой:
Данным способом вы расширите раздел на 10 Гб.
Еще несколько примеров расширения LVM раздела:
Осталось увеличить раздел файловой системы:
resize2fs /dev/test/test1 – для ext4
xfs_growfs /dev/test/test1 – для xfs
Уменьшение LVM томов
LVM позволяют уменьшать размер тома. Но для безопасности умеьшения размера раздела его нужно отключить.
Отмонтируем том от директории:
Выполним проверку диска:
Уменьшим раздел файловой системы на 4 Гб:
# resize2fs /dev/test/test1 4G
Теперь уменьшим размер самого LVM тома:
После чего, нужно примонтировать том обратно и проверить текущий размер:
Как видим, размер уменьшился до 4 Гб.
Удаление LVM групп и томов
Для удаления LVM томов, используется команда lvremove:
Чтобы удалить группу логических томов, используйте:
Убрать метки с LVM дисков:
# pvremove /dev/vdb /dev/vdc
Создание зеркальных томов LVM
LVM позволяет создать зеркальные тома для повышения отказоустойчивости хранения данных. В LVM зеркале данные одновременно хранятся на двух (или более) физических дисках (подобие RAID-1). Процедура создания зеркального тома в LVM.
Инструменты LVM очень удобны для работы, с помощью них можно легко управлять томами, нарезать их на нужные вам размеры и с легкостью использовать под свои нужды. В данной статье я постарался затронуть все основные моменты в работе с LVM.
Logical Volume Manager (LVM)
Содержание
Создание и удаление
Как уже отмечалось, LVM строится на основе разделов жёсткого диска и/или целых жёстких дисков. На каждом из дисков/разделов должен быть создан физический том (physical volume). К примеру, мы используем для LVM диск sda и раздел sdb2:
На этих физических томах создаём группу томов, которая будет называться, скажем, vg1:
Посмотрим информацию о нашей группе томов:
Групп можно создать несколько, каждая со своим набором томов. Но обычно это не требуется.
Теперь в группе томов можно создать логические тома lv1 и lv2 размером 20 Гбайт и 30 Гбайт соответствено:
Теперь у нас есть блочные устройства /dev/vg1/lv1 и /dev/vg1/lv2.
Осталось создать на них файловую систему. Тут различий с обычными разделами нет:
Добавление физических томов
Чтобы добавить новый винчестер sdc в группу томов, создадим физический том:
И добавим его в нашу группу:
Теперь можно создать ещё один логический диск ( lvcreate ) или увеличить размер существующего ( lvresize ).
Удаление физических томов
Чтобы убрать из работающей группы томов винчестер sda сначала перенесём все данные с него на другие диски:
Затем удалим его из группы томов:
И, наконец, удалим физический том:
Вообще-то, последняя команда просто убирает отметку о том, что диск является членом lvm, и особой пользы не приносит. После удаления из LVM для дальнейшего использования диск придётся переразбивать/переформатировать.
Изменение размеров
LVM позволяет легко изменять размер логических томов. Для этого нужно сначала изменить сам логический том:
а затем файловую систему на нём:
Как просто попробовать
Если LVM устанавливается не для дальнейшего использования, а «напосмотреть», то диски и разделы можно заменить файлами. Не понадобятся ни дополнительные диски, ни виртуальные машины. Мы создадим виртуальные накопители и будем с ними работать. Например, можно создать 4 диска по 1 Гбайт, но можно создать другое количество большего или меньшего размера как вам хочется. Создаем сами файлы, имитирующие устройства:
Создаем loopback устройства из файлов:
Дальше поступаем так же, как если бы ми создавали LVM на реальных дисках. Обратите внимание на названия loop-устройств — они могут отличаться от приведённых здесь.
Снапшоты
Примеры использования
LVM активно используется, когда необходим механизм снапшотов. Например, этот механизм крайне важен при бекапе постоянно меняющихся файлов. LVM позволяет заморозить некоторое состояние ФС и скопировать с неё все нужные данные, при этом на оригинальной ФС останавливать запись не нужно.
Также снапшоты можно применить для организации поддержки файловым сервером с Samba механизма архивных копий, об этом в соответствующей статье:
LVM с LiveCD
Если у вас возникла необходимость работать с LVM с LiveCD Ubuntu, то вам придётся выполнить несколько дополнительных действий, поскольку по умолчанию утилит для работы с LVM нет.
Сначала вам нужно установить эти утилиты:
Далее посмотрите командами
доступность ваших групп томов. Ну а дальше запустите все группы командой
Эта команда должна сообщить о том, что все ваши логические тома активированы. Теперь можно работать с ними обычным образом.