Перейти к основному содержанию

Linux — расширяем раздел на лету 5

Linux 2

У нас есть традиция. Каждый год 30 декабря на сервере заканчивается место...

Шлифуем админское кунг-фу. Расширим раздел диска и файловую систему на лету без перезагрузки и без потери данных. Ранее я уже расширял разделы, но везде использовал fdisk. Сегодня я буду расширять диск на виртуальной машине VMware с операционной системой Ubuntu с помощью growpart. Данный метод подойдёт для Debian систем.

Подготовка

Увеличиваем диск на виртуальной машине VMware. Затем делаем снапшот на всякий случай. Если сначала сделать снапшот, то не получится увеличить размер диска.

Действовать приходится быстро, скриншоты делать некогда. На виртуалке у нас два диска по 50 ГБ, место закончилось на втором, а именно на /dev/sdb. Если быть точнее, на разделе /dev/sdb1. Я увеличиваю второй диск виртуалки со 50 до 60 ГБ. Решение временное, нужно потом разобраться как так быстро место закончилось за ночь, но это сейчас не важно, нужно запустить сервис.

Расширяем раздел

Заходим на виртуалку по SSH под рутом.

Мы увеличили диск sdb но система об этом не знает, нужно заставить сделать рескан диска.

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

Или по всем дискам, если требуется:

for D in $(ls /sys/block/sd?/device/rescan ); do echo ${D}; echo 1 > ${D}; done

Теперь нужно изменить наш раздел. Воспользуемся утилитой growpart. Она входит в пакет cloud-guest-utils.

apt-get install cloud-guest-utils
growpart /dev/sdb 1
root@test-pg01:~# growpart /dev/sdb 1
CHANGED: partition=1 start=2048 old: size=104853504 end=104855552 new: size=125827039 end=125829087

Раздел увеличился но файловая система об этом не знает. Теперь изменяем файловую систему (если файловая система xfs то используем xfs_growfs /путь_куда_примонтировано)

resize2fs /dev/sdb1
root@test-pg01:~# resize2fs /dev/sdb1
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/sdb1 is mounted on /var/lib/postgresql; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 8
The filesystem on /dev/sdb1 is now 15728379 (4k) blocks long.

Смотрим что получилось.

lsblk
root@test-pg01:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk
├─sda1   8:1    0    1M  0 part
└─sda2   8:2    0   50G  0 part /
sdb      8:16   0   60G  0 disk
└─sdb1   8:17   0   60G  0 part /var/lib/postgresql
sr0     11:0    1 1024M  0 rom

На /dev/sdb1 стало 60 ГБ места, база заработала, можно спать. Быстро и удобно. Хороший метод. Все действия на одном скрине:

linux

Ссылки

Linux — расширяем раздел на лету

Linux — расширяем раздел на лету 2

Linux — расширяем раздел на лету 3

Linux — расширяем раздел на лету 4

Linux — расширяем раздел на лету 6

Linux — расширяем раздел на лету 7

Теги

 

Похожие материалы