Linux увеличить размер диска без перезагрузки

Как быстро увеличить размер раздела диска на сервере

Всем привет! Недавно столкнулся с простой на первый взгляд задачей — увеличить «на горячую» размер диска на сервере Linux.

Описание задачи

Есть сервер в облаке. В моем случае, это Google Cloud — Compute Engine. Операционная система — Ubuntu, файловая система ext4 (подойдет для всех ext). Сейчас подключен диск размером 30 Гб. База растет, файлы пухнут, поэтому нужно увеличить размер диска, допустим, до 50 Гб. При этом мы ничего не отключаем, ничего не перезагружаем.

Внимание! Перед тем как начать, делаем бекап всей важной информации!

1. Для начала, проверим, сколько у нас всего свободного пространства. В консоли Linux пишем:


Простыми словами, у меня 30 Гб всего и 7.9 Гб сейчас свободно. Нужно увеличить.

2. Дальше я иду и через консоль своего хостера подключаю еще немного Гб. В Google Cloud это делается легко, без перезагрузки. Захожу в Compute Engine -> Диски -> Выбираю диск своего сервера — ему и поменяем размер:


Захожу внутрь, нажимаю «Редактировать» и увеличиваю размер диска до нужных мне размеров (в моем случае, до 50 Гб).

3. Итак, теперь у нас 50 Гб. Проверим это на сервере командой:


Видим свои новые 50 Гб, но пока использовать мы можем только 30 Гб.

4. Теперь удалим текущий раздел диска на 30 Гб, создадим новый на 50 Гб. У вас может быть несколько разделов. Возможно, вам нужно будет создать и несколько новых разделов. Для этой операции будем использовать программу fdisk, которая позволяет управлять разделами жесткого диска. Также важно понимать, что такое разделы диска и для чего они нужны — читаем тут. Для запуска программы fdisk используем команду:

5. Внутри интерактивного режима программы fdisk выполняем несколько операций.


Команда выводит список наших текущих разделов. В моем случае один раздел на 30 Гб и еще 20 Гб в свободном плавании, если так можно сказать.

6. Затем вбиваем:


Удаляем текущий раздел для того, чтобы создать новый на все 50 Гб. Перед операцией еще раз проверяем, сделали ли мы бекап важной информации!

7. Далее указываем программе:


Команда создает новый раздел. Все параметры стоит устанавливать по умолчанию — можно просто нажимать Enter. Если же у вас какой-то особый случай, то указываете свои параметры. Как видно из скриншота, я создал раздел на 50 Гб — то, что мне нужно.

8. В итоге указываю программе:


Эта команда записывает изменения и выходит из fdisk. Не пугаемся, что чтение таблицы разделов не удалось. Следующая команда поможет это исправить. Осталось совсем чуть-чуть.

9. Мы вышли из fdisk и вернулись в основную Linux — строку. Далее вбиваем, как нам посоветовали ранее:

Если все прошло успешно, то вы не увидите никакого сообщения. Если у вас не установлена программа partprobe, то установите ее. Именно partprobe обновит таблицы разделов, что позволит нам расширить раздел до 50 Гб в режиме онлайн. Идем дальше.

Читайте также:  Как отключить обновление opera mac os

Подсказка! Установить partprobe можно вот так:

10. Теперь осталось переопределить размер раздела с помощью программы resize2fs. Она сделает это в режиме онлайн — у меня даже в этот момент скрипты работали и писали на диск.

Программа resize2fs перезапишет метаданные файловой системы. Для этого используем следующую команду:


Здесь sda1 — это имя вашего раздела. В большинстве случаев, это sda1, но возможны и исключения. Будьте внимательны. В итоге программа изменила нам размер раздела. Думаю, что это успех.

11. Теперь давайте убедимся, что размер раздела изменился и теперь у нас 50 Гб. Для это повторим самую первую команду:

Источник

Увеличение раздела диска в Linux на лету

Разницы нет: увеличиваете Вы размер раздела жесткого диска на работающей ОС, делаете это на виртуальной машине Proxmox или хостинге VDS . Механика работы одна и та же.

Для расширения раздела без потери данных в Linux нам понадобятся утилиты parted и resize2fs. Они должны быть в любом дистрибутиве по умолчанию. В Debian они есть. Если нет, то устанавливаем.

