Додаємо місця на диску для Linux–сервера в хмарі Azure Pack Infrastructure, а заодно і розбираємося з 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-сервера

Створення сервера для тестування
Якщо у вас ще немає доступу до Azure Pack Infrastructure, заповніть заявку на отримання безкоштовної пробної версії на головній сторінці https://infoboxcloud.ru.

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

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

Створення контрольної точки
Перед збільшенням обсягу диска створення контрольної точки вкрай рекомендується. Якщо що-небудь піде не так ви зможете відновити сервер на цей стан. Якщо у вашої підписки недостатньо місця, напишіть нам тікет панелі управління послугами > Центр підтримки > Написати тікет.

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



Натисніть кнопку «Створити» для створення контрольної точки.



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

Збільшуємо розділ диска на панелі керування Microsoft Pack Infrastructure
Увійдіть у панель управління, виберіть ваш сервер, на якому потрібно збільшити розділ і натисніть кнопку «Зупинити». Дочекайтеся зупинки сервера.



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



З'явиться кнопка «Розгорнути» — натисніть її.



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

Створюємо новий фізичний розділ на диску (PV)
Для початку на новому вільному місці потрібно створити новий фізичний розділ (PV), який далі можна підключити до LVM. Для цього можна скористатися командою
cfdisk




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



Буде запитаний розмір створюваного розділу. За замовчуванням — максимальний, на всі доданий місце, просто натисніть Enter.



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



Натисніть Enter для вибору типу розділу.



Виберіть тип 8e Linux LVM і натисніть Enter.

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



Буде запитано дозвіл на застосування змін. Введіть yes і натисніть Enter.



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



Запам'ятайте шлях Device, в даному випадку це /dev/sda3. Шлях до пристрою знадобиться в подальшому при додаванні розділу в групу томів (VG).

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



Перезавантажте сервер командою
reboot

і підключіться до нього по SSH знову.

Додаємо створений фізичний розділ в групу томів (VG)
Для того, щоб дізнатися ім'я створеної групи томів, скористайтеся командою:
vgdisplay




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

Для додавання фізичної розділу до групи томів скористайтеся командою
vgextend ubuntu-vg /dev/sda3

, де ubuntu-vg – назва групи томів, а /dev/sda3 – шлях до пристрою — новому розділу.



Використовуючи команду
pvdisplay

ви можете побачити список дисків, підключених до групи томів.



Збільшуємо розмір логічного розділу LVM root і файлової системи розділу до максимально доступного
Використовуючи команду
lvdisplay

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



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

Використовуючи команду
vgdisplay

бачимо параметри групи томів.



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

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

Для цього виконайте команду:
lvextend -r -l +100%FREE /dev/ubuntu-vg/root



Тепер виконайте команду
df -h

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



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

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

Успішної роботи!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.