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

Linux
Linux

Увеличение размера диска или раздела Linux — достаточно частая процедура в жизни сисадмина. При этом, очень часто требуется выполнить эту операцию «на лету», без остановки работающих сервисов.

В моей практике чаще всего приходилось увеличивать раздела для хранения данных СУБД, вроде Postgres или Mysql, из-за растущего числа клиентов у бизнеса и быстро разрастающихся баз на проде, из-за чего процедура первое время казалась очень страшной. Но на самом деле не так страшен чёрт, как его малюют.

Однако, описанное выше, не отменяет необходимость создания резервной копии перед выполнением процесса. Помните — своевременный бэкап — сохраняет ваши нервы и деньги ваших клиентов. Всегда есть шанс, что что-то пойдет не по плану.

Перейдем к процедуре:

В примере использую тестовую ВМ с Ubuntu-20.04 на борту и 51Гб диска без LVM, у воображаемого хостера в вакууме.

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

df -h
df -h result
df -h

На скрине выше корневой раздел, сточкой монтирования «/» занят на 22%, из 49Гб свободно только 36Гб. А нужно 40Гб, по этому добавим 5Гб нашей ВМ.

Тут вам следует расширить диск вашей машины в гипервозире или панели управления облаком. Я добавил диску 5Гб.

После физического расширения — проверяем, что место добавилось командой:

lsblk
lsblk result
Результат lsblk

Как видно на скрине — диск увеличился на 5Гб до 56Гб, если у вас размер диска не увеличился, то просим систему просканировать железо выполнив команду:

echo 1>/sys/class/block/sda/device/rescan

И по завершении — снова просим lsblk. В результате вы должны увидеть увеличенный объем диска.

Диск увеличили, переходим к расширению раздела:

Запускаем утилиту fdisk выполнив команду:

fdisk /dev/sda

Откроется консоль утилиты, для начала смотрим текущий статус, вводим:

p
fdisk print
fdisk print

Видим /dev/sda2 размером 49.5Гб который требуется увеличить.

Удаляем раздел введя в консоли:

d

Консоль предложит вам выбрать раздел, который вы собираетесь удалить, в моем случае это /dev/sda2, по этому ввожу 2
При этом удалится только запись о диске, данные на нём сохранятся.

delete partition
delete partition

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

n

Консоль проведет вас через несколько шагов создания раздела:

  • Partition number (2-128, default 2) — Логический номер нового раздела, по умолчанию 2, просто нажимаем на Enter
  • First sector (1050624-117440478, default 1050624) — Адрес начала диска, вариант по умолчанию нас так же устраивает — оставляем пустым, жмём Enter
  • Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-117440478, default 117440478) — Адрес конца диска, по умолчанию самый последний сектор, нас устраивает — оставляем пустым, жмём Enter

После этого система сообщит что нашла файловую систему, хотим ли мы её удалить, мы не хотим, потому отвечаем:

n
new partition
Создаем новый раздел

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

p
resized_partition
Увеличенный раздел

Видим, что раздел увеличился, сохраняем и выходим из утилиты введя в консоли:

w

Теперь просим систему перечитать таблицу разделов, вводим:

partprobe /dev/sda

Команда не вернет никакого сообщения в консоль, а нам осталось расширить файловую систему, вводим:

resize2fs /dev/sda2

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

И снова проверяем объем свободного места на диске:

df -h
Место увеличилось
Место увеличилось

Радуемся увеличившемуся месту.

4 Комментарии

2 уведомления

  1. Создание LVM на примере ОС Ubuntu - Sysadmin talks
  2. Увеличение LVM тома "на лету" - Sysadmin talks

Отправить ответ

Ваш e-mail не будет опубликован.


*