Dev mapper ubuntu vg ubuntu lv что это

Обновлено: 04.07.2024

В моей лабораторной среде у меня есть сервер Ubuntu 12.04, к которому я пытаюсь добавить пространство. LVM был настроен при загрузке, и после добавления 100 ГБ с помощью мастера редактирования диска я не могу добавить это пространство в разделы. Я пытался использовать Part Magic, но он не позволяет увеличить размер, хотя я вижу дополнительное пространство.

fdisk -l дает мне;

Я до сих пор не использовал LVM и вообще не гуру Linux, поэтому я не уверен, какими будут мои дальнейшие действия, так как я ищу Howtos в этом процессе. В конце я хотел бы также добавить немного места в загрузочный раздел.

Спасибо, что уделили время на чтение этого вопроса, и дайте мне знать, если есть дополнительные подробности, которые я мог бы вам дать.

2 ответа

Ты используешь gparted изменить размер разделов. В 12.04 вам нужно будет загрузиться с livecd и запустить его оттуда, так как он не может изменить размер смонтированных разделов. В более поздних выпусках он может увеличить количество разделов, пока они монтируются. Это только даст LVM больше места для логических томов. Если вы хотите увеличить логический том, вы можете запустить, например, lvresize -L 30g ubuntu-vg/root увеличить размер вашего корня до 30г. Затем вам нужно указать файловой системе использовать это новое пространство, что вы можете сделать с resize2fs /dev/ubuntu-vg/root при условии, что вы используете файловую систему ext4 по умолчанию. Эти два последних шага могут быть выполнены онлайн, а не загружаться с других носителей. Вы также можете указать 100% вместо 30g в lvresize использовать все доступное пространство, но это в некотором роде противоречит цели использования LVM в первую очередь для выделения всего пространства одному логическому тому, поскольку у вас нет свободного места для создания моментальных снимков, новых логических томов или увеличения некоторых томов потом.

Если вы хотите сделать это без инструментов графического интерфейса, вы можете использовать parted .

В моей системе я расширял корневую файловую систему (которая была на dev/sda3 ) от 128 ГБ до 160 ГБ. Измените приведенные ниже примеры в зависимости от вашей настройки. Все команды необходимо запускать от имени root ( sudo -i для входа в систему как root).

Раньше у меня было 95% использования:

С виртуальными машинами Gen2 все можно делать онлайн без перезагрузки.

Сначала разверните виртуальный диск с помощью графического интерфейса Hyper-V или инструментов интерфейса командной строки.

Затем вам нужно указать Ubuntu повторно сканировать блочное устройство, в данном случае sda :

Теперь вам нужно расширить раздел. Еще в parted , используйте resizepart для этого. В моем случае, поскольку я расширяю sda3 Я говорю ему изменить размер раздела 3 до 100% доступного пространства. Опять же, настройте команду для своей установки.

Если вы используете LVM, вам теперь нужно указать ему расширить физический том. pvs показывает информацию о ваших физических томах; использовать pvresize чтобы расширить его. Без заданных параметров он будет использовать все доступное пространство.

Теперь вам нужно расширить логический том, а также саму файловую систему. lvextend с -r переключатель может делать и то, и другое.

Это оно! Теперь убедитесь, что файловая система видит лишнее пространство:

Если бы вы не использовали LVM, вы могли бы заменить эти шаги на resize2fs вместо.

В этой статье о Teknophiles есть некоторые дополнительные сведения об этом процессе, а также снимки экрана с инструментами Hyper-V.

Немного обо всем и все о немногом, или практический опыт системного администратора.

Сентябрь 2010
Пн Вт Ср Чт Пт Сб Вс
« Авг Окт »
12345
6789101112
13141516171819
20212223242526
27282930

Основы LVM - что такое PV, VG, LV

Calendar

16 сентября 2010, 23:36

Если вы как и я только начинаете знакомиться с LVM (Logical Volume Manager) и интенсивно изучаете информацию по этому вопросу, то в первую очередь, нужно четко понимать значение таких сокращений как PV, VG, LV, PE и LE. Именно на последних и хочу остановиться с пояснениями и примерами, так как они применяются во всех документах и статьях. Думаю, расширять свои познания в LVM без понимания, что означают эти аббревиатуры будет затруднительно. Эти же сокращения используются и в выводе команд для работы с LVM и в названиях самих команд, поэтому безусловно нужно понимать, что есть что.

Примеры выполнялись в виртуальной операционной системе Ubuntu Server, которая содержит три виртуальных диска. Но будем считать, что система реальная и диски настоящие - физические, чтобы не возникало путаницы в понятиях.

Начнем с PV. PV (Physical Vollume) для системы LVM - это реальный физический диск или раздел диска, который инициализирован командой pvcreate. Пример. У нас есть три физических диска /dev/sda, /dev/sdb и /dev/sdc:

