Розширення дискового простору на VPS сервері
Брак дискового простору на VPS-сервері — проблема, з якою рано чи пізно стикається практично кожен адміністратор. Чи то розрослі логи, об'ємні бази даних, файли користувачів чи просто невірний початковий розрахунок, розширення диска стає необхідністю. Розширення дискового простору на VPS-сервері зазвичай складається з двох ключових етапів: спочатку ви збільшуєте розмір віртуального диска на рівні вашого хостинг-провайдера (через панель управління або API), а потім — проводите відповідні маніпуляції всередині операційної системи сервера, щоб вона "побачила" і могла використовувати новий простір, розширюючи розділи і файлові системи. Цей процес вимагає уважності і розуміння структури дисків, але цілком здійсненний для будь-якого досвідченого сисадміна.Чому місце закінчується і чим це загрожує?
Перш ніж заглиблюватися в технічні деталі розширення, давайте коротко згадаємо, чому дисковий простір має властивість "зникати" і які наслідки це несе.
Причини можуть бути різноманітні:
- Неконтрольоване зростання логів: Журнали веб-серверів, баз даних, системних служб можуть займати гігабайти, якщо їх регулярно не ротувати або не очищати.
- Розростання баз даних: Особливо актуально для проектів, що активно розвиваються, або систем з великим обсягом транзакцій.
- Дані користувачів: Файли, завантажені на сайт, поштові скриньки, сховища — все це з часом накопичується.
- Кеші і тимчасові файли: Деякі програми створюють величезні кеші, які не завжди очищаються автоматично.
- Встановлення нового ПЗ: Додаткові сервіси і бібліотеки вимагають місця.
- Невірне планування: Спочатку виділений обсяг диска виявився недостатнім для довгострокових потреб проекту.
- Відмова служб: Бази даних не зможуть записувати нові дані, веб-сервери перестануть створювати кеші, поштові сервери відмовляться приймати листи.
- Пошкодження даних: У критичних ситуаціях деякі служби можуть пошкодити свої дані через неможливість коректно завершити операції.
- Падіння продуктивності: Система починає активно використовувати своп, що різко знижує чутливість.
- Неможливість оновлень: Для установки патчів і оновлень потрібне вільне місце.
Підготовка — Запорука Успіху
Як і будь-яка операція з дисками, розширення вимагає ретельної підготовки. Не ігноруйте цей етап, щоб уникнути неприємних сюрпризів і втрати даних.Резервне копіювання і знімки (Snapshots)
Це не просто рекомендація, це обов'язкова умова. Перед будь-якими змінами дискової підсистеми переконайтеся, що у вас є актуальна і працездатна резервна копія всіх важливих даних. В ідеалі, зробіть два типи бекапів:
- Знімки (Snapshots) VPS: Більшість хостинг-провайдерів, включаючи Valebyte, надають функцію створення знімків сервера. Це миттєва копія всього стану вашого VPS в певний момент часу. У разі помилки ви зможете відкотитися до початкового стану за лічені хвилини. Переконайтеся, що ваш VPS хостинг підтримує таку функцію і вона активна.
- Локальні бекапи даних: Зробіть резервні копії баз даних, конфігураційних файлів і важливих директорій (наприклад,
/var/www,/etc,/home) засобами самої ОС (наприклад,mysqldump,pg_dump,tar). Збережіть ці бекапи на віддаленому сховищі.
Аналіз поточного стану дискової підсистеми
Перш ніж що-небудь міняти, потрібно зрозуміти поточну конфігурацію.
# Проверяем общее использование диска и точки монтирования
df -h
# Находим крупные директории (может занять время на больших дисках)
du -sh /* 2>/dev/null | sort -rh | head -n 10
# Определяем имя диска, разделы и их файловые системы
lsblk -f
# Просматриваем таблицу разделов (для MBR обычно /dev/sda, для GPT может быть /dev/vda, /dev/nvme0n1 и т.д.)
sudo fdisk -l /dev/sda
# Или для GPT разделов
sudo parted -l /dev/sda
# Проверяем, какие файловые системы примонтированы
mount | grep /dev/sd
Зверніть увагу на ім'я диска (наприклад, /dev/sda, /dev/vda, /dev/nvme0n1), номери розділів (/dev/sda1, /dev/sda2), їх файлові системи (ext4, xfs) і наявність LVM (Logical Volume Management).
Планування і вікно обслуговування
Визначте, скільки додаткового простору вам потрібно. Заплануйте операцію на період мінімального навантаження на сервер. Хоча багато кроків можна виконати "на льоту", деякі операції (особливо з перезавантаженням або зміною таблиці розділів) можуть вимагати короткого простою.
Потрібен більший обсяг диска для вашого VPS?
Ваш проект росте і вимагає більше простору? Виберіть ідеальний VPS-тариф, щоб масштабувати ваш сервер без проблем. — від 4.49 €/міс.
Вибрати VPS-тариф →Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Крок 1: Збільшення розміру диска на рівні провайдера
Це перший і найпростіший крок, який виконується не в командному рядку сервера, а в панелі управління вашого хостинг-провайдера. У кожного провайдера цей процес може трохи відрізнятися, але загальна логіка така:
- Авторизуйтесь в панелі управління вашого VPS-хостингу.
- Знайдіть розділ управління вашим сервером або дисками.
- Виберіть опцію "Змінити розмір диска", "Розширити диск" або аналогічну.
- Вкажіть новий, більший розмір диска.
- Підтвердіть зміни.
Зазвичай ця операція займає всього кілька хвилин. Залежно від провайдера і технології віртуалізації, для того щоб ОС "побачила" новий розмір диска, може знадобитися перезавантаження VPS. Якщо провайдер явно про це не повідомляє, спробуйте спочатку без перезавантаження, але будьте готові до нього.
# Если требуется перезагрузка
sudo reboot
Крок 2: Оновлення інформації про диск в ОС
Після того як ви збільшили розмір диска у провайдера, операційна система вашого VPS повинна "дізнатися" про це. Іноді це відбувається автоматично, але частіше потрібне невелике втручання.
# Проверяем, видит ли ОС новый размер диска
sudo fdisk -l /dev/sda
# Или
sudo lsblk
# Якщо розмір диска не оновився, спробуйте перечитати таблицю розділів
# Для більшості систем:
sudo partprobe
# Або, якщо partprobe не допомагає або недоступний:
# echo 1 > /sys/class/block/sda/device/rescan # Замініть sda на ім'я вашого диска
У виводі fdisk -l або lsblk ви повинні побачити, що загальний розмір диска (наприклад, /dev/sda) збільшився, але розмір існуючих розділів (наприклад, /dev/sda1) залишився таким самим. Це нормально, ми займемося ними на наступному кроці.
Крок 3: Розширення розділів і файлових систем
Тепер, коли ОС бачить додатковий простір, нам потрібно розширити існуючий розділ або створити новий, а потім розширити файлову систему, щоб вона могла використовувати цей простір. Цей крок сильно залежить від того, як налаштовано вашу дискову підсистему.
Сценарій 1: Простий розділ (без LVM)
Це найпоширеніший сценарій для невеликих VPS, де кореневий розділ (/) або інший розділ займає весь диск без використання LVM. Припустимо, ваш основний розділ — /dev/sda1.
Варіант А: Видалення та перестворення розділу (з обережністю!)
Цей метод підходить для MBR-дисків і вимагає крайньої уважності. Ми видаляємо старий розділ і створюємо новий, використовуючи весь доступний простір, але з тими ж початковими параметрами, щоб не втратити дані.
УВАГА: Це потенційно небезпечна операція. Найменша помилка у вказівці початкового сектора призведе до втрати даних. Переконайтеся, що у вас є свіжий знімок і бекапи!
# Запускаємо fdisk для вашого диска (наприклад, /dev/sda)
sudo fdisk /dev/sda
# Всередині fdisk:
# 1. Натисніть 'p' для виводу таблиці розділів і запам'ятайте початковий сектор розділу, який потрібно розширити (наприклад, /dev/sda1).
# Зазвичай це '2048'.
# 2. Натисніть 'd', потім номер розділу (наприклад, '1'), щоб видалити його.
# 3. Натисніть 'n', потім 'p' (для основного розділу) або 'e' (для розширеного), потім номер розділу (наприклад, '1').
# 4. Введіть початковий сектор, який ви запам'ятали на кроці 1 (дуже важливо!).
# 5. При запиті кінцевого сектора просто натисніть Enter, щоб використовувати весь доступний простір.
# 6. Натисніть 'p' ще раз, щоб переконатися, що новий розділ виглядає правильно.
# 7. Натисніть 'w' для запису змін на диск і виходу.
Після запису змін може знадобитися перезавантаження, щоб ядро оновило інформацію про розділи:
sudo reboot
Варіант Б: Використання growpart (рекомендується, якщо доступно)
Утиліта growpart (частина пакета cloud-guest-utils або cloud-utils-growpart) набагато безпечніша і простіша, оскільки вона автоматично розширює розділ до кінця диска.
# Встановіть, якщо відсутня (для Debian/Ubuntu)
# sudo apt update && sudo apt install cloud-guest-utils
# Для CentOS/RHEL
# sudo yum install cloud-utils-growpart
# Розширюємо розділ /dev/sda1
sudo growpart /dev/sda 1
growpart автоматично визначить новий доступний простір і розширить вказаний розділ. Перезавантаження після цього зазвичай не потрібне.
Розширення файлової системи
Після розширення розділу необхідно повідомити файловій системі, що у неї тепер є більше місця.
- Для файлових систем ext2/ext3/ext4:
sudo resize2fs /dev/sda1
Ця команда розширить файлову систему на розділі /dev/sda1 до максимально доступного розміру. Її можна виконувати на примонтованій файловій системі (крім кореневої, якщо не впевнені, але для кореневої теж часто працює).
sudo xfs_growfs /mount/point
Важливо: xfs_growfs працює з точкою монтування, а не з іменем пристрою. Наприклад, якщо /dev/sda1 примонтовано як /, то команда буде sudo xfs_growfs /. Якщо примонтовано як /mnt/data, то sudo xfs_growfs /mnt/data.
Сценарій 2: Використання LVM (Logical Volume Manager)
LVM надає набагато більше гнучкості в управлінні дисковим простором і є кращим вибором для багатьох сисадмінів. Якщо ваш сервер використовує LVM, процес розширення буде виглядати так:
1. Розширення Physical Volume (PV)
Припустимо, ваш LVM знаходиться на розділі /dev/sda2.
# Якщо ви розширили розділ /dev/sda2, на якому знаходиться PV
sudo pvresize /dev/sda2
Ця команда повідомить LVM, що Physical Volume /dev/sda2 тепер має більший розмір.
2. Перевірка Volume Group (VG)
Після розширення PV, Volume Group (VG) автоматично "побачить" новий вільний простір.
# Перевіряємо вільний простір в VG
sudo vgdisplay
У виводі ви побачите поле Free PE / Size, яке повинно показувати доступний новий простір.
3. Розширення Logical Volume (LV)
Тепер потрібно розширити потрібний Logical Volume (наприклад, lv_root в vg_system).
- Розширити на весь доступний вільний простір:
sudo lvextend -l +100%FREE /dev/mapper/vg_system-lv_root
(Замініть vg_system-lv_root на ім'я вашої групи томів і логічного тома)
sudo lvextend -L +10G /dev/mapper/vg_system-lv_root
4. Розширення файлової системи (для LV)
Як і у випадку з простим розділом, після розширення LV необхідно розширити файлову систему.
- Для файлових систем ext2/ext3/ext4:
sudo resize2fs /dev/mapper/vg_system-lv_root
sudo xfs_growfs /mount/point
Наприклад, якщо ваш LV vg_system-lv_root примонтовано як /, то sudo xfs_growfs /.
Сценарій 3: Розширення XFS файлової системи
Як вже згадувалося, для XFS використовується утиліта xfs_growfs, яка працює з точкою монтування. Це важливо пам'ятати, так як для ext-файлових систем ми вказуємо ім'я пристрою.
# Розширити кореневу XFS файлову систему
sudo xfs_growfs /
# Розширити XFS файлову систему, примонтовану в /mnt/data
sudo xfs_growfs /mnt/data
xfs_growfs можна запускати на примонтованій і активній файловій системі.
Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Перевірка та підтвердження
Після виконання всіх кроків обов'язково переконайтеся, що дисковий простір дійсно розширився і доступний операційній системі.
# Перевіряємо вільне місце
df -h
# Перевіряємо розміри розділів і файлових систем
lsblk -f
Вивід df -h повинен показати збільшений розмір розділу, який ви розширювали. Якщо все зроблено правильно, ви побачите, що дисковий простір збільшився, і тепер ваша система може ним користуватися.
Можливі проблеми та поради
- "Partition 1 starts at X but ends at Y, disk size Z": Це означає, що ядро все ще використовує стару таблицю розділів. Спробуйте
sudo partprobeабо перезавантажте сервер. - "Bad magic number in super-block while trying to open /dev/sda1": Скоріш за все, ви вказали неправильне ім'я пристрою або намагаєтесь розширити файлову систему, яка не відповідає типу (наприклад,
resize2fsдля XFS). - Неправильне ім'я пристрою: Завжди двічі перевіряйте імена дисків та розділів (
/dev/sda,/dev/sda1,/dev/mapper/vg-lv). Помилка тут може призвести до непрацездатності системи або втрати даних. - Відсутність утиліти: Якщо команда не знайдена (наприклад,
growpart,pvresize), встановіть відповідний пакет (cloud-guest-utils/cloud-utils-growpartдляgrowpart,lvm2для LVM утиліт). - Завжди читайте man-сторінки: Якщо ви не впевнені в команді, використовуйте
man [команда](наприклад,man fdisk,man lvextend) для отримання детальної інформації.
Висновки
Розширення дискового простору на VPS-сервері — рутинне, але відповідальне завдання для системного адміністратора. Ключ до успіху тут — це ретельна підготовка, розуміння структури дискової підсистеми та послідовне виконання кроків.
Завжди починайте з бекапів та знімків. Переконайтеся, що ви розумієте, чи працюєте ви з простими розділами, чи з LVM, оскільки це кардинально змінює підхід. Використання LVM з самого початку значно спрощує управління дисковим простором у майбутньому, надаючи гнучкість у зміні розмірів логічних томів без необхідності перерозмітки фізичних розділів.
Дотримуючись цих рекомендацій, ви зможете безпечно та ефективно розширити дисковий простір на вашому VPS, забезпечивши стабільну роботу ваших проєктів.
Потрібна максимальна продуктивність та обсяг?
Для найвимогливіших проєктів, де важлива кожна мілісекунда та кожен гігабайт. Відкрийте для себе міць виділених серверів.
Знайти сервер →