LVM: 축소/스크래치, SWAP 확장

LVM: 축소/스크래치, SWAP 확장
kamals@poc02:~$ sudo lvs
  LV                     VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root                   vg_system -wi-ao----  63.98g
  scratch                vg_system -wi-ao---- 465.66g
  .
  .
  swap                   vg_system -wi-ao----  16.00g
  var                    vg_system -wi-ao----  31.99g
kamals@poc02:~$ sudo vgs
  VG        #PV #LV #SN Attr   VSize   VFree
  vg_system   1   6   0 wz--n- 930.51g 296.88g
kamals@poc02:~$ df -h /scratch/
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch  459G  726M  435G   1% /scratch
kamals@poc02:~$ sudo umount /scratch

kamals@poc02:~$ sudo e2fsck -f /dev/mapper/vg_system-scratch
e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
scratch: 25/30523392 files (16.0% non-contiguous), 2134330/122070016 blocks
kamals@poc02:~$ sudo resize2fs /dev/mapper/vg_system-scratch 450G
resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/mapper/vg_system-scratch to 117964800 (4k) blocks.
The filesystem on /dev/mapper/vg_system-scratch is now 117964800 (4k) blocks long.
kamals@poc02:~$ sudo lvreduce -L -9G /dev/mapper/vg_system-scratch
  WARNING: Reducing active logical volume to 456.66 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce scratch? [y/n]: y
  Size of logical volume vg_system/scratch changed from 465.66 GiB (119209 extents) to 456.66 GiB (116905 extents).
  Logical volume scratch successfully resized.
kamals@poc02:~$ sudo mount /dev/mapper/vg_system-scratch /scratch/
kamals@poc02:~$ lsblk | grep scratch
  ├─vg_system-scratch                252:4    0 456.7G  0 lvm  /scratch
kamals@poc02:~$
kamals@poc02:~$ df -h /scratch/
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch  443G  727M  420G   1% /scratch
kamals@poc02:~$


SWAP Space extend:
===================

kamals@poc02:~$ lsblk | grep swap
  ├─vg_system-swap                   252:1    0    16G  0 lvm  [SWAP]
kamals@poc02:~$ sudo swapoff /dev/vg_system/swap
kamals@poc02:~$
kamals@poc02:~$ sudo lvresize -L+9G /dev/vg_system/swap
  Size of logical volume vg_system/swap changed from 16.00 GiB (4095 extents) to 25.00 GiB (6399 extents).
  Logical volume swap successfully resized.
kamals@poc02:~$ sudo mkswap /dev/vg_system/swap
mkswap: /dev/vg_system/swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 25 GiB (26839347200 bytes)
no label, UUID=5fbefbfc-b0fc-46d5-8d5e-b547c184ac14
kamals@poc02:~$ sudo swapon /dev/vg_system/swap
kamals@poc02:~$
kamals@poc02:~$ free -th | grep -i swap
Swap:           24G          0B         24G
kamals@poc02:~$
kamals@poc02:~$ lsblk | grep swap
  ├─vg_system-swap                   252:1    0    25G  0 lvm  [SWAP]

/scratch여기서는 데이터 디스크를 줄이고 9G공간을 늘려 보았습니다 SWAP.

여기에서 LVM 축소가 /scratch예상대로 작동하는 것을 볼 수 (465.66G-9G ~= 456.7G)있는데 왜 FS 크기가 줄어들고 있는 걸까요 df -h?443G459G9G

다시 감소를 수행 1G하면 df 값이 428G.

kamals@poc02:~$ df -h /scratch/
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch  428G  727M  405G   1% /scratch
kamals@poc02:~$

몇 가지 질문이 있습니다.

내가 여기서 뭔가 잘못하고 있는 걸까요?

이 단계가 정확합니까? 가동 중지 시간이 있는 프로덕션 서버에서 이를 구현할 수 있습니까?

이러한 단계를 수행하면 데이터가 손실될 가능성이 있습니까?

더 나은 해결책이 있습니까?

매우 감사합니다!

답변1

파일 시스템 크기로 450G를 사용합니다.

$ sudo resize2fs /dev/mapper/vg_system-scratch 450G

그러나 귀하의 LV는 이보다 큽니다(456.66G).

$ sudo lvreduce -L -9G /dev/mapper/vg_system-scratch
WARNING: Reducing active logical volume to 456.66 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)

따라서 LV를 더 줄이거나(450G로) 다시 호출할 수 있습니다 resize2fs. 그렇지 않으면 6.66G가 사용되지 않은 상태로 유지됩니다.

실제로 파일 시스템 크기 조정을 처리하는 옵션이 lvreduce있습니다 .--resizefs

이 작업을 수동으로 수행하더라도 실제로 파일 시스템을 LV 크기보다 작게 만들 필요는 없습니다. 파일 시스템에 450G를 사용하는 경우 LV에도 450G를 사용할 수 있습니다. 그러나 분수 대신 정수를 사용하면 도움이 될 수 있습니다. 정말로 456.66GiB가 되기를 원한다면 MiB로 표현하는 것이 더 좋습니다.

기타 손실된 공간에 대해서는 tune2fs -l파일 시스템에 루트 예약( Reserved block count!= 0)이 있는지 확인하고, 그렇다면 를 사용하여 변경합니다 tune2fs -m. 이 파일 시스템에 대한 루트 보존이 필요하지 않거나 원하지 않는 경우.

답변2

시도해 lvreduce보고 --resizefs17G를 복원했습니다.

kamals@poc02:~$ sudo lvs
scratch                vg_system -wi-ao---- 454.66g

kamals@poc02:~$ df -h /scratch/
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch  428G  727M  405G   1% /scratch
kamals@poc02:~$ sudo e2fsck -f /dev/mapper/vg_system-scratch
.
.
scratch: 25/28442624 files (16.0% non-contiguous), 2003774/113770496 blocks

kamals@poc02:~$ sudo lvreduce --resizefs -L -3G /dev/mapper/vg_system-scratch
fsck from util-linux 2.27.1
scratch: clean, 25/28442624 files, 2003774/113770496 blocks
resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/mapper/vg_system-scratch to 118400000 (4k) blocks.
The filesystem on /dev/mapper/vg_system-scratch is now 118400000 (4k) blocks long.

  Size of logical volume vg_system/scratch changed from 454.66 GiB (116393 extents) to 451.66 GiB (115625 extents).
  Logical volume scratch successfully resized.

kamals@poc02:~$ sudo mount /dev/mapper/vg_system-scratch /scratch/
kamals@poc02:~$ df -h /scratch/
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_system-scratch  445G  727M  422G   1% /scratch
kamals@poc02:~$

kamals@poc02:~$ sudo lvs
  scratch                vg_system -wi-ao---- 451.66g

관련 정보