Назад | Перейти на главную страницу

Измените размер LVM без потери данных

У меня Cloud Linux Serwer с LVM с двумя дисками (40 + 50). На сегодняшний день мне не нужен второй диск, и я хотел бы отключить его, сохранив LVM на будущее.

# vgdisplay
  --- Volume group ---
  VG Name               system
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  20
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               89.75 GiB
  PE Size               4.00 MiB
  Total PE              22977
  Alloc PE / Size       22977 / 89.75 GiB
  Free  PE / Size       0 / 0
  VG UUID               QkkfoN-Ftor-suCL-VF4J-huV2-lhWp-9K5cMx

# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/system-root ext4       88G   21G   63G  25% /
none                    tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev                    devtmpfs  485M  4.0K  485M   1% /dev
tmpfs                   tmpfs     100M  412K   99M   1% /run
none                    tmpfs     5.0M     0  5.0M   0% /run/lock
none                    tmpfs     496M     0  496M   0% /run/shm
none                    tmpfs     100M     0  100M   0% /run/user
/dev/vda1               ext2      236M   98M  127M  44% /boot

# lsblk
NAME                     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                       11:0    1  1024M  0 rom
vda                      253:0    0    40G  0 disk
├─vda1                   253:1    0   243M  0 part /boot
├─vda2                   253:2    0     1K  0 part
└─vda5                   253:5    0  39.8G  0 part
  ├─system-root (dm-0)   252:0    0  88.8G  0 lvm  /
  └─system-swap_1 (dm-1) 252:1    0     1G  0 lvm  [SWAP]
vdb                      253:16   0    50G  0 disk
└─vdb1                   253:17   0    50G  0 part
  └─system-root (dm-0)   252:0    0  88.8G  0 lvm  /

# pvdisplay --maps
  --- Physical volume ---
  PV Name               /dev/vda5
  VG Name               system
  PV Size               39.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              10178
  Free PE               0
  Allocated PE          10178
  PV UUID               aUQpTn-xi1T-ygwu-emIh-I2CT-w2tp-cRUNjl

  --- Physical Segments ---
  Physical extent 0 to 9921:
    Logical volume      /dev/system/root
    Logical extents     0 to 9921
  Physical extent 9922 to 10177:
    Logical volume      /dev/system/swap_1
    Logical extents     0 to 255

  --- Physical volume ---
  PV Name               /dev/vdb1
  VG Name               system
  PV Size               50.00 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              12799
  Free PE               0
  Allocated PE          12799
  PV UUID               5IbHi7-bS0j-ZDEQ-pPfY-BGW4-PAk0-pEV8VH

  --- Physical Segments ---
  Physical extent 0 to 12798:
    Logical volume      /dev/system/root
    Logical extents     9922 to 22720

А теперь, если он хочет использовать команду lvresize

# lvresize --size -50G /dev/mapper/system-root
  WARNING: Reducing active and open logical volume to 38.75 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Система предупреждает меня о потере данных. Как уменьшить пространство, отключив диск без потери данных?

Перед уменьшением размера логического тома необходимо сжать файловую систему ext4. Вы должны размонтировать корневой раздел, чтобы уменьшить файловую систему, вам нужно загрузить сервер с USB / DVD Linux iso и выполнить режим восстановления.

Пример: https://www.thegeekdiary.com/centos-rhel-how-to-shrink-lvm-root-file-system/

Из ссылка, предложенная NoNoNo выше, resize2fs + lvreduce команды могут быть выполнены в одном лайнере, что, на мой взгляд, лучше всего. Тем более, что lvreduce иначе выплюнет действительно плохое предупреждение.

ПЕРЕД ПРИМЕНЕНИЕМ ДАННЫХ ИНСТРУКЦИЙ УБЕДИТЕСЬ, ЧТО СОХРАНИЛИ ВАМ ВАЖНЫЕ ДАННЫЕ.

Инструкции можно продолжить, чтобы:

  1. загрузка с live CD / DVD (Linux или GParted Live)

  2. убедитесь, что ваш корневой раздел не смонтирован

    umount /dev/[partition-name]
    
  3. убедитесь, что LVM включен (возможно, не требуется, по крайней мере, в GParted Live)

    vgchange -ay
    
  4. убирать

    e2fsck -f /dev/[volumegou]/[logicalvolume]
    

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

  5. уменьшить раздел

    lvresize --resizefs -L [newlvsize] /dev/[volumegroup]/[logicalvolume]
    

    Из-за --resizefs то lvresize займет много времени (при условии, что у вас большой раздел, мой 1,8 ТБ потребовалось около 5 часов, чтобы уменьшить его до 1,1 ТБ). Вы должны получать отзывы в своей консоли.

    Примечание. Среда LVM предлагает три команды для изменения размера: lvresize, lvreduce, и lvextend. Изменение размера позволяет изменять размер (больше или меньше), уменьшение допускает только меньшие размеры (т.е. не более X ГБ), а расширение допускает только большие размеры (т.е. не менее X ГБ).