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

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

Linux

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

Подготовка

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

linux

Я увеличиваю второй диск виртуалки со 100 до 200 ГБ.

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

Заходим на виртуалку по SSH под рутом. Смотрим что есть.

lsblk
root@log00:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0      2:0    1    4K  0 disk
sda      8:0    0   20G  0 disk
├─sda1   8:1    0   91M  0 part [SWAP]
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0 19,9G  0 part /
sdb      8:16   0  100G  0 disk
└─sdb1   8:17   0  100G  0 part /var/lib/elasticsearch
sr0     11:0    1 1024M  0 rom

Мы увеличили диск 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
lsblk
root@log00:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0      2:0    1    4K  0 disk
sda      8:0    0   20G  0 disk
├─sda1   8:1    0   91M  0 part [SWAP]
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0 19,9G  0 part /
sdb      8:16   0  200G  0 disk
└─sdb1   8:17   0  100G  0 part /var/lib/elasticsearch
sr0     11:0    1 1024M  0 rom  

Теперь нужно изменить наш раздел. Посмотрим.

parted /dev/sdb p
root@log00:~# parted /dev/sdb p
Модель: VMware Virtual disk (scsi)
Диск /dev/sdb: 215GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Флаги диска:

Номер  Начало  Конец  Размер  Тип      Файловая система  Флаги
 1     1049kB  107GB  107GB   primary  ext4

Заметим, что parted может показать диск большего размера, чем мы задали, запомним его: 215 GB, используем для указания размера раздела. У него там свои тонкости, VMware делает диски в GiB, система тоже показывает диск как G (это GiB), а parted работает с GB, это метрическая система, там не 1024, а 1000.

200 GiB = 204800 MiB = 209715200 KiB = 214748364800 B
214748364800 B = 214748365 KB = 214748 MB = 215 GB

Статья №1024 — кибибайт

Изменяем раздел.

parted «диск» resizepart «номер раздела» y «новый размер»GB
parted /dev/sdb resizepart 1 y 215GB
root@log00:~# parted /dev/sdb resizepart 1 y 215GB
Предупреждение: Раздел /dev/sdb1 используется. Действительно хотите продолжить?
Информация: Не забудьте обновить /etc/fstab.

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

lsblk
root@log00:~# lsblk  
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0      2:0    1    4K  0 disk
sda      8:0    0   20G  0 disk
├─sda1   8:1    0   91M  0 part [SWAP]
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0 19,9G  0 part /
sdb      8:16   0  200G  0 disk
└─sdb1   8:17   0  200G  0 part /var/lib/elasticsearch
sr0     11:0    1 1024M  0 rom  

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

resize2fs /dev/sdb1
root@log00:~# resize2fs /dev/sdb1
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/sdb1 is mounted on /var/lib/elasticsearch; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 13
The filesystem on /dev/sdb1 is now 52428544 (4k) blocks long.

Проверяем свободное место после изменения размера.

df -h
root@log00:~# df -h
Файл.система   Размер Использовано  Дост Использовано% Cмонтировано в
udev             3,9G            0  3,9G            0% /dev
tmpfs            799M          84M  716M           11% /run
/dev/sda5         20G         7,1G   12G           39% /
tmpfs            3,9G          12K  3,9G            1% /dev/shm
tmpfs            5,0M            0  5,0M            0% /run/lock
tmpfs            3,9G            0  3,9G            0% /sys/fs/cgroup
/dev/sdb1        197G          82G  107G           44% /var/lib/elasticsearch
tmpfs            799M            0  799M            0% /run/user/10123
tmpfs            799M            0  799M            0% /run/user/10306

Раздел /dev/sdb1 с файловой системой ext4 занимает 197G. Раздел забит на 44%.

Задача выполнена. Раздел и файловая система расширены на лету без перезагрузки и без потери данных. И без остановки сервисов, работающих с этим разделом.

Ссылки

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

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

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

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

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

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

Благодарности

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

Теги

 

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

Windows 10 — генерация DKIM ключей с помощью подсистемы Linux

Воспользуемся подсистемой Linux и сгенерируем DKIM ключи в ОС Windows 10. DomainKeys Identified Mail (DKIM) — метод e-mail аутентификации, разработанный для обнаружения подделывания сообщений, пересылаемых по email. Метод дает возможность получателю проверить, что письмо действительно было отправлено с заявленного домена.