LVM. Уменьшение (Reduce/Decrease/Shrink) объема раздела LVM: различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
== Описание ==
== Описание ==
В данной инструкции мы уменьшаем '''системный''' раздел '''root''', но она также подойдет и для уменьшения '''НЕсистменого''' раздела.
В данной инструкции мы уменьшаем '''системный''' раздел '''root''', но она также подойдет и для уменьшения '''НЕсистемного''' раздела.


== Грузимся с загрузочного LIVE дистрибутива Linux. Например, с SystemRescueCD ==
== Грузимся с загрузочного LIVE дистрибутива Linux. Предпочтительно с '''SystemRescueCD''' ==
Все действия производим в LIVE системе.
Все действия производим в LIVE системе '''SystemRescueCD'''. В ней имеются необходимые утилиты, например, '''fsarchiver'''.


== Вариант 1. XFS файловая система на разделе LV ==
== Если уменьшаемый раздел LV имеет ФС '''XFS''' ==
 
=== Уменьшение раздела с '''XFS''' через удаление текущего раздела и создание нового уменьшенного раздела ===
Активируем LVM разделы
Активируем LVM разделы


Строка 29: Строка 31:
Монтируем сетевую шару, на которую будем бэкапировать файлы раздела root (для этого подойдет и обычный раздел локального диска, например, подключенного через USB)
Монтируем сетевую шару, на которую будем бэкапировать файлы раздела root (для этого подойдет и обычный раздел локального диска, например, подключенного через USB)


<code>mount -t cifs -o username=admin,password=fTrerior //192.168.17.12/img/tmp/root /mnt/root_backup/</code>
<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