$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb /dev/sdc

Диск /dev/sda разбит на разделы: /dev/sda1 - основной раздел, /dev/sda2 - расширенный раздел, /dev/sda5 - логический раздел, который занимает все пространство расширенного раздела. Диски /dev/sdb и /dev/sdc на разделы не разбиты. Если выполнить команду pvscan, то можно увидеть какие из этих дисков или разделов дисков являются PV для LVM:

$ sudo pvscan
PV /dev/sda5 VG ubuntuserver lvm2 [7,76 GiB / 32,00 MiB free]
PV /dev/sdb VG ubuntuserver lvm2 [2,00 GiB / 1,70 GiB free]
Total: 2 [9,75 GiB] / in use: 2 [9,75 GiB] / in no VG: 0 [0 ]

Видно, что в данный момент есть два PV для LVM - это раздел диска /dev/sda5 и весь диск /dev/sdb. На рисунке 1 они отмечены желтым цветом:

lvm - Logical Volume Manager - схема с PV, VG и LV

PV - это основа для создания VG - Volume Group. .

Если провести аналогию с обычным жестким диском в операционной системой Linux, то VG для системы LVM - это как неразмеченный жесткий диск для системы Linux.

VG - может состоять из одного, двух и более PV. На рисунке 1 показана VG с именем ubuntuserver (отмечена зеленым цветом), которая состоит из двух PV. Дисковый объем VG равен сумме объемов PV из которых она состоит. В нашем случае он должен равняться 9.75 Гб. Проверим командой vgs:

Если нам мало 9.75 Гб, то можно создать из диска /dev/sdc еще один PV, и добавить его в существующий VG. Тогда объем VG увеличится на объем добавленного PV.

Итак, если VG для системы LVM - это как неразмеченный жесткий диск, то для того чтобы начать работу с ним нужно его разметить - создать разделы. И вот эти разделы и будут называться LV - Logical Volume. На рисунке 1 можно увидеть, что часть пространства VG, отдана под LV с именем root, часть под LV с именем swap_1 и некоторое пространство осталось свободным. Команда lvs покажет информацию о размерах LV:

$ sudo lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
root ubuntuserver -wi-ao 7,64g
swap_1 ubuntuserver -wi-ao 388,00m

Если снова провести аналогию, то LV в LVM - это как /dev/sda1 на реальном жестком диске. То есть LV - это уже логическая единица которую можно форматировать под определенную файловую систему и затем монтировать обычной командой mount.

Надеюсь пока все понятно. Осталось PE и LE. Данные сокращения встречаются в документации не так часто, но без них картина будет неполной. PE - Physical Extention - это блок в пространстве PV фиксированного размера. По умолчанию PE равен 4 Мб, но можно задавать и другие размеры. Таким образом PV состоит из определенного количества PE. Если провести аналогию, то PE в LVM - это как сектор на жестком диске. Только сектор всегда равен 512 байт и изменить его невозможно.

Команда pvdisplay, покажет информацию о PV и PE:

$ sudo pvdisplay /dev/sdb
--- Physical volume ---
PV Name /dev/sdb
VG Name ubuntuserver
PV Size 2,00 GiB / not usable 4,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 511
Free PE 436
Allocated PE 75
PV UUID Rfd126-hs8B-eW42-UoLK-iCxa-CStR-E6dSZi

Можно увидеть, что PV состоит из блоков оп 4 Мбайта (PE Size), всего блоков PE - 511 (Total PE), что дает нам размер в 2 Гб. Также можно увидеть, что 436 блоков PE (Free P), не задействованы - то есть они не состоят ни в одном VG. А 75 блоков PE (Allocated PE) задействованы в VG. Таким образом увеличивать (или уменьшать) в случае необходимости размер VG можно только порциями кратными размеру PE - в нашем случае 4 Мбайта.

Если PE это Physical Extention, то как можно уже догадаться LE - это Logical Extension. То есть LE - это блоки из которых состоит LV. Размер PE всегда равен LE. То есть если PE равен 4 Мбайта, то и LE равен 4 Мбайта. Существует возможность указать соответствие PE и LE. Например, так как показано на рисунке 2:

Соответствие PE и LE при создании VG

Если посмотреть на наш сервер и выполнить команду lvdisplay -m, то можно увидеть соответствие PE и LE в LV. Некоторые строки вывода команды сократил:

$ sudo lvdisplay -m
--- Logical volume ---
LV Name /dev/ubuntuserver/root
VG Name ubuntuserver
LV Size 7,64 GiB
Current LE 1956
Segments 2
Allocation inherit

--- Segments ---
Logical extent 0 to 1880:
Type linear
Physical volume /dev/sda5
Physical extents 0 to 1880

