Xen 가상 디스크 크기 조정

Xen 가상 디스크 크기 조정

XEN 호스트에서 가상 머신을 실행하고 있는데 디스크 공간이 부족합니다. /dev/xvda2ext4 파일 시스템으로 포맷된 볼륨을 마운트했습니다 .

이것은 내 가상 머신 xen 구성입니다.

# /etc/xen/vm04.experimental.cfg

kernel      = '/boot/vmlinuz-4.9.0-11-amd64'
extra       = 'elevator=noop'
ramdisk     = '/boot/initrd.img-4.9.0-11-amd64'
root        = '/dev/xvda2 ro'
disk        = [
                  'phy:/dev/vg0/vm04.experimental-disk,xvda2,w',
                  'phy:/dev/vg0/vm04.experimental-swap,xvda1,w',
              ]
...

# lvdisplay /dev/vg0/vm04.experimental-disk
  --- Logical volume ---
  LV Path                /dev/vg0/vm04.experimental-disk
  LV Name                vm04.experimental-disk
  VG Name                vg0
  LV Status              available
  # open                 1
  LV Size                60,00 GiB
  Current LE             15360
  Segments               5
  Allocation             inherit
...

내 볼륨 그룹에는 아직 44GB의 공간이 남아 있습니다 vg0.

# vgdisplay
  --- Volume group ---
  VG Name               vg0
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  36766
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                27
  Open LV               22
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1,07 TiB
  PE Size               4,00 MiB
  Total PE              281534
  Alloc PE / Size       270080 / 1,03 TiB
  Free  PE / Size       11454 / 44,74 GiB

vm04에 남은 공간을 어떻게 할당할 수 있나요?

답변1

올바른 형식 lvextend은 다음과 같습니다.

lvextend -L +40G /dev/vg0/vm04.experimental-disk

가상 머신 자체의 파티션을 확장하는 방법에 대한 지침을 보려면 다음을 사용하세요.이 설명서.

먼저 파티션 크기를 조정해야 합니다. LVM을 사용하는 경우 이는 간단하며 진행 방법을 알고 있을 것입니다. 클래식 파티션을 사용하는 경우 상황이 좀 더 복잡해 재부팅이 필요할 수 있습니다(다른 시스템이나 Live CD를 부팅할 필요는 없지만).

제가 하는 방법은 다음과 같습니다. 먼저 fdisk를 사용하여 파티션을 삭제한 다음(디스크의 데이터가 보존된다는 개념입니다), 같은 위치에 더 큰 크기로 조심스럽게 다시 만듭니다.

이번에도 새 파티션이 이전 파티션과 동일한 블록에서 시작하는 것이 중요합니다. ID도 일치해야 합니다(Linux 시스템의 경우 83). 사소한 오타로 인해 모든 데이터가 손실될 수 있으므로 대비하세요.

안전을 위해 a를 눌러 부팅 플래그를 복원할 수도 있습니다(Wikipedia에 따르면 일부 컴퓨터에는 여전히 부팅 플래그가 필요합니다).

스왑 파티션이 방해가 되는 경우 어떻게 해야 하는지 알아보려면 설명 섹션을 참조하세요.

이제 사람들이 Live CD 사용을 권장하는 이유가 분명해졌습니다. ;-) fdisk가 알려준 대로 계속하기 전에 파티션 테이블을 다시 로드해야 합니다. 가장 안전한 방법은 재부팅하는 것이지만 partprobe 또는 kpartx(자세한 정보)를 사용할 수도 있습니다.

파티션의 크기가 조정되고 파티션 테이블이 다시 로드되면 파일 시스템에서 resize2fs를 실행하기만 하면 됩니다. 이는 루트 파티션으로 마운트된 경우에도 수행할 수 있습니다.

$ sudo resize2fs /dev/sda1

답변2

  1. 볼륨 끄기:

    xen shutdown vm04.experimental
    
  2. 이 볼륨의 모든 스냅샷을 삭제합니다.

    lvchange -an /dev/vg0/snap-tmp-vm04.experimental-disk    
    lvremove /dev/vg0/snap-tmp-vm04.experimental-disk
    
  3. 다음 명령을 사용하여 볼륨 크기를 조정합니다(예: 40GB 확장).

    lvextend -L +40G /dev/vg0/vm04.experimental-disk
    

    이제 VM에는 100GB라는 더 큰 크기가 할당되지만 내부적으로는 여전히 60GB 디스크만 있습니다.

  4. 파일 시스템 크기 조정

    resize2fs /dev/vg0/vm04.experimental-disk
    

    바라보다lvextend 이후에 2fs의 크기를 조정해야 하는 이유는 무엇입니까?
    (결국, 미리 e2fsck -f /dev/vg0/vm04.experimental-disk전화하셔야 해요)

  5. 가상 머신을 다시 시작합니다.

    xen create /etc/xen/vm04.experimental.cfg
    

관련 정보