powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Публикации участников [закрыт для гостей] / Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
11 сообщений из 11, страница 1 из 1
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #40
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Действия, описанные в данной заметке, в частности производились на виртуалке сервера СУБД для обслуживаемых форумов. Все гостевые ВМ - РЕД ОС 8, в качестве виртуализации используется Альт виртуализация (Proxmox), так как РЕД СОФТ не предоставляет РЕД виртуализацию для свободной загрузки, но не суть, что Proxmox, что oVirt и основанные на них Альт и РЕД виртуализация базируются на QEMU-KVM.

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

Если вы собрались выполнять подобную процедуру и никогда не делали, особенно по уменьшению ФС, раздела и диска, предварительно потренируйтесь на тестовой ВМ для получения собственного представления о производимых действиях и фиксации алгоритма для себя.

Осуществляя описанную здесь процедуру, я предварительно сделал полную резервную копию ВМ, создал тестовую ВМ, на которой произвёл все действия, пошагово зафиксировал для себя со скриншотами.

#####

Полезное:
https://access.redhat.com/articles/1196333
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/lv_reduce

#####

Важно! раздел с ext4 уменьшить можно, с xfs - нельзя!
...
Изменено: 20.10.2025, 16:47 - basename
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #41
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Предыстория.

27 мая 2025 в рамках плановых обновлений ОС и ПО на серверах форума я задумал уменьшить корневой диск на сервере СУБД.

В декабре 2024 вышел патч, в котором добавлялась колонка на таблицу постов. При добавлении колонки было невозможно создать индекс полнотекстового поиска. При выполнении ALTER TABLE Мария дублирует таблицу и ещё там что-то делает и при помощи программы lsof я увидел, что пишет что-то служебное в /var/tmp, на корневом разделе, который маленький. Сразу не нагуглив решение и причину - я просто увеличил диск и всё применилось, как понятно. Но такое раскидывание местом и размер корневого диска, не вписывающийся в общую схему - меня не устраивал.

#####

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

Что при увеличении, что при уменьшении - главное представлять себе, как всё это выглядит, можно себе в голове нарисовать такую картинку:
Спойлер
pasted_image.png
Диск->[таблица разделов<->LVM PV]-> LVM LV->FS

Соответственно, расширять надо снизу вверх, уменьшать надо сверху вниз. LVM может и не быть, тогда меньше действий. Обратите внимание, перечитывать размер PV надо после внесения изменений в таблицу разделов. То есть, при уменьшении, если по картинке сверху вниз, вы вначале изменяете таблицу разделов, потом PV,

при увеличении диска (можно прямо на живую, выключать ничего не надо):

- расширяем виртуальный диск в среде виртуализации
- в таблице разделов fdisk удаляем раздел и создаём заново с того же !!!!начального сектора!!! (иначе данным кирдык) и до конца
- применяем изменения на физический том LVM PV - pvresize
- расширяем логический том LVC LV - lvextend
- расширяем фаловую систему - resize2fs

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

- уменьшаем файловую систему до нужного объема resize2fs
- уменьшаем логический том lvreduce
- в таблице разделов fdisk удаляем раздел и создаём заново с того же !!!!начального сектора!!! до нужного значения
- применяем изменения на физический том LVM PV - pvresize
- уменьшаем диск в среде виртуализации
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #42
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Рассмотрим на примере.

Задача, вернуть корневой диск к такому виду. Тип диска - raw. Формат хранения данных LVM-thin

1. Стенд. Исходные условия.Виртуальный диск 32 гига /dev/sda
Корневой раздел /dev/sda3
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #43
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2. Расширяю до 128 гигов (в окошке добавить на сколько увеличить). Как на сервере СУБД для чистоты эксперимента.