Logical extent 1881 to 1955:
Type linear
Physical volume /dev/sdb
Physical extents 0 to 74

Видим, что LV состоит из PE двух PV. LV root состоит из 1956 LE (Current LE). 1881 LE - это PE c PV /dev/sda5 и 75 LE - это PE c PV /dev/sdb.

На этом пока все по LVM. Можно двигаться в изучении дальше. Если где ошибся в определениях - сообщите об этом в комментариях. И в завершении хочу оставить, несколько ссылок которые по моему мнению хорошо описывают LVM и на которые стоит обратить внимание при обучении:

Logical Volume Manager - на английском языке
LVM HOWTO - на английском языке
Повесть о Linux и LVM (Logical Volume Manager) - на русском языке на основе HOW-TO.

В этой статье будет рассмотрен процесс увеличения места на диске Linux–сервера в облаке Azure Pack Infrastructure от InfoboxCloud. Это стандартная процедура, выполняемая с помощью LVM, которая есть в любом Linux–образе в нашем облаке.

Данная инструкция полезна не только для увеличения размера на едином диске, но и для создания общего пространства из подключенных виртуальных дисков, что позволяет преодолеть максимальный размер виртуального диска (для VHD – 2048 гб) и создать единое большое пространство для данных.


Если вы не хотите разбираться в этом, просто напишите нам тикет в техническую поддержку и мы сделаем все за вас.

Что такое LVM?

LVM — система управления логическими дисками в Linux, высокоуровневое представление подсистемы хранения данных на сервере (более высокоуровневое чем диски и разделы). Эта технология дает системным администраторам гибкие возможности в выделении дискового пространства для приложений и пользователей, включая возможность изменения размера логического тома.

Когда устанавливается Linux на сервер — одна из задач выбора — как разметить диск. С LVM диск включается в группу томов (volume group) и создаются логические тома например для корня диска /. В дальнейшем можно изменять размер логических томов.

Устройство LVM

Сама по себе высокоуровневая абстракция LVM включает в себя логические тома (LV) и физические тома (PV).

Физический том (PV, physical volume) — виртуальный диск сервера или обычный жесткий диск (или таким томом может быть RAID).

Логический том (LV, logical volume) — эквивалент раздела. Он представляется ОС как стандартное блочное устройство и может содержать файловую систему.

Группа томов (VG, volume group) — логическое объединение томов.

Физический блок (PE, physical extent) — кусочки данных на физическом томе, в рамках группы томов имеют идентичный размер логическому блоку (LE, logical extent), размер которого в свою очередь постоянный в рамках группы томов.


Вид представления LVM с физическими и логическими томами.


Вид представления LVM с физическими и логическими блоками, которое одинаково для всей группы томов.

Пример: Давайте представим, что у нас есть группа томов VG1 и у нее размер физического блока 4 Мб. Внутри группы томов 2 жестких диска /dev/hda1 и /dev/hdb1. Эти диски станут физическими разделами PV1 и PV2. Так как физический размер блока 4 мб — такого же размера будут и логические блоки. Диски имеют различный размер и первый включает в себя 99 блоков, а второй 248 блоков. Теперь мы создадим логический том. Он может быть любого размера между 1 и 347 блоками (248+99 блоков). Когда логический том создается устанавливается связь между логическими и физическими блоками, например логический блок 1 может быть связан с физическим блоком 51 из PV1, а данные записанные в первые 4 мегабайта логического тома фактически будут записаны в 51й блок PV1.

Есть 2 вида связи между физическими и логическими блоками:

  • линейный маппинг — когда множество физических блоков последовательно будут связаны со множеством логических блоков, например LE1-99 будут связаны с PV1, а LE 100–347 связаны с PV2.
  • маппинг с чередованием — когда каждый следующий логический блок будет использовать следующий диск, что в физических системах может увеличить производительность, но в облаке не имеет смысла, так как виртуальные диски создаются в СХД, которая уже использует множество дисков параллельно для увеличения производительности на аппаратном уровне.
Снепшоты LVM

Снепшоты LVM позволяют администратору создать новое блочное устройство, сохраняющее копию логического тома, замороженную на определенный момент времени. Эта возможность может быть использована для пакетной обработки данных, создания бекапов или экспериментов, когда вы не хотите задеть живые данные на системе.

В LVM2, используемой в современных версиях Linux, снепшоты доступны для чтения и записи по-умолчанию. При создании снепшота создается таблица исключений, которая используется для сохранения информации, какой блок был изменен. Если блок изменяется на томе-источнике, откуда создан снепшот, он сначала копируется в снепшот, помечается как скопированный в таблице исключений, затем новые данные записываются на оригинальный том. Если данные записываются на снепшот — блок маркируется в таблице исключений как использованный и никогда не копируется с тома-источника.

Увеличиваем раздел Linux-сервера