Сам процесс ресайза раздела прост:

  1. расширяем раздел в панели управления VDS или Proxmox;
  2. размечаем раздел, добавляя ему незанятое пространство, которое добавили в пункте №1;
  3. физически изменяем размер;
  4. перезагружаем ОС.

При этом все данные останутся на месте.

Инструкция по изменению раздела

Расширяем раздел в панели управления VDS или Proxmox

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

Размечаем раздел

Проверяем какой размер раздела «виден» в ОС и как называется раздел:

Из примера видно, что существует жесткий диск /dev/vda уже размером 20GB. На нем есть раздел /dev/vda1, который пока занимает размер в 5GB. Именно эту разницу мы и должны исправить.

Подключаемся к жесткому диску утилитой parted, указывая жесткий диск:

Узнаем каким номером утилита parted обозначила нужный нам раздел:

В примере нужный нам раздел обозначается 1.

Расширяем раздел 1 до 20.5GB (это весь доступный размер):

Где End — это нужный размер раздела.

Выходим из утилиты parted:

На этом этап новой разметки раздела диска закончен.

Физически изменяем размер

Запускаем последнюю команду для применения всех наших действий:

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

Комментарии

Нет комментариев к данной статье.

Оставить свой комментарий

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

Источник

Расширение диска или раздела Linux

В инструкции рассмотрены сценарии расширения дискового пространства разделов в Linux без потери информации.

Принцип увеличения диска:

  1. Расширение раздела.
  2. Изменение размера файловой системы.

В зависимости от типа раздела и файловой системы, действия различаются.

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

Шаг 1. Расширение раздела

Обычные тома

Допустим, есть диск /dev/sdb и раздел /dev/sdb2, который нужно увеличить.

Сначала необходимо отмонтировать раздел:

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

Подключаемся утилитой fdisk к /dev/sdb:

Если мы работаем с разделом более чем 2Тб, используем утилиту parted.

Смотрим номера разделов:

Удаляем раздел (не переживайте — все данные сохраняются):

Читайте также:  Нужен ли нам линукс

* в моем примере, раздел для удаления на второй позиции.

Создаем новый раздел:

Номер раздела — 2:

На запрос начального и конечного секторов просто нажимаем Enter.

Если раздел был загрузочный, добавляем соответствующий флаг:

Еще раз проверяем, что получилось:

LVM-тома расширяются на лету, даже для корневых разделов. В данном примере, работаем с /dev/sda.

Открываем диск утилитой fdisk:

* напомню, что при работе с диском 2Тб и более, следует использовать утилиту parted.

Создаем еще один раздел:

Номер раздела оставляем тот, который предлагает система (просто нажимаем Enter).

Первый и последний сектора также оставляем по умолчанию для использования всего дискового пространства (еще два раза Enter).

Задаем тип раздела:

Выбираем номер раздела (в моем примере создавался раздел 3):

Командой L можно посмотреть список всех типов, но нас интересует конкретный — LVM (8e):

Проинформируем систему, что в таблице разделов произошли изменения:

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

Смотрим наши Volume Group и для нужного добавляем созданный том:

vgextend vg_centos /dev/sda3

* в моем примере группа томов LVM называется vg_centos

Смотрим LVM-разделы и расширяем пространства для нужного:

lvextend -l +100%FREE /dev/vg_centos/lv_root

* данная команда расширяем LVM-раздел /dev/vg_centos/lv_root, используя все свободное пространство (100%FREE).

Шаг 2. Изменение размера для файловой системы

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

Посмотреть файловую систему:

ext2/ext3/ext4:

XFS:

Reiserfs:

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

Если раздел был отмонтирован, монтируем его, например:

mount /dev/sda2 /mnt

Проверяем, что настройки применились:

Увеличение разделов с Gparted

Если работы выполняются на системе с графическим интерфейсом или есть возможность перезагрузить сервер и загрузиться с LiveCD, можно воспользоваться простым средством — утилитой Gparted, которая позволяем менять размер разделов мышкой.

Запускаем утилиту — выбираем диск, с которым будем работать — кликаем правой кнопкой по разделу, который хотим увеличить и выбираем Resize/Move:

В открывшемся окне с помощью мышки или форм меняем размер раздела:

Нажимаем кнопку Resize/Move.

Проверяем изменения в окне программы и сохраняем настройки кнопкой «Apply All Operations»:

