LVM. Уменьшение (Reduce/Decrease/Shrink) объема раздела LVM: различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| (не показано 11 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
В данной инструкции мы уменьшаем '''системный''' раздел '''root''', но она также подойдет и для уменьшения ''' | В данной инструкции мы уменьшаем '''системный''' раздел '''root''', но она также подойдет и для уменьшения '''НЕсистемного''' раздела. | ||
== Грузимся с загрузочного LIVE дистрибутива Linux. | == Грузимся с загрузочного LIVE дистрибутива Linux. Предпочтительно с '''SystemRescueCD''' == | ||
Все действия производим в LIVE системе. | Все действия производим в LIVE системе '''SystemRescueCD'''. В ней имеются необходимые утилиты, например, '''fsarchiver'''. | ||
== | == Если уменьшаемый раздел LV имеет ФС '''XFS''' == | ||
=== Уменьшение раздела с '''XFS''' через удаление текущего раздела и создание нового уменьшенного раздела === | |||
Активируем LVM разделы | Активируем LVM разделы | ||
| Строка 29: | Строка 31: | ||
Монтируем сетевую шару, на которую будем бэкапировать файлы раздела root (для этого подойдет и обычный раздел локального диска, например, подключенного через USB) | Монтируем сетевую шару, на которую будем бэкапировать файлы раздела root (для этого подойдет и обычный раздел локального диска, например, подключенного через USB) | ||
<code>mount -t cifs -o username=admin,password= | <code>mount -t cifs -o username=admin,password=PassWord#1 //192.168.17.12/img/tmp/root /mnt/root_backup/</code> | ||
Бэкапим файлы раздела root в образ | Бэкапим файлы раздела root в образ | ||
| Строка 58: | Строка 60: | ||
Форматируем новый раздел root<blockquote>В mkfs.xfs (начиная с версии 3.2.4 xfsprogs) недавно стал использоваться по умолчанию суперблок версии 5 с множеством новых улучшений, таких как контрольные суммы метаданных CRC. | Форматируем новый раздел root<blockquote>В mkfs.xfs (начиная с версии 3.2.4 xfsprogs) недавно стал использоваться по умолчанию суперблок версии 5 с множеством новых улучшений, таких как контрольные суммы метаданных CRC. | ||
Чтобы избежать ошибки, требуется '''"-m reflink=0"''', что отключает несовместимую поддержку копирования при записи reflink.</blockquote><code>mkfs.xfs -m reflink=0 /dev/centos_centos7-test01/root</code> | Чтобы избежать ошибки, требуется '''"-m reflink=0"''', что отключает несовместимую поддержку копирования при записи reflink. | ||
Иначе при загрузке основной системы '''root''' раздел загрузится в '''RO''' режиме</blockquote><code>mkfs.xfs -m reflink=0 /dev/centos_centos7-test01/root</code> | |||
Монтируем новый раздел в директорию | Монтируем новый раздел в директорию | ||
| Строка 72: | Строка 76: | ||
<code>umount /mnt/root_*</code> | <code>umount /mnt/root_*</code> | ||
Отключаем подключенный '''SystemRescueCD''' | |||
Грузимся в основную систему | |||
Система должна загрузиться | |||
<code>reboot</code> | <code>reboot</code> | ||
== Если уменьшаемый раздел LV имеет ФС '''EXT4''' == | |||
=== Уменьшение раздела с '''EXT4''' через удаление текущего раздела и создание нового уменьшенного раздела === | |||
Активируем LVM разделы | |||
<code>vgchange -ay</code> | |||
<code>lvs</code> | |||
LV VG Attr '''LSize''' Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |||
'''root''' vg01 -wi-ao---- '''21.00g''' | |||
swap vg01 -wi-ao---- <2.00g | |||
Создаем директорию для бэкапа раздела root в образ | |||
<code>mkdir /mnt/root_backup</code> | |||
Монтируем сетевую шару, на которую будем бэкапировать раздел root (для этого подойдет и обычный раздел локального диска, например, подключенного через USB) | |||
<code>mount -t cifs -o username=admin,password=PassWord#1 //192.168.17.12/img/tmp/root /mnt/root_backup/</code> | |||
Создаем образ раздела '''root'''<blockquote>Будет создан образ '''/mnt/root_backup/root_lv.fsa'''</blockquote><code>fsarchiver savefs /mnt/root_backup/root_lv /dev/vg01/root</code> | |||
Statistics for filesystem 0 | |||
* files successfully processed:....regfiles=27662, directories=5301, symlinks=1186, hardlinks=4250, specials=23 | |||
* files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0 | |||
Удаляем раздел '''root''' | |||
<code>lvremove /dev/vg01/root</code> | |||
Создаем раздел '''root''' с уменьшенным объемом | |||
<code>lvcreate -Zy -L '''10G''' -n root vg01</code> | |||
Форматируем '''root''' | |||
<code>mkfs.ext4 /dev/vg01/root</code> | |||
Восстанавливаем раздел '''root''' из сохраненного ранее образа | |||
<code>fsarchiver restfs /mnt/root_backup/root_lv.fsa id=0,dest=/dev/vg01/root</code> | |||
Statistics for filesystem 0 | |||
* files successfully processed:....regfiles=27662, directories=5301, symlinks=1186, hardlinks=4250, specials=23 | |||
* files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0 | |||
<code>vgs</code> | |||
VG #PV #LV #SN Attr VSize VFree | |||
vg01 1 2 0 wz--n- <23.00g '''11.00g''' | |||
<code>lvs</code> | |||
LV VG Attr '''LSize''' Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |||
'''root''' vg01 -wi-ao---- '''10.00g''' | |||
swap vg01 -wi-ao---- <2.00g | |||
Отключаем подключенный '''SystemRescueCD''' | |||
Грузимся в основную систему | |||
Система должна загрузиться | |||
<code>reboot</code> | |||
=== Уменьшение раздела LV с '''EXT4''' на живом разделе, БЕЗ удаления текущего раздела и создания уменьшенного раздела === | |||
Проверяем ФС | |||
<code>e2fsck -f /dev/vg01/root</code> | |||
Урезаем раздел | |||
<code>resize2fs /dev/vg01/root '''10G'''</code> | |||
Урезаем LV | |||
<code>lvreduce -L '''10G''' /dev/vg01/root</code> | |||
Проверяем ФС | |||
<code>e2fsck -f /dev/vg01/root</code> | |||
Отключаем подключенный '''SystemRescueCD''' | |||
Грузимся в основную систему | |||
Система должна загрузиться | |||
<code>reboot</code> | |||
[[Категория:LVM]] | [[Категория:LVM]] | ||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | ||
Текущая версия на 14:03, 28 декабря 2023
Описание
В данной инструкции мы уменьшаем системный раздел root, но она также подойдет и для уменьшения НЕсистемного раздела.
Грузимся с загрузочного LIVE дистрибутива Linux. Предпочтительно с SystemRescueCD
Все действия производим в LIVE системе SystemRescueCD. В ней имеются необходимые утилиты, например, fsarchiver.
Если уменьшаемый раздел LV имеет ФС XFS
Уменьшение раздела с XFS через удаление текущего раздела и создание нового уменьшенного раздела
Активируем LVM разделы
vgchange -ay
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos_centos7-test01 -wi-ao---- 28.99g swap centos_centos7-test01 -wi-a----- 2.00g data data -wi-a----- 508.00m
Создаем директорию для монтирования системы root
mkdir /mnt/root_lv
Создаем директорию для бэкапа файлов раздела root в образ
mkdir /mnt/root_backup
Монтируем раздел root в директорию
mount /dev/centos_centos7-test01/root /mnt/root_lv/
Монтируем сетевую шару, на которую будем бэкапировать файлы раздела root (для этого подойдет и обычный раздел локального диска, например, подключенного через USB)
mount -t cifs -o username=admin,password=PassWord#1 //192.168.17.12/img/tmp/root /mnt/root_backup/
Бэкапим файлы раздела root в образ
xfsdump -l 0 -L "root_backup" -M "root_backup" -f /mnt/root_backup/root_backup.img /mnt/root_lv
Демонтируем раздел root
umount /mnt/root_lv
Удаляем раздел root, чтобы на его месте создать новый root уменьшенного размера
lvremove /dev/centos_centos7-test01/root
Создаем новый root уменьшенного размера
lvcreate -Zy -L 15G -n root centos_centos7-test01
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos_centos7-test01 -wi-a----- 15.00g swap centos_centos7-test01 -wi-a----- 2.00g data data -wi-a----- 508.00m
vgs
VG #PV #LV #SN Attr VSize VFree centos_centos7-test01 1 2 0 wz--n- <31.00g <14.00g data 1 1 0 wz--n- 1020.00m 512.00m
Форматируем новый раздел root
В mkfs.xfs (начиная с версии 3.2.4 xfsprogs) недавно стал использоваться по умолчанию суперблок версии 5 с множеством новых улучшений, таких как контрольные суммы метаданных CRC.
Чтобы избежать ошибки, требуется "-m reflink=0", что отключает несовместимую поддержку копирования при записи reflink.
Иначе при загрузке основной системы root раздел загрузится в RO режиме
mkfs.xfs -m reflink=0 /dev/centos_centos7-test01/root
Монтируем новый раздел в директорию
mount /dev/centos_centos7-test01/root /mnt/root_lv/
Восстанавливаем файлы root из сохраненного образа
xfsrestore -f /mnt/root_backup/root_backup.img /mnt/root_lv
Демонтируем раздел root и директорию для бэкапа
umount /mnt/root_*
Отключаем подключенный SystemRescueCD
Грузимся в основную систему
Система должна загрузиться
reboot
Если уменьшаемый раздел LV имеет ФС EXT4
Уменьшение раздела с EXT4 через удаление текущего раздела и создание нового уменьшенного раздела
Активируем LVM разделы
vgchange -ay
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root vg01 -wi-ao---- 21.00g swap vg01 -wi-ao---- <2.00g
Создаем директорию для бэкапа раздела root в образ
mkdir /mnt/root_backup
Монтируем сетевую шару, на которую будем бэкапировать раздел root (для этого подойдет и обычный раздел локального диска, например, подключенного через USB)
mount -t cifs -o username=admin,password=PassWord#1 //192.168.17.12/img/tmp/root /mnt/root_backup/
Создаем образ раздела root
Будет создан образ /mnt/root_backup/root_lv.fsa
fsarchiver savefs /mnt/root_backup/root_lv /dev/vg01/root
Statistics for filesystem 0 * files successfully processed:....regfiles=27662, directories=5301, symlinks=1186, hardlinks=4250, specials=23 * files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0
Удаляем раздел root
lvremove /dev/vg01/root
Создаем раздел root с уменьшенным объемом
lvcreate -Zy -L 10G -n root vg01
Форматируем root
mkfs.ext4 /dev/vg01/root
Восстанавливаем раздел root из сохраненного ранее образа
fsarchiver restfs /mnt/root_backup/root_lv.fsa id=0,dest=/dev/vg01/root
Statistics for filesystem 0 * files successfully processed:....regfiles=27662, directories=5301, symlinks=1186, hardlinks=4250, specials=23 * files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0
vgs
VG #PV #LV #SN Attr VSize VFree vg01 1 2 0 wz--n- <23.00g 11.00g
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root vg01 -wi-ao---- 10.00g swap vg01 -wi-ao---- <2.00g
Отключаем подключенный SystemRescueCD
Грузимся в основную систему
Система должна загрузиться
reboot
Уменьшение раздела LV с EXT4 на живом разделе, БЕЗ удаления текущего раздела и создания уменьшенного раздела
Проверяем ФС
e2fsck -f /dev/vg01/root
Урезаем раздел
resize2fs /dev/vg01/root 10G
Урезаем LV
lvreduce -L 10G /dev/vg01/root
Проверяем ФС
e2fsck -f /dev/vg01/root
Отключаем подключенный SystemRescueCD
Грузимся в основную систему
Система должна загрузиться
reboot