Создание сервера для тестирования

Создайте сеть с доступом в интернет, сервер с Linux (например с Ubuntu 16.04) и пробросьте его порт 22 на внешний ip, как показано в этой статье. Подключитесь к серверу по SSH.

На всех серверах с Linux в Azure Pack Infrastructure уже предустановлен LVM.

Создание контрольной точки

Перед увеличением объема диска создание контрольной точки крайне рекомендуется. Если что-нибудь пойдет не так вы сможете восстановить сервер на это состояние. Если в вашей подписке недостаточно места, напишите нам тикет в панели управления услугами > Центр поддержки > Написать тикет.

Нажмите на имя вашего сервера и перейдите в раздел «Контрольные точки».



Задайте имя контрольной точки и если необходимо — описание и нажмите галочку «Готово». Контрольная точка будет создана. Теперь вы можете производить дальнейшие операции безопасно.

Увеличиваем раздел диска в панели управления Azure Pack Infrastructure

Войдите в панель управления, выберите ваш сервер, на котором требуется увеличить раздел и нажмите кнопку «Остановить». Дождитесь остановки сервера.


Теперь кликните по имени сервера и перейдите в раздел «Настроить». Кликните по имени диска, который требуется увеличить.


Появится кнопка «Развернуть» — нажмите ее.


Укажите желаемый размер диска (доступно только увеличение) и нажмите галочку «Готово». Размер виртуального диска будет увеличен. Однако этого не достаточно — необходимо увеличить LV-раздел на виртуальной машине, об этом читайте далее.

Создаем новый физический раздел на диске (PV)

Для начала на появившемся свободном месте нужно создать новый физический раздел (PV), который далее можно подключить к LVM. Для этого можно воспользоваться командой:


Выберите свободное место на диске (Free Space, отмечено зеленым цветом) с помощью стрелочек на клавиатуре и затем нажмите Enter, что запустит команду New.


Будет запрошен размер создаваемого раздела. По-умолчанию — максимальный, на все добавленное место, просто нажмите Enter.


Теперь стрелочками на клавиатуре при отмеченном новом разделе выберите пункт Type.


Нажмите Enter для выбора типа раздела.


Выберите тип 8e Linux LVM и нажмите Enter.

Теперь выберите пункт Write и нажмите Enter для того, чтобы изменения были записаны на диск.


Будет запрошено разрешение на применение изменений. Введите yes и нажмите Enter.



Запомните путь Device, в данном случае это /dev/sda3. Путь к устройству потребуется в дальнейшем при добавлении раздела в группу томов (VG).

Для выхода из программы разметки диска выберите пункт Quit и нажмите Enter.


Перезагрузите сервер командой:


и подключитесь к нему по SSH вновь.

Добавляем созданный физический раздел в группу томов (VG)

Для того, чтобы узнать имя созданной группы томов, воспользуйтесь командой:


где в параметре VG name будет указано имя группы томов, в данном случае — ubuntu-vg.

Для добавления физического раздела к группе томов воспользуйтесь командой:


, где ubuntu-vg – имя группы томов, а /dev/sda3 – путь к устройству — новому разделу.



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


Увеличиваем размер логического раздела LVM root и файловой системы раздела до максимально доступного


можете увидеть список логических разделов LVM.


Видим, что создано 2 раздела: /dev/ubuntu-vg/swap_1 и /dev/ubuntu-vg/root. Используя команду:


Видим параметры группы томов.


Видим, что теперь доступно свободное место для расширения томов LVM (Free PE / Size) в размере 75 гб.

Нам необходимо увеличить раздел /dev/ubuntu-vg/root до максимально доступного, a заодно и увеличить размер файловой системы.

Для этого выполните команду:


Теперь выполните команду:


для того, чтобы увидеть новый размер системного раздела.


Мы успешно добавили места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и научились использовать LVM.

Если вы не можете оставлять комментарии на Хабре, напишите нам в Сообществе InfoboxCloud.

LVM для начинающих. Часть 2. Основы управления томами

В нашей прошлой статье мы рассмотрели теоретические основы LVM, в объеме минимально необходимом для начала работы с этой технологией. Сегодня мы перейдем к практическим сценариям и расскажем, как начать использовать LVM и какие задачи можно решать с его помощью. Основной упор при этом будет сделан на базовые действия с привлечением изложенного в предыдущей части теоретического материала, чтобы читатель не только изучил необходимые команды, но и представлял, что именно и на каком уровне абстракции они делают.

Настраиваем LVM при установке системы

Самый простой способ начать использовать LVM - это настроить его при установке системы, для этого следует выбрать соответствующий пункт в меню разметки диска:

LVM-part2-001.jpg

Дальнейшие действия при автоматической разметке ничем не отличаются от обычной установки, и мы не будем заострять на них внимания.

