Ubuntu lvm увеличить размер

Обновлено: 04.07.2024

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

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

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

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

Теперь перейдем от теории ближе к практике. Рассмотрим создание LVM, настройку и работу с дисками. Как основную операционную систему мы будем использовать Ubuntu, но данная инструкция подойдет и для любого другого дистрибутива Linux.

Создание LVM Linux

Структура LVM состоит из трех слоев:

  • Физический том (один или несколько), Physical Volume (PV)
  • Группа физических томов, Volume Group (VG)
  • Логический том, который и будет доступен программам, Logical Volume (LV)

Перед тем как начинать создание lvm linux необходимо установить нужные для этого инструменты:

sudo apt install lvm2

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

Инициализация физических LVM разделов

Сначала определимся с томами, которые будем использовать, допустим это будут /dev/sda6 и /dev/sda7. Инициализировать их для работы LVM можно с помощью команды pvcreate:

sudo pvcreate /dev/sda6 /dev/sda7


Чтобы посмотреть действительно ли были созданы физические тома LVM вы можете использовать команду pvscan:


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


Здесь PE Size - это размер одного блока LVM, по умолчанию он равен четырем мегабайтам, но это значение можно изменить.

Создание группы разделов LVM

Группа томов - это не что иное, как пул памяти, который будет распределен между логическими томами и может состоять из нескольких физических разделов. После того как физические разделы инициализированы, вы можете создать из них группу томов (Volume Group, VG):

sudo vgcreate vol_grp1 /dev/sda6 /dev/sda7


С помощью LVM команды 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


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

Посмотреть список доступных логических разделов LVM можно по аналогии с предыдущими разделами с помощью команды 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)

Линейные разделы - это обычные LVM тома, они могут быть созданы как их одного, так и нескольких физических дисков. Например, если у вас есть два диска по 2 гигабайта, то вы можете их объединить и в результате получите один раздел LVM Linux, размером 4 гигабайта. По умолчанию используются именно линейные LVM разделы.

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

Для этого нужно задать количество полос записи с помощью опции -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

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

sudo lvextend -L+100M /dev/vol_grp1/logical_vol1

Точно так же можно выполнить уменьшение LVM раздела с помощью знака -.

Выводы

В этой статье мы рассмотрели создание LVM разделов в linux, а также настройку, увеличение, уменьшение и монтирование LVM Linux. Теперь вы знаете насколько это мощная технология и сколько преимуществ она может дать не только на сервере, но и на домашнем ПК. Вы раньше использовали LVM? Будете использовать?

В этой статье будет рассмотрен процесс увеличения места на диске 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.


Здесь мы видим диск /dev/xvda размером 26.8 Гб. Смотрим сколько места в системе.


Размер диска около 15 Гб. Значит можно увеличить диск более чем на 10 Гб. Также запомним наше LVM устройство /dev/mapper/centos-root

Шаг2. Создаем новый раздел

Далее приводится пример для моей системы. У вас название дисков может отличаться.

n-новый раздел
p-primary
Далее жмем ENTER. И в конце w -запись таблицы на диск


Затем вводим команду

Или перезагружаем систему. Смотрим что получилось


Здесь мы должны увидеть новый созданный диск /dev/xvda3

Шаг3. Инициализация диска


Шаг4. Расширение volume group

Смотрим наши lvm группы


Шаг5. Увеличиваем раздел LVM

Добавим к уже существующему разделу 5 ГБ.


И наконец увеличиваем размер файловой системы.

Если получите ошибку

Значит у вас файловая система не ext4, а xfs. В этом случае используйте xfs_growfs


Как мы видим раздел успешно расширен. Посмотрим что получилось


Как видим файловая система успешно расширена на 5 ГБ. Для того что бы увеличить раздел на всё свободное пространство, наберите команду


Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


Увеличение LVM в виртуальной машине Ubuntu - сделали виртуалку, не рассчитали правильно требуемое место и вот теперь раздел забит и нужно добавить свободного места. Это довольно часто встречается и такая процедура востребована.

Сначала смотрим текущее состояние разделов:

Увеличение LVM в виртуальной машине Ubuntu

Потом забитость разделов:

У меня изначально корневой раздел был забит под 100% 🙂

Hyper-V

Увеличиваем раздел в Hyper-V в свойствах машины, в свойствах виртуального диска, машину нужно погасить. При этом неважно статический или динамический размер диска задавался изначально.

Увеличение LVM в виртуальной машине Ubuntu

Применяем, включаем машину, проверяем:

Увеличение LVM в виртуальной машине Ubuntu

Ubuntu

Теперь нужно установить программу parted:

Она крохотная и установится в любом случае. Далее:

потом print:

Увеличение LVM в виртуальной машине Ubuntu

Сначала увеличиваем extended, затем logical разделы командой resizepart и выходим из программы:

Увеличение LVM в виртуальной машине Ubuntu

Ну или можно проверить результат:

Увеличение LVM в виртуальной машине Ubuntu

Проверяем забитость разделов:

Все как было, также и осталось. Это нормально.

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

Увеличение LVM в виртуальной машине Ubuntu

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

Увеличение LVM в виртуальной машине Ubuntu

Увеличиваем размер логического диска:

Ну или сколько вы там хотите добавить.

Увеличение LVM в виртуальной машине Ubuntu

Увеличение LVM в виртуальной машине Ubuntu

Увеличение LVM в виртуальной машине Ubuntu

Планирование места при установке

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

Корневая файловая система содержит основные файлы для работы операционной системы. Должна включать следующие директории или символические ссылки:

bin, boot, dev, etc, lib, media, mnt,
opt, sbin, srv, tmp, usr, var

Зависит от того, какие директории смонтированы на отдельные разделы

500Mb+ на каждого залогиненного пользователя

Зависит от количества установленных пакетов

Размер зависит от конкретной инсталляции

Зависит от активности на данном разделе

Надо понимать, что рекомендации очень приблизительны, в каждом конкретном случае всё может сильно отличаться. В половине случаев вполне можно пользоваться автоматическим разбиением по умолчанию.

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