Общее описание действий
- Для того, чтобы увеличить размер дискового раздела, на диске должно иметься свободное место, не занятое другими дисковыми разделами;
- Если свободного места на диске нет - то нужно либо удалить, либо уменьшить другие дисковые разделы;
- Для того, чтобы уменьшить размер дискового раздела в нём должно быть свободное место, не занятое файловыми системами. При этом свободное место не должно быть фрагментировано, и находиться в конце дискового разделе. Штатный инстре;
- Если свободного места в дисковом разеделе нет - то нужно либо удалить, либо уменьшить файловые системы;
- Для того чтобы уменьшить размер файловой системы в ней должно быть свободное место.
- Если в файловой системе свободного места нет (ненормальная ситуация) либо свободного места недостаточно, нужно удалить или заархивировать файлы, находящиеся в этой файловой системе.
Далее в качестве базовой расматривается умеренно-неудобная ситуация, возникающая при эксплуатации компьютера со стандартно установленной ОС:
- Свободного места на диске нет;
- Есть дисковый раздел подкачки (swap). В современных системах наличие выделенного дискового раздела для области подкачки является не более чем традицией, так как для подкачки можно в любой момент использовать файлы (см. Область подкачки (swap): особенности применения и обеспечения безопасности). Таким образом, раздел swap можно безболезненно удалить, однако в рассматриваемой конфигурации задача усложняется тем, что этот раздел находится на LVM-разделе;
- Предполачается, что на находящейся в эксплуатации машине свободного места в файловых системах мало, и уменьшать их размер нерационально. Возможность оптимизации процесса за счёт уменьшения файловых систем и, соответсвенно, дисковых разделов рассмотрена отдельно.
Исходная конфигурация
Для написания статьи использовался компьютер со следующими параметрами:
- Размер единственного жесткого диска 32ГБ;
- При установке ОС:
- Выбрано имя машины lvs (используется в именовании LVM-устройств);
- Была выбрана установка с использованием LVM;
- Была принята стандартная конфигурация разметки диска с вынесением каталога /home в отдельный дисковый раздел и с созданием области подкачки (swap);
В итоге получена следующая конфигурация:
Физические дисковые разделы
Command | ||
---|---|---|
| ||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 32G 0 disk ├─sda1 8:1 243M 0 part /boot ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 31,3G 0 part |
где:
- sda1 - дисковый раздел с каталогом /boot, размер 243МБ
- sda2 - неиспользованное простанство для вырвнивания начала следующего дискового раздела;
- sda5 - дисковый раздел LVM, имеющий размер 31.3ГБ, на котором находятся дисковые разделы LVM, содержащие каталоги /root, /home и область подкачки (командой lsblk LVM-разделы не отображаются).
Физические тома LVS
Имеется один физический том LVS:
Command | ||
---|---|---|
| ||
|
Группы томов LVS
Имеется одна группа томов LVS:
Command | ||
---|---|---|
| ||
VG #PV #LV #SN Attr VSize VFree lvs-vg 1 3 0 wz--n- 31,76g 0 |
Логические тома LVS
Имеется три логических тома LVS:
Command | ||
---|---|---|
| ||
|
При этом более информативная команда просмотра информации о физических томах:
Command | ||
---|---|---|
| ||
Wiping internal VG cache Wiping cache of LVM-capable devices PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges /dev/sda5 lvs-vg lvm2 a-- 31,76g 0 0 2836 root 0 linear /dev/sda5:0-2835 /dev/sda5 lvs-vg lvm2 a-- 31,76g 0 2836 1023 swap_1 0 linear /dev/sda5:2836-3858 /dev/sda5 lvs-vg lvm2 a-- 31,76g 0 3859 4271 home 0 linear /dev/sda5:3859-8129 |
Показывает, что:
Предупреждение |
---|
дисковый LVM-раздел swap_1 расположен между разделами root и home, то есть удалив этот раздел - уменьшить физический раздел не получится, так как свободное место будет находиться между существующими разделами. |
Сценарий действий
Информация |
---|
Если компьютер уже не загружается, все дальнейшие действия могут быть выполнены после загрузки с live-USB (см. статью Создание загрузочных носителей USB flash drive а также статью Создание собственных Live-CD/Live-USB в Astra Linux). |
Если компьютер работоспособен, некоторые предварительные действия лучше выполнить из обычной сессии. |
Предварительные действия
Предупреждение |
---|
Перед выполнением дальнейших действий сделать и проверить резервную копию данных. |
Проверить и отключить область подкачки:
Command Title sudo swapon NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 4G 0B -2
Command sudo swapoff /dev/dm-1
Или просто отключить все области подкачки:
ElfktybCommand sudo swapoff -a
Удалить раздел подкачки из таблицы монтирования (можно просто закомментировать соответствующую строчку в файле /etc/fstab):
Блок кода #/dev/mapper/lvs--vg-swap_1 none swap sw 0 0
Удалить LVM-раздел swap_1:
Command Title sudo lvremove /dev/lvs-vg/swap_1 Do you really want to remove active logical volume lvs-vg/swap_1? [y/n]: y
Logical volume "swap_1" successfully removed
Если всё сделано правильно, то команда pvs покажет наличие свободного места в "середине" дискового раздела:
Command | ||
---|---|---|
| ||
Wiping internal VG cache Wiping cache of LVM-capable devices PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 0 2836 root 0 linear /dev/sda5:0-2835 /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 2836 1023 0 free /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 3859 4271 home 0 linear /dev/sda5:3859-8129 |
При этом видно, что свобдное место имеет рамер 1023 блока, а дисковый раздел home имеет размер 4271 блоков, то есть раздел home больше, чем доступное свободное место.
Дефрагментация дискового LVM-раздела
Информация | ||||
---|---|---|---|---|
При необходимости данный шаг может быть выполнен без использования live-USB. Так как в рассматриваемом примере дефрагментация выполняется за счет перемещения дискового раздела /home, перед операцией можно:
а по завершению снова примонтировать:
Это может сохранить работоспособность сервисных служб, обеспечив непрерывность их работы. |
Если ваш дисковый раздел не фрагментирован, этот шаг можно пропустить, и перейти к следующему.
Если ваши файловые системы не сильно заполнены, то дефрагментацию можно существенно ускорить уменьшив дисковые разделы.
Если размер свободного места больше, чем размер переносимого LVM-раздела, то устранить фрагментацию можно одной командой:
Command |
---|
sudo pvmove --alloc anywhere /dev/sda5:3859-8129 |
где 3859-8129 - диапазон блоков переносимого раздела (см. вывод команды sudo pvs -v --segmens выше).
В рассматриваемом случае размер свободного места меньше размера переносимого LVM-раздела, и команда pvmove сообщит об этом:
Command | ||
---|---|---|
| ||
Insufficient free space: 4271 extents needed, but only 1023 available Unable to allocate mirror extents for lvs-vg/pvmove0. Failed to convert pvmove LV to mirrored |
В таком случае перенос дискового раздела можно выполнить по частям, указывая какие диапазоны блоков куда переносить. В рассматриваемом примере размер свободного места 1023 блока, и удобно переносить по тысяче блоков:
sudo pvmove --alloc anywhere /dev/sda5:3859-4859 /dev/sda5:2836-3836
В итоге:
Информация | ||
---|---|---|
| ||
Wiping internal VG cache Wiping cache of LVM-capable devices PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 0 2836 root 0 linear /dev/sda5:0-2835 /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 2836 1001 home 0 linear /dev/sda5:2836-3836 /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 3837 1023 0 free /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 4860 3270 home 1001 linear /dev/sda5:4860-8129 |
Далее:
Command |
---|
sudo pvmove --alloc anywhere /dev/sda5:4860-5860 /dev/sda5:3837-4837 sudo pvmove --alloc anywhere /dev/sda5:5861-6861 /dev/sda5:4838-5838 sudo pvmove --alloc anywhere /dev/sda5:6862-7862 /dev/sda5:5839-6839 sudo pvmove --alloc anywhere /dev/sda5:7863- /dev/sda5:6840- |
И в итоге раздел дефрагментирован:
Command | ||
---|---|---|
| ||
Wiping internal VG cache Wiping cache of LVM-capable devices PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 0 2836 root 0 linear /dev/sda5:0-2835 /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 2836 4271 home 0 linear /dev/sda5:2836-7106 /dev/sda5 lvs-vg lvm2 a-- 31,76g 4,00g 7107 1023 0 free |
Предупреждение |
---|
Размер использованного в примере раздела около 32ГБ, что в десятки раз меньше реальных дисковых разделов. То есть, в реальной системе такая пошаговая дефрагментация потребует в десятки раз больше шагов и соответствующее количество времени. |
Уменьшение размера физического дискового раздела
При наличии правильно выделенного свободного места дисковый раздел (в том числе - LVM) можно уменьшить используя входящий в состов live-USB графический инструмент gparted ("Пуск" - "Системные" - "Редактор разделов Gparted").