При ручном разбиении диска следует учесть следующий момент: загрузочный раздел /boot или EFI-раздел должны располагаться за пределами LVM-разметки.

Поэтому сразу создадим в самом начале диска первичный раздел размером 250 МБ с файловой системой ext2 и точкой монтирования /boot, не забываем отметить раздел как загрузочный.

LVM-part2-002.jpg

Для EFI разметки следует создать первичный радел размером 499 МБ с типом системный раздел EFI, метка загрузочный будет установлена автоматически:

LVM-part2-003.jpg

Создав загрузочный раздел можно приступать к настройке LVM, для этого выберите Настройка менеджера логических томов (LVM):

LVM-part2-004.jpg

В котором сразу создаем группу томов (VG), рекомендуем давать группам томов и логическим томам понятные имена с использованием сокращений VG и LV, чтобы в дальнейшем было понятно, с чем именно вы имеете дело.

LVM-part2-005.jpg

В качестве устройства для группы томов указываем доступное свободное место:

LVM-part2-006.jpg

Затем создаем нужное количество логических томов, в нашем случае мы сделали тома для корневого раздела и домашней директории:

LVM-part2-007.jpg

После создания структуры LVM мы возвращаемся в меню разметки дисков и указываем для каждого логического тома используемую файловую систему и точку монтирования:

Ниже мы будем рассматривать разметку, созданную автоматически с выделением /home в отдельный раздел.

Сразу после загрузки посмотрим структуру блочных устройств в системе, для этого воспользуемся командой:

В выводе мы видим загрузочный раздел sda1 размером в 243 МБ, расширенный раздел sda2 в котором располагается логический раздел sda5 используемый под LVM. Также видим три логических тома: root, swap_1 и home.

LVM-part2-009.jpg

Обратите внимание, что при использовании MBR-разметки система всегда использует расширенный раздел, размещая в нем все остальные разделы, кроме первого. Это связано с ограничением MBR на 4 первичных раздела. При использовании EFI-разметки расширенный раздел не создается и для LVM был бы использован сразу sda2.

Теперь посмотрим информацию об элементах LVM, начнем с физических томов (PV):

Указанная команда выведет информацию обо всех физических томах, здесь мы увидим используемое устройство или раздел, группу томов, которую входит физический том, его размер, размер физического экстента, общее количество экстентов, а также количество используемых (отображенных) и свободных.

LVM-part2-010.jpg

Вас может удивить необычный размер физического тома <19,76 ГБ, с припиской о неиспользуемых 2 МБ. Но в этом нет ничего необычного, если вспомнить, что физический том в LVM - это набор физических экстентов указанного размера и использовать пространство меньше размера экстента не представляется возможным.

Для получения информации о группах томов выполните:

Здесь мы увидим немного больше информации, кроме размера группы томов и количества физических экстентов в ее составе также указано количество логических и физических томов в группе.

LVM-part2-011.jpg

И, наконец, для получения информации о логических томах выполните:

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

LVM-part2-012.jpg

Для получения краткой информации о томах LVM можно использовать команды:

LVM-part2-013.jpg

Обращаться к LVM томам можно двумя способами, самый простой по имени устройства группы томов - логического тома, например:

Либо через виртуальные устройства:

Обратите внимание, что все одиночные тире в именах устройств заменяются на двойные, а одиночные служат разделителями.

Настраиваем LVM в установленной системе

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

Не ленитесь делать это всегда, как бы вы не были "уверены" в том, что точно знаете какие диски вам нужны. Цена ошибки слишком высока. В нашем случае в системе присутствуют два неразмеченных диска sdb и sdd, которые мы будем использовать для LVM.

LVM-part2-014.jpg

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

Затем создадим группу томов:

Синтаксис команды очень прост: указываем имя группы томов и входящие в нее диски.

Теперь можно создавать логические тома. Начнем с самых простых - томов с линейным отображением. Это можно сделать разными методами, например, указав желаемый размер тома:

Данная команда создаст логический том с именем myvolume1 (имя указывается в опции -n) и размером в 10 ГБ из экстентов группы томов andrey-lvm-vg.

Но указывать размеры в МБ и ГБ не всегда удобно, как мы помним, в основе LVM лежат экстенты и точный размер в байтах не всегда известен. Поэтому можно указывать относительные значения в процентах от емкости группы томов:

В нашем случае будет создан логический том размером в 60% от общего размера группы томов. Также можно указывать относительное значение свободного пространства в процентах:

Приведенная выше команда создала новый логический том myvolume2 на оставшемся свободном пространстве в группе томов andrey-lvm-vg.

Поставим более сложную задачу - создадим том с чередующимся отображением:

Как видим, все оказалось просто, за количество полос чередования отвечает опция -i, но помните, что количество полос не должно превышать количество дисков в группе томов, а свободного пространства на них должно хватать для создания логического тома выбранного размера.

