RedHat Linux에서 LVM 크기를 조정한 후 파티션 축소

RedHat Linux에서 LVM 크기를 조정한 후 파티션 축소

물리적 하드웨어에 물리적 Redhat RHEL 6.10 시스템이 있고 이를 vmware로 가상화하려고 합니다. 가상화를 위한 백업에는 dd를 사용합니다. 이제 문제는 가상 머신이 여전히 전체 146GB의 SAS 디스크 데이터 공간(원시)을 차지하지만 실제 데이터는 27GB의 디스크 공간만 차지한다는 것입니다.

resize2fs 및 lvreduce 명령을 사용하여 /dev/mapper/vg_sb00681-lv_root 및 /dev/mapper/vg_sb00681-lv_home 파티션의 논리 볼륨 크기를 조정했습니다(아래 설명 참조).https://www.linuxtechi.com/reduce-size-lvm-partition/) 루트 파티션은 20GB이고 메인 파티션은 5GB입니다. 보시다시피 파티션이 축소되었습니다. 여전히 문제 없습니다.

Filesystem                      Size    Used    Avail   Use%    Mounted on
/dev/mapper/vg_sb00681-lv_root  20G     9.8G    8.9G    53%     /
tmpfs                           931M    0       931M    0%      /dev/shm
/dev/sda1                       477M    105M    347M    24%     /boot
/dev/mapper/vg_sb00681-lv_home  4.8G    1.5G    3.2G    32%     home

이제 GParted를 사용하면 LVM 파티션의 여유 공간을 확보할 수 없습니다.

여기에 이미지 설명을 입력하세요.

파티션을 축소/이동하려고 하면 GParted가 발생하고 오류가 발생합니다. 에러 메시지:

shrink file system
    lvm pvresize -v --yes --setphysicalvolumesize 34433024K '/dev/sda2'
        0 physical volume(s) resized or updated / 1 physical volume(s) not resized
        
        Archiving volume group "vg_sb00681" metadata (seqno 32).
        WARNING: /dev/sda2: Pretending size is 68866048 not 285650944 sectors.
        Resizing volume "/dev/sda2" to 68866048 sectors.
        Resizing physical volume /dev/sda2 from 34869 to 8406 extents.
        /dev/sda2: cannot resize to 8406 extents as later ones are allocated.

그래서 물리 확장 영역을 물리 볼륨 끝으로 이동하기 위해 pvmove를 사용해 보았습니다. 물리 볼륨 사이에 여유 디스크 공간을 제공하지만 여유 공간을 끝까지 채울 수는 없습니다. 다음 단계가 무엇인지, 디스크 공간을 절약하기 위해 가상 머신의 파티션을 줄일 수 있는지 모르겠습니다.

ubuntu@ubuntu:-$ sudo pvs -v --segments /dev/sda2
PV          VG          Fmt     Attr    PSize   PFree   Start       SSize   LV          Stat    Type    PE Ranges
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    0       2006    lv_swap     0       linear  /dev/sda2:0-2005
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    2006    16812               0       free
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    18818   5120    lv_root     0       linear  /dev/sda2:18818-23937
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    23938   1280    lv_home     0       linear  /dev/sda2:23938-25217
/dev/sda2   vg_sb00681  lvm2    a--     <136.21g 103.37g    25218   9651                0       free

누군가 나에게 어떤 아이디어나 조언을 줄 수 있나요?

답변1

pvmove범위를 이동 해야 합니다 . 원본과 대상이 동일한 디스크에 있으므로 다음 --alloc anywhere옵션이 필요합니다.

pvmove --alloc anywhere /dev/sda2:18818-23937 /dev/sda2:2006-7125  # lv_root
pvmove --alloc anywhere /dev/sda2:23938-25217 /dev/sda2:7126-8405  # lv_home

LV가 마운트되어 사용 중인 동안에도 이 작업을 수행할 수 있지만, 시스템 디스크 I/O 부하가 높을 때는 이 작업을 수행하지 마십시오.

이러한 명령 이후 첫 번째 여유 물리적 범위는 8406번이어야 하며 해당 물리적 ​​범위부터 PV 끝까지의 모든 항목이 비어 있어야 하므로 이제 PV를 줄일 수 있습니다.

관련 정보