- расширил в среде виртуализации на нужный объем
- в fdisk удалил раздел sda3 и создал заново с того же начального сектора!!! и на всё доступное
- сказал LVM изменить физический том
Код
1.
pvresize /dev/sda3
- сказал LVM расширить логический том и запросил сразу же изменение ФС (ключ -r)
Код
1.
lvextend -r -l +100%FREE /dev/vg_system/root
resize2fs не делаю, так как в lvextend уже сделалось при помоще ключа -r. Если бы LVM не было - надо было бы сделать что-то вроде resize2fs /dev/sda3

Ну в данном случае, если бы не указывался ключ -r то
Код
1.
resize2fs /dev/vg_system/root
Иногда, после расширения диска в среде виртуализации, изменения не видны и fdisk отображает старый объем. В этом случае надо перечитать геометрию диска, например
Код
1.
echo 1 > /sys/block/sda/device/rescan
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #44
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2.1 Расширилось
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #45
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
3. Уменьшение диска (Уменьшение - опасная процедура. Права на ошибку нет. Надо забэкапиться! )

Файловая система должна поддерживать уменьшение!. Например, xfs - не поддерживает, хотя ред хат усилиенно её пытается впихнуть ещё на этапе установки при автоматическом разбиении диска. Это нужно представлять на этапе установки, планируете ли вы изменения в дальнейшем в сторону уменьшения или нет. ext4 поддерживает. В red os по умолчанию ext4. Ну и я сознательно проверял, чтобы она была, чтобы у меня был манёвр.

С диска установочного надо загрузиться в rescue. На живую не получится. Войти просто в оболочку, без монтирования.
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #46
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
3.1 Уменьшение ФС и логического тома LVM

- сказал LVM изменить логический том до размера 29 гигов и предварительно запросил изменение размера ФС (ключ --resizefs)
Код
1.
lvreduce --resizefs -L 29G /dev/vg_system/root
или кому удобнее можно так (сколько отнять места)
Код
1.
lvreduce --resizefs -L -96G /dev/vg_system/root
то есть, команда вначале уменьшит размер ФС, потом уменьшит логический том

Если без ключа --resizefs, то вначале надо сделать
Код
1.
resize2fs /dev/vg_system/root 29G
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #47
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
3.2 Уменьшение раздела в таблице разделов

- в fdisk удалил раздел sda3 и создал заново с того же начального сектора!!! и до нужного объема
- сказал LVM изменить физический том
Код
1.
pvresize /dev/sda3
- перегрузился, проверил, ФС изменено, LVM изменено, таблица разелов изменена
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #48
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
3.3. Уменьшение диска в среде виртуализации (тут уже зависит от среды виртуализации и типа хранения данных, в моём случае это Proxmox VE и LVM thin)

Работы выполняются уже непосредственно на гипервизоре. Нужно

- сохранить таблицу разделов виртуального диска dev/stg-pve2-vm/vm-9999-disk-0 при помощи программы gdisk
Код
1.
gdisk /dev/stg-pve2-vm/vm-9999-disk-0
интерактивные команды: b,q

Cохранил в файл /root/tmp/9999-guid.bak

- уменьшить том LVM thin при помощи команды lvreduce
Код
1.
lvreduce -L -96G /dev/stg-pve2-vm/vm-9999-disk-0
- восстановить ранее сохранённую таблицу разделов из сохранённого файла /root/tmp/9999-guid.bak на виртуальнай диск dev/stg-pve2-vm/vm-9999-disk-0
Код
1.
gdisk /dev/stg-pve2-vm/vm-9999-disk-0
интерактивные команды: r, l, /root/tmp/9999-guid.bak, w, y

- перечитать конфигурацию
Код
1.
qm rescan
...
Рейтинг: 0 / 0
Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
    #49
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Готово!
pasted_image.png
...
Рейтинг: 0 / 0
basename:
Тема опубликована.
11 сообщений из 11, страница 1 из 1
Форумы / Публикации участников [закрыт для гостей] / Увеличение и уменьшение дискового пространства с FS в Linux и виртуального диска в среде виртуализации, основанной на QEMU-KVM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]