Посмотрим информацию о логическом томе, в частности нас будут интересовать сведения о сегментах. Для получения этой информации запустите команду lvdisplay с ключом -m.

LVM-part2-015.jpg

Данный том состоит из единственного сегмента занимающего логические экстенты от 0 до 10237, которые отображаются в две полосы чередования с размером блока чередования в 64 КБ, этот сегмент отображается на физические экстенты 0 - 5118 каждого из физических томов.

При такой структуре данные будут последовательно и равномерно заполнять оба физических диска, что рекомендуется для SSD в целях не допустить полного заполнения накопителей и выравнивания нагрузки на них. Но если мы расширим данный логический том на еще два диска, то получим совершенно иную картину:

LVM-part2-016.jpg

Теперь у нас имеется два сегмента с набором логических экстентов 0 - 10237 и 10238 - 20475, каждый из которых чередуется в две полосы на дисках sdb, sdd и sde, sdf. Так как логический том выглядит для системы единым пространством, то экстенты будут заполняться преимущественно последовательно и ни о каком выравнивании нагрузки и равномерном заполнении дисков речи не идет, поэтому для SSD таким образом расширять тома не следует.

Созданные разделы следует отформатировать и смонтировать в нужное место файловой системы. Для форматирования в ext4 воспользуемся командой:

После чего раздел можно монтировать, если точка монтирования не существует, то ее нужно создать. Допустим мы хотим смонтировать наш раздел в /mydata, поэтому предварительно создаем каталог:

Для постоянного монтирования раздела внесем соответствующую запись в /etc/fstab, это можно сделать по имени устройства:

Обе записи при этом будут являться верными. Также можно сделать по-современному, указав тома по UUID, для этого сначала узнаем уникальный идентификатор раздела командой:

LVM-part2-022.jpg

Затем внесем в /etc/fstab строку:

Чтобы смонтировать разделы без перезагрузки выполним:

При отключении или удалении раздела не забудьте убрать соответствующую запись из fstab.

Изменение размеров логических томов LVM

Вернемся к конфигурации, созданной при автоматической разметке диска, которую мы рассматривали в начале статьи. Система создала три логических тома: для корневой ФС, подкачки и /home. И вот свободного места в домашней директории стало недостаточно, после чего мы купили и добавили в систему еще один жесткий диск - sdb.

LVM-part2-017.jpg

Создадим на базе нового диска физический том:

И расширим на него существующую группу томов:

Теперь можно расширять логический том:

В нашем примере мы расширили его на 50% свободного пространства в группе томов. Если посмотреть информацию о логическом томе, то мы увидим, что он теперь состоит из двух сегментов, располагающихся на разных физических дисках.

Часто возникает и обратная необходимость - перераспределить место между разделами, уменьшив размер одного и увеличив другой. На первый взгляд - ничего сложного, но эта операция таит в себе подводные камни. Структуру LVM можно представить в виде матрешки: VG содержит внутри LV, они в свою очередь файловую систему. Поэтому операцию по уменьшению размера следует производить последовательно, от внутренних структур к внешним. Т.е. сначала мы должны уменьшить размер файловой системы, а только затем логического тома, в противном случае файловая система будет разрушена, а данные потеряны.

В данном случае лучше всего оперировать абсолютными значениями в байтах, нежели относительными в процентах, так как при малейшей ошибке вы рискуете потерять все свои данные. Прежде всего уменьшим размер файловой системы раздела /home, в нашем случае до 10 ГБ:

Затем уменьшим до такого же размера логический том:

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

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

Указанная команда расширит логический том home на 5118 экстентов с физического тома /dev/sdb, перед выполнением команды следует убедиться, что выбранный том содержит нужное количество свободного пространства, поэтому наиболее удобно использовать свободные экстенты, точное количество которых мы всегда можем узнать получив информацию об указанном физическом томе.

Перемещение логических томов LVM

Еще одна распространенная задача - перемещение томов между физическими дисками. В предыдущем разделе мы расширили логический том home на добавленный нами в LVM диск sdb, при этом его часть так и осталась на sda5. Поставим себе теперь иную задачу: полностью переместить домашнюю директорию на новый диск sdc, а освободившееся пространство на sda5 отдать корневому разделу системы.

Прежде всего создадим на новом диске физический том и добавим его в нужную группу томов:

Затем переместим экстенты логического тома home на новый диск. Так как sdb не содержит никаких иных логических томов, кроме home, то команда будет проста:

Она переместит все физические экстенты диска sdb на диск sdc. Для sda5, который содержит три логических тома такой фокус не пройдет, поэтому добавим конкретики:

Эта команда переместит все физические экстенты тома с именем home с диска sda5 на диск sdc.

