- PVSM.RU - https://www.pvsm.ru -

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM

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

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 1

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

Что такое 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), размер которого в свою очередь постоянный в рамках группы томов.

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 2

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 3

Вид представления 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-сервера

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

Если у вас еще нет доступа к Azure Pack Infrastructure, заполните заявку на получение бесплатной пробной версии на главной странице https://infoboxcloud.ru [2].

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

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

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

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

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 4

Нажмите кнопку «Создать» для создания контрольной точки.

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 5

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

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

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 6

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 7

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 8

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

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

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

cfdisk

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 9

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 10

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 11

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 12

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 13

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

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 14

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 15

Будет выведено сообщение о том, что таблица разделов изменена успешно.

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 16

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

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 17

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

reboot

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

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

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

vgdisplay

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 18

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

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

vgextend ubuntu-vg /dev/sda3

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 19

Используя команду

pvdisplay

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 20

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

Используя команду

lvdisplay

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 21

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

Используя команду

vgdisplay

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 22

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

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

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

lvextend -l +100%FREE /dev/ubuntu-vg/root

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 23

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

lvdisplay

и убедиться, что увеличение раздела произошло.

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 24

Увеличиваем размер файловой системы

Последний этап увеличения диска — увеличение размера файловой системы.
На разных файловых системах это происходит по-разному. На облачных серверах в Azure Pack Infrastructure по-умолчанию используется ext4.

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

sudo resize2fs /dev/ubuntu-vg/root

, где /dev/ubuntu-vg/root — адрес lv раздела root.

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 25

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

df -h

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

Добавляем места на диске для Linux–сервера в облаке Azure Pack Infrastructure, а заодно и разбираемся с LVM - 26

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

Если у вас возникли любые вопросы по использованию Azure Pack Infrastructure — с радостью поможем и проконсультируем! Вы можете написать нам через личный кабинет https://support.infobox.ru [5] > Центр поддержки > Написать тикет.
Если вы не можете оставлять комментарии на Хабре, напишите нам в Сообществе InfoboxCloud [7].

Успешной работы!

Автор: Infobox

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/it-infrastruktura/201823

Ссылки в тексте:

[1] Azure Pack Infrastructure: https://infoboxcloud.ru/services/azurepack/

[2] InfoboxCloud: https://infoboxcloud.ru

[3] этой статье: https://infoboxcloud.ru/community/blog/azurepack/397.html

[4] по SSH: https://infoboxcloud.ru/community/blog/linuxvps/304.html

[5] панели управления услугами: https://support.infobox.ru

[6] панель управления: https://portal.infoboxcloud.com

[7] Сообществе InfoboxCloud: https://infoboxcloud.ru/community/blog/azurepack/395.html

[8] Источник: https://habrahabr.ru/post/313356/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best