Добавление нового диска, LVM, Ubuntu

Автор: | 4 декабря 2022

Несколько лет назад для добавления нового диска в Федору и маунта его в отдельную папку я плясал с бубном несколько часов. Сейчас все немного упростилось.

Добавить отдельный диск, сделать отдельную точку монтирования и примапить туда этот диск — сейчас это 5 команд и все готово. Мне было интересно расширить LV (Logical Volume), на котором уже установлена Ubuntu 22.04 на лету, не перегружая систему. Вот как это делается.

Сначала термины:

Volume Group (VG) — это высокоуровневый контейнер, содержащий один или несколько логических и физических томов.

Physical Volume (PV) — представляет собой запоминающее устройство, такое как диск или другой носитель данных.

Logical Volume (LV) — эквивалентен разделу диска и, как и раздел диска, может содержать файловую систему.

Physical Extent (PE) — Каждый физический объем (PV) делится на блоки одинакового размера, известные как physical extents.

Теперь практика.

Смотрим что у нас есть:

vgdisplay

Наш Volume Group

У нас есть Volume Group с именем ubuntu-vg, с размером physical extent равным 4.00MiB и в общей сложности имеется около 930 Гб для логических томов (Logical Volume).

Смотрим имеющиеся LV

lvdisplay

Имеющиеся Logical Volume

Теперь нужно понять на каких физических устройствах у нас расположен этот Logical Volume

pvdisplay

Физические устройства

Этой информации достаточно, добавляем и расширяем. У меня остался диск на 4 Тб, который некоторое время использовался для видеоархивов в Windows. Я его подключил. И теперь снова выполняем команду:

pvdisplay

Новый диск

Да, если на диске осталась хоть какая-то файловая система или разделы — лучше сразу удалить. Иначе получим ошибку типа 'Cannot use /dev/sdb: device is partitioned'. Нужно выполнить команду fdisk /dev/sdb , затем набрать команду 'd' (delete) и после этого команду 'w' (write).

Теперь пробуем перевести диск в режим physical volume:

pvcreate /dev/sdb

Если в ответ получили ошибку, что то типа 'Device /dev/sdb excluded by a filter' или опять же 'Cannot use /dev/sdb: device is partitioned' — нужно вычистить диск командой:

wipefs -all /dev/sdb

В ответ получим:

/dev/sdb: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sdb: 8 bytes were erased at offset 0x3a3817d5e00 (gpt): 45 46 49 20 50 41 52 54
/dev/sdb: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdb: calling ioctl to re-read partition table: Success

И теперь снова

pvcreate /dev/sdb

Получим сообщение:

Physical volume "/dev/sdb" successfully created.

Теперь смотрим что получилось:

pvdisplay

Добавили диск

Physical volume создан, нужно добавить его в нашу группу — ubuntu-vg , делается это командой:

vgextend ubuntu-vg /dev/sdb

В ответ получим:

Volume group "ubuntu-vg" successfully extended

Добавили в группу и теперь осталось расширить на него наш Logical Volume. Я для примера расширю на все имеющиеся 3.6 Тб, делается это командой:

lvextend -L+3.6T /dev/ubuntu-vg/ubuntu-lv

Немного погодя в ответ получим:

Rounding size to boundary between physical extents: 3.60 TiB.
Size of logical volume ubuntu-vg/ubuntu-lv changed from 929.00 GiB (237824 extents) to <4.51 TiB (1181543 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.

Теперь у нас стало на 4 Тб больше места. И это заняло всего несколько минут. Система спокойно продолжала работать. После этого я лишь хотел перегрузить железо полностью и посмотреть как система загрузится.

Все получилось

Всем добра!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*