Посмотрим информацию о логическом томе home:

Как можно видеть из вывода он теперь содержит единственный сегмент, который расположен на диске sdc.

LVM-part2-019.jpg

Отлично, теперь можно расширить корневой раздел. Но нам следует использовать только пространство sda5 и желательно использовать его по максимуму. Как мы уже говорили выше, лучше всего опираться на число свободных экстентов. Чтобы узнать это значение выполним команду:

В выводе нас интересует единственный параметр - количество свободных экстентов:

LVM-part2-020.jpg

Это число, в отличии от размера в байтах, либо процентов, является абсолютным, и мы можем смело его использовать:

Данная команда расширит логический том root на 2874 физических экстента принадлежащих разделу sda5. Затем не забудем расширить файловую систему:

А теперь посмотрим информацию о логическом томе:

LVM-part2-021.jpg

Теперь корневой раздел состоит из двух сегментов, расположенных в начале и конце физического тома. Почему так? Вернемся в самое начало статьи и вспомним, что автоматически группа томов была размечена на следующие разделы: root, swap_1 и home. Домашний раздел мы переместили, но swap остался на своем месте и теперь root находится по обе стороны от него, если смотреть на физическом уровне, то мы получим схему root - swap_1 - root.

Для чего мы заостряем внимание на этих моментах? С практической точки зрения не так уж и важно, где именно лежат ваши данные, но это важно для понимания работы LVM, чтобы он перестал быть для вас черным ящиком, и вы могли на практике получить подтверждение теоретическим знаниям из предыдущей статьи.

Удаление дисков из LVM

LVM - это очень гибкая система, которая позволяет как добавлять, так и удалять диски. Такая необходимость не всегда связано с отказами, чаще встречаются ситуации, когда мы установили в систему новые, более емкие диски, а старые хотим использовать где-нибудь в другом месте.

Удаляемый диск не должен содержать логических томов, их следует переместить, либо удалить. Это можно сделать командой

Которая удалит логический том myvolume1 из группы томов andrey-lvm-vg.

В приведенном выше примере у нас освободился диск sdb в группе томов debian-lvm-vg. Удалим его из группы томов:

Ну и наконец удалим LVM-разметку с указанного диска:

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

Заключение

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

date

04.02.2020

directory

CentOS, Linux

comments

комментария 4

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

Главные преимущества LVM – высокий уровень абстракции от физических дисков, гибкость и масштабируемость. Вы можете на лету изменять размер логического тома, добавлять (и удалять) новые диски. Для LVM томов поддерживается зекалирование, снапшоты (persistent snapshot) и striping (расслоение данных между несколькими дисками с целью увеличения производительности).

В данной статье мы рассмотрим использование LVM разделов на примере Linux CentOS 8, покажем процесс объединения двух дисков в одну группу LVM, посмотрим как создавать группы, тома, монтировать, расширять и уменьшать размер LVM разделов.

Прежде всего нужно разобраться с уровнями дисковых абстракций LVM.

архитектура и уровни абстрации LVM в Linux

Установка утилиты lvm2

Чтобы начать работу с LVM, нужно установить утилиту lvm2. Выполним следующие команды:

apt-get install lvm2 — для Ubuntu, Mint, Debian

yum install lvm2 – для Centos, Red-Hat, Fedora

установка lvm2

В разных версиях Linux отличается только способ установки утилиты lvm2 (установка через yum/dnf или apt-get), дальнейшие команды для работы с LVM, одинаковы.

Создание LVM разделов

Итак, у нас имеется виртуальная машина KVM, к которой подключены два дополнительных диска. Проверим, что они доступны в системе, используя команду:

fdisk - определение физических дисков в lunux под LVM

Как вы видите, у меня доступны два диска /dev/vdb и /dev/vdc .

При настройке LVM на своем виртуальном или физическом сервере, используйте свою маркировку дисков.

Чтобы диски были доступны для LVM, их нужно пометить (инициализировать) утилитой pvcreate:

pvcreate /dev/vdb /dev/vdc

pvcreate - инициализация дисков под LVM в Linux

Теперь, чтобы убедиться, что данные диски можно использовать для LVM, введите команду pvdisplay:

pvdisplay

Как видим, оба диска отображаются. Разберем информацию из вывода команды:

  • PV Name – имя диска или раздела
  • VG Name – группа томов, в которую данный диск входит (мы пока группу не создали)
  • PV Size – размер диска или размера
  • Allocatable – распределение по группам. В нашем случае распределения не было, поэтому указано NO
  • PE Size – размер физического фрагмента. Если диск не добавлен ни в одну группу, значение всегда будет 0
  • Total PE – количество физических фрагментов
  • Free PE — количество свободных физических фрагментов
  • Allocated PE – распределенные фрагменты
  • PV UUID – идентификатор раздела

С помощью команды pvscan вы можете просканировать диски на предмет PV.

Чтобы проверить результат введите vgdisplay:

vgdisplay - создание LVM группы

Как видим, диски объединены в группу test и VG Size показывает общий размер дисков.

Разберем информацию из листинга команды vgdisplay:

  • VG Name – группа томов, в которую данный диск входит.
  • Format – версия подсистемы lvm, которая используется для создание группы (в нашем случае версия 2)
  • Metadata Areas – область метаданных
  • VG Access – уровень доступа к группе логических томов
  • VG Size – общий объем дисков, которые входят в группу
  • PE Size — размер физического фрагмента
  • Alloc PE / Size – распределенное пространство(количество и объем фрагментов)
  • VG UUID – идентификатор группы

После того, как мы создали общую группу для дисков, мы можем создать логический том на этой группы. При создании тома, используется команда lvcreate.

Чтобы в вашей группе создать логический том определенного размера и именем, используйте команду:

Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.

Если вы хотите сами задать имя, используйте флаг -n:

Несколько примеров для создания логических томов с разными размерами:

lvcreate -l 40%VG test – 40% от дискового пространства группы test

lvcreate -l 100%FREE test – использовать все свободное пространство группы test

Чтобы вывести информацию о логическом томе, используйте lvdisplay:

lvdisplay - создание логического раздела LVM

Так же разберем листинг данной команды:

  • LV Path – путь к устройству логического тома (к диску или разделу)
  • LV Name – имя логического тома
  • VG Name – имя группы томов
  • LV UUID – идентификатор логического тома
  • LV Write Access – уровень доступа к логическому тому
  • LV Creation host, time — информация о хосте, дата когда был создан логический том
  • LV Size – размер диска, доступный для использования логическому тому
  • Current LE – количество логических фрагментов

LVM: создание файловой системы, монтирование логического тома

Чтобы создать файловую систему на логическом томе, воспользуйтесь утилитой mkfs:

Создадим файловую систему ext4 на LVM томе:

файловая система на LVM томе mkfs.ext4

Файловая система была создана без ошибок.

Теперь создадим тестовую директорию и примонтируем логический том к данной директории:

монтирование LVM тома

Как видите, все прошло без ошибок и теперь директория /var/www/home существует как отдельный раздел.

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

Откроем файл:
nano /etc/fstab

И добавим в него следующую информацию:

fstab - автомоннтирование тома LVM

После чего примонтировать том можно будет через mount -a:

Чтобы проверить общую информацию по дискам, разделам и томам, введите команду lsblk:

lsblk - информация о дисках ДМЬ

Как видим, наш созданный том отображается, и указана директория к которой он примонтирован.

Команда lvmdiskscan позволяет просканировать доступные диски, показывает их размер и принадлежность к LVM.

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

Чтобы добавить дополнительный диск к группе томов, нужно воспользоваться уже знакомой схемой:

pvcreate /dev/нашдиск — инициализация диска для lvm

vgextend test /dev/нашдиск — добавление диска в группу томов

Чтобы расширить логический том, воспользуйтесь следующей схемой:

lvextend -L10G /dev/test/test1

Данным способом вы расширите раздел на 10 Гб.

текущий размер LVM тома

Еще несколько примеров расширения 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 томов

LVM позволяют уменьшать размер тома. Но для безопасности умеьшения размера раздела его нужно отключить.

Отмонтируем том от директории:

Выполним проверку диска:

e2fsck -fy /dev/test/test1

уменьшить размер LVM в Linux

Уменьшим раздел файловой системы на 4 Гб:

Теперь уменьшим размер самого LVM тома:

lvreduce -L-4G /dev/test/test1

После чего, нужно примонтировать том обратно и проверить текущий размер:

монтирование LVM после уменьшения размера

Как видим, размер уменьшился до 4 Гб.

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

Для удаления LVM томов, используется команда lvremove:

lvremove удаление LVM тома

Чтобы удалить группу логических томов, используйте:

Убрать метки с LVM дисков:

Создание зеркальных томов LVM

LVM позволяет создать зеркальные тома для повышения отказоустойчивости хранения данных. В LVM зеркале данные одновременно хранятся на двух (или более) физических дисках (подобие RAID-1). Процедура создания зеркального тома в LVM.

  1. Инициализация дисков: pvcreate /dev/sd
  2. Создаем LVM группу: vgcreate mirror1 /dev/sd
  3. Создадим зеркальный LVM том: lvcreate -L 5g -m1 -n lvMirr1 VGmirror1

Инструменты LVM очень удобны для работы, с помощью них можно легко управлять томами, нарезать их на нужные вам размеры и с легкостью использовать под свои нужды. В данной статье я постарался затронуть все основные моменты в работе с LVM.

Читайте также: