df -h 결과가 VGdisplay / LVdisplay와 다릅니다.

df -h 결과가 VGdisplay / LVdisplay와 다릅니다.

디스크 공간이 더 이상 필요하지 않기 때문에 가상 머신에 추가한 디스크를 삭제하려고 합니다. 그러나 VM의 VG는 그곳에서 사용 가능한 거의 모든 데이터를 사용하는 것으로 보입니다.

그러나 zoneminder--vg의 크기를 1.5TB에서 6G로 조정했지만 resiz2fslvdisplay에서는 그렇지 않다고 말합니다.

이것은 일부 명령의 출력입니다.

root@zoneminder:~# lvs
  LV     VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log  Cpy%Sync Convert
  root   zoneminder-vg -wi-ao----   1.52t
  swap_1 zoneminder-vg -wi-ao---- 976.00m
root@zoneminder:~# pvs
  PV         VG            Fmt  Attr PSize   PFree
  /dev/sda3  zoneminder-vg lvm2 a--  900.00g     0
  /dev/sda5  zoneminder-vg lvm2 a--  699.52g 46.57g
root@zoneminder:~# vgs
  VG            #PV #LV #SN Attr   VSize VFree
  zoneminder-vg   2   2   0 wz--n- 1.56t 46.57g

DF-H

Filesystem                       Size  Used Avail Use% Mounted on
udev                             7.9G     0  7.9G   0% /dev
tmpfs                            1.6G  8.9M  1.6G   1% /run
/dev/mapper/zoneminder--vg-root  5.6G  4.9G  431M  92% /
tmpfs                            7.9G     0  7.9G   0% /dev/shm
tmpfs                            5.0M     0  5.0M   0% /run/lock
tmpfs                            7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/sda1                        472M  108M  340M  25% /boot
tmpfs                            1.6G     0  1.6G   0% /run/user/1000

광전지 디스플레이

  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               zoneminder-vg
  PV Size               699.52 GiB / not usable 2.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              179077
  Free PE               11922
  Allocated PE          167155
  PV UUID               SVGqoc-SQ42-tDzp-Qc7H-n90f-1g9n-x0eLWe

  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               zoneminder-vg
  PV Size               900.00 GiB / not usable 0
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              230400
  Free PE               0
  Allocated PE          230400
  PV UUID               Cdanv0-2pLJ-Yp2n-3zsl-JvjH-72QS-Ciwhaj

LV 디스플레이

  --- Logical volume ---
  LV Path                /dev/zoneminder-vg/root
  LV Name                root
  VG Name                zoneminder-vg
  LV UUID                poThtY-v96W-e2Ai-nan7-ckqn-aeBm-T0Kqji
  LV Write Access        read/write
  LV Creation host, time zoneminder, 2018-08-01 22:22:13 +0200
  LV Status              available
  # open                 1
  LV Size                1.52 TiB
  Current LE             397311
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/zoneminder-vg/swap_1
  LV Name                swap_1
  VG Name                zoneminder-vg
  LV UUID                SXQ36r-5Kum-Z3Wa-m9DE-CBVb-h9Wx-kmctKT
  LV Write Access        read/write
  LV Creation host, time zoneminder, 2018-08-01 22:22:13 +0200
  LV Status              available
  # open                 2
  LV Size                976.00 MiB
  Current LE             244
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

그래픽 디스플레이

  --- Volume group ---
  VG Name               zoneminder-vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  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               1.56 TiB
  PE Size               4.00 MiB
  Total PE              409477

  Alloc PE / Size       397555 / 1.52 TiB
  Free  PE / Size       11922 / 46.57 GiB

  VG UUID               lTo8U0-dIL9-Yye3-RVYk-rJu6-w6WQ-zIpL8f

LVM의 데이터에 영향을 주지 않고 /dev/sda3을 삭제하려면 어떻게 해야 합니까? 그런 다음 VGroup을 다시 100G로 다시 빌드하거나 다른 방법으로 다시 빌드하시겠습니까?

fdisk -l

Disk /dev/sda: 1.6 TiB, 1717986918400 bytes, 3355443200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x21880f4a

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1  *          2048     999423     997376   487M 83 Linux
/dev/sda2          1001470 1468004351 1467002882 699.5G  5 Extended
/dev/sda3       1468004352 3355443199 1887438848   900G 8e Linux LVM
/dev/sda5          1001472 1468004351 1467002880 699.5G 8e Linux LVM

Partition table entries are not in disk order.


Disk /dev/mapper/zoneminder--vg-root: 1.5 TiB, 1666443116544 bytes, 3254771712 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/zoneminder--vg-swap_1: 976 MiB, 1023410176 bytes, 1998848 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@zoneminder:~#

업데이트 #1:

@telcoM: 친절하고 상세한 답변에 감사드립니다.
언급하신 모든 사항이 완료되었습니다. 또한 데이터가 물론 디스크 전체에 분산되어 있으므로 데이터를 물리적으로 이동해야 한다는 사실도 발견했습니다.

root@zoneminder:~# pvresize --setphysicalvolume 101G -v /dev/sda5
    Using physical volume(s) on command line.
    Archiving volume group "zoneminder-vg" metadata (seqno 9).
    /dev/sda5: Pretending size is 211812352 not 1467002880 sectors.
    Resizing volume "/dev/sda5" to 211812352 sectors.
    Resizing physical volume /dev/sda5 from 0 to 25855 extents.
  /dev/sda5: cannot resize to 25855 extents as later ones are allocated.
  0 physical volume(s) resized / 1 physical volume(s) not resized


root@zoneminder:~# pvs -v --segments /dev/sda5
    Using physical volume(s) on command line.
    Wiping cache of LVM-capable devices
  PV         VG            Fmt  Attr PSize   PFree   Start  SSize  LV     Start Type   PE Ranges
  /dev/sda5  zoneminder-vg lvm2 a--  699.52g 598.57g      0  25600 root       0 linear /dev/sda5:0-25599
  /dev/sda5  zoneminder-vg lvm2 a--  699.52g 598.57g  25600 141311            0 free
  /dev/sda5  zoneminder-vg lvm2 a--  699.52g 598.57g 166911    244 swap_1     0 linear /dev/sda5:166911-167154
  /dev/sda5  zoneminder-vg lvm2 a--  699.52g 598.57g 167155  11922            0 free

root@zoneminder:~# sudo pvmove --alloc anywhere /dev/sda5:166911-167154 /dev/sda5:25601-25845
  /dev/sda5: Moved: 0.4%
  /dev/sda5: Moved: 100.0%

root@zoneminder:~# pvresize --setphysicalvolume 101G -v /dev/sda5
    Using physical volume(s) on command line.
    Archiving volume group "zoneminder-vg" metadata (seqno 12).
    /dev/sda5: Pretending size is 211812352 not 1467002880 sectors.
    Resizing volume "/dev/sda5" to 211812352 sectors.
    Resizing physical volume /dev/sda5 from 0 to 25855 extents.
    Updating physical volume "/dev/sda5"
    Creating volume group backup "/etc/lvm/backup/zoneminder-vg" (seqno 13).
  Physical volume "/dev/sda5" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

root@zoneminder:~# pvs -v --segments /dev/sda5
    Using physical volume(s) on command line.
    Wiping cache of LVM-capable devices
  PV         VG            Fmt  Attr PSize   PFree  Start SSize LV     Start Type   PE Ranges
  /dev/sda5  zoneminder-vg lvm2 a--  101.00g 44.00m     0 25600 root       0 linear /dev/sda5:0-25599
  /dev/sda5  zoneminder-vg lvm2 a--  101.00g 44.00m 25600     1            0 free
  /dev/sda5  zoneminder-vg lvm2 a--  101.00g 44.00m 25601   244 swap_1     0 linear /dev/sda5:25601-25844
  /dev/sda5  zoneminder-vg lvm2 a--  101.00g 44.00m 25845    10            0 free

실제로 내가 달성하고 싶은 것은 다음과 같습니다(게시물 #18). https://communities.vmware.com/message/2723540#2723540

/dev/sda3지금은 아직 삭제하지 않은 곳에 갇혔는데 , 아직도 fdisk -l크기가 /dev/sda5700G인 것을 확인하고 있습니다.

root@zoneminder:~# fdisk -l
Disk /dev/sda: 1.6 TiB, 1717986918400 bytes, 3355443200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x21880f4a

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1  *          2048     999423     997376   487M 83 Linux
/dev/sda2          1001470 1468004351 1467002882 699.5G  5 Extended
/dev/sda3       1468004352 3355443199 1887438848   900G 8e Linux LVM
/dev/sda5          1001472 1468004351 1467002880 699.5G 8e Linux LVM

Partition table entries are not in disk order.


Disk /dev/mapper/zoneminder--vg-root: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/zoneminder--vg-swap_1: 976 MiB, 1023410176 bytes, 1998848 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

업데이트 #2:

LIVE-CD 관리를 통해 GPARTED 및 PARTED를 사용하여 디스크를 제거하고 LV(M) /dev/sda2에서도 크기를 조정했습니다./dev/sda5

ESXi에서 스냅샷을 찍었으므로 모든 단계를 다시 실행해야 합니다. vmdk의 중첩이 약간 짜증나기 때문입니다.

원본 가상머신(1.6TB)을 복사하는데 시간이 좀 걸립니다. 그 후에는 다른 사람들이 나중에 사용할 수 있도록 모든 단계를 완전히 덤프하겠습니다.

답변1

좋습니다. 성공적으로 축소했습니다.파일 시스템루트 LV 내에서.

다음 단계는 파일 시스템의 새로운 크기에 맞게 LV를 축소하는 것입니다. 실수로 너무 많이 자르면 더 심각한 문제가 발생할 수 있으므로 안전을 위해 약간의 여유를 두는 것이 좋습니다.

파일 시스템 축소 작업은 항상 확장보다 위험하며, 특히 익숙하지 않은 경우 더욱 그렇습니다. 따라서 문제가 발생할 경우를 대비해 필요할 수 있는 모든 것을 백업하세요.

그런 다음 다음 tune2fs -l을 사용하여 파일 시스템에서 정확한 블록 수를 가져옵니다.

tune2fs -l /dev/mapper/zoneminder--vg-root | grep "Block "
Block count:          NNNNNNNNN
Block size:           XXXX

이 두 숫자를 곱하여 파일 시스템의 정확한 크기를 얻은 다음 1024로 나누어 이진수 킬로바이트를 얻고, 1024로 나누어 이진수 메가바이트를 얻습니다. 반올림 오류를 방지하려면 하나를 추가하세요.

expr NNNNNNNNN \* XXXX / 1024 / 1024 + 1
SSSSSS

이제 LV를 축소합니다.

lvreduce -L SSSSSS /dev/mapper/zoneminder--vg-root

이제 Zoneminder VG에 충분한 여유 공간이 있어야 합니다. 이제 완전히 사용되지 않았는지 pvs확인하려면 다음을 사용하세요 ./dev/sda3

pvs출력 에서 PFree 값이 PSize 와 같지 않으면 /dev/sda3루트 LV의 일부 부분이 해당 PV에 여전히 존재하므로 해당 부분을 다른 곳으로 이동해야 합니다. pvmove이것은 쉽게 할 수 있습니다. 지금 완전히 무료 라면 /dev/sda3이 단계를 건너뛸 수 있습니다.

pvmove /dev/sda3

이는 본질적으로 " sda3모든 LV 데이터를 동일한 VG에 속한 다른 PV로 이동하여 비어 있음"을 의미합니다.

pvmove새 위치로 이동하려는 데이터를 미러링한 다음 이전 위치에서 "미러를 제거"하는 방식으로 작동합니다. 따라서 pvmove시스템 충돌로 인해 가동 중단이 발생하더라도 그 결과는 치명적이지 않습니다. 원래 pvmove있던 곳에서 계속하려면 논쟁 없이 실행하세요.

이제 sda3PV는 완전히 비어 있어야 합니다. VG에서 제거하십시오.

vgreduce zoneminder-vg /dev/sda3

이때는 /dev/sda3독립적이고 완전 무료인 LVM PV가 됩니다. 원하는 경우 PVID를 지울 수 있습니다.

pvremove /dev/sda3

이제 /dev/sda3원하는 방식으로 파티션을 자유롭게 재사용할 수 있습니다. ( 파티션을 덮어쓰게 되는 작업을 수행하려는 경우에는 이 pvremove명령이 꼭 필요한 것은 아닙니다 .)

이제 루트 LV를 100GiB로 확장하려면 다음 단계를 따르세요.

lvextend -L 100G /dev/mapper/zoneminder--vg-root
resize2fs /dev/mapper/zoneminder--vg-root

이제 끝났습니다.

여기서는 "파일 시스템 마운트 해제" 또는 "시스템 다시 시작"이라고 말하지 않았습니다.필요 없음.

답변2

LVM 시스템은 사용자가 논리 볼륨을 사용하는 방법을 모릅니다. LV에 사용되는 파일 시스템을 줄여도 LV의 크기는 변경되지 않으며 VG 및 PV의 여유 공간도 변경되지 않습니다(LV에 할당된 모든 공간은 사용 중인 것으로 간주됩니다).

파일 시스템을 줄인 경우 이 명령을 사용하여 LV를 줄일 수 있지만 lvreduce파일 시스템에 맞게 줄이지 않도록 각별히 주의해야 합니다. 그렇지 않으면 일부 데이터가 손실될 수 있습니다.

논리 볼륨을 줄인 후 이 pvmove명령을 사용하여 한 PV에서 다른 PV로 사용된 공간을 이동한 다음 이 vgreduce명령을 사용하여 VG에서 PV를 삭제할 수 있습니다.

관련 정보