Источник

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


Технологии виртуализации VMWare позволяет налету изменять размер дисков гостевых ОС — это факт.

Если для Windows процедура увеличения корневого раздела происходит в пару кликов, без перезагрузки, то изменение корневого (в частности) или смонтированного раздела Linux во время выполнения происходит не так просто. Модифицированная таблица разделов для «корня» не перечитывается ядром, даже после выполнения «partprobe», т.е. в любом случае придется делать перезагрузку.

В случае наличии у вас LVM все гораздо проще, но в моем случае все достаточно стандартно — система состоит из 3 разделов:

Рассмотрим один из возможных вариантов расширение корневой файловой системы Linux «по старинке», используя parted, fdisk и reboot.

  • Заходим в VMWare Client и увеличиваем размер жесткого диска.
  • Запускаем повторное сканирование шины SCSI.

Как видно из синтаксиса ниже общий объем диска увеличился с 10.7GB до 15.0GiB. При этом размеры разделов остались без изменений.

Мне необходимо увеличить раздел с порядковым номером «2».

  • Для начала отключаем swap:
  • Заходим в parted и удаляем 2 и 3 разделы:
  • fdisk записал таблицу разделов, но ядро по-прежнему использует старую таблицу разделов, так что мы должны перезагрузиться.
  • После перезагрузки делаем:
  • Проверяем, что все сделанное нами возымело необходимый эффект
Читайте также:  Строим с эдом проект windows

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

  • Если мы делали swap, не забываем проверить и его:

Источник

Расширение (увеличение) xfs корневого раздела / без остановки

Обычно при создании разделов на серверах и виртуальных машинах я использую lvm, но не в этот раз. Мне нужно было увеличить корневой раздел / с файловой системой xfs и желательно без остановки сервера. Изначально была идея делать маленькие корневые разделы для виртуальных машины, чтобы быстро делать бэкап системы без данных. Но на деле у такого подхода есть свои минусы и неудобства.

В итоге, настал момент, когда мне надоело чистить системный раздел и разгружать символьными ссылками. Я решил его увеличить. Если вы используете lvm, то никаких проблем нет. Просто добавляете еще один диск к виртуальной машине или увеличиваете текущий. Потом новый диск или раздел увеличенного диска добавляете к группе томов и расширяете нужный lvm раздел. Примерно вот так:

Работает наживую даже с корневым разделом. Я часто это делал, способ рабочий, но пару раз я ловил проблемы с загрузкой виртуалки после этого. Так что не рекомендую экспериментировать с такими вещами. Если есть возможность, лучше обойтись без изменения разделов. А если не обойтись, то перед этим обязательно сделать бэкап всей информации и продумать варианты быстрого восстановления.

Сегодня я хотел рассказать о другой ситуации. Корневой раздел не на lvm, а на обычном разделе диска с xfs. Изначально диск виртуалки был 10G, через гипервизор я его расширил до 20G. Получилась такая картина:

Сам диск 20G, а его разделы занимают только 10. Мне надо расширить раздел sda2, на котором точка монтирования /.

На сайте redhat нашел казалось бы рабочий вариант с xfs_growfs. Попробовал запустить:

Получил в конце сообщение — data size unchanged, skipping. Стал разбираться, почему не работает команда, хотя вроде должна. Потом сообразил, что я не правильно понял ее назначение. Она расширит файловую систему xfs, если на разделе есть свободное место. Но у меня то раздел /dev/sda2 на 9G и он весь занят файловой системой. Расширять нечего. Надо сначала увеличить сам раздел.

Для увеличения раздела нагуглил другую утилиту — growpart. Устанавливаю на Centos 7:

Напомню, что у меня перед расширением раздела с xfs вот такая картинка по разбиению диска — диск sda, далее /boot раздел sda1 на 1G, потом корень / sda2 на 9G и дальше свободное место 10G. Мне надо увеличить второй раздел свободным местом. Делаю это так:

Теперь уже расширяю файловую систему xfs на все пространство увеличенного раздела:

Корневой раздел root / с xfs расширил на лету, без остановки и перезагрузки системы. Изначально в рунете нашел информацию по увеличению раздела только через размонтирование, а если системный раздел, то через загрузку с livecd с последующим удалением текущего раздела и созданием нового, расширенного.

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

Источник

Оцените статью