ESXi 게스트에서 디스크 축소가 작동하지 않습니다


11

EHLO 여러분! StackOverflow 네트워크의 첫 번째 게시물 :)

우리는 ext3 파티션을 가진 데비안 6 / amd64 게스트 시스템을 호스트하기 위해 ESXi 5.0 / vCenter 인프라를 운영하고 있으며 데비안 버그 471784에open-vm-tools 따라 소스에서 컴파일됩니다 .

인터넷 어디에서나 제기되는 문제가 있지만 어디에서나 명확한 결론을 얻지 못했습니다.

스냅 샷, 부모, 복제본없이 독립적 인 영구 모드에서 씬 프로비저닝 된 디스크를 축소하려고하면 다음과 같은 오류가 계속 발생합니다.

root@linux64:~# vmware-toolbox-cmd disk list
Shrink disk is disabled for this virtual machine.

Shrinking is disabled for linked clones, parents of linked clones,
pre-allocated disks, snapshots, or due to other factors.
See the User's manual for more information.

(그런데, "다른 요인"무엇이며, 백서 및 기술 매뉴얼의 톤 이는 이며 사용자 매뉴얼? :)

파티션을 0으로 채울 수 있습니다 (실제로 shred -fuzn0큰 파일을 삭제할 때 사용 합니다) 그런 다음 게스트를 종료하고 vmkfstools씬 프로 비전 모드에서 디스크 복제, vMotioning 등과 같은 다양한 방법을 사용 합니다. 이 중 하나가 게스트에 대해 작동 중지 시간을 줄이거 나 데이터 스토어 및 / 또는 호스트간에 데이터가 부적절하게 이동하는 결과를 초래합니다.


답은 다음과 같습니다. ESX / ESXi에서는 축소되지 않습니다 (버전 5 기준).

설명서를

중요 다음 상황에서는 디스크 축소가 허용되지 않습니다 :

  1. 가상 머신은 ESX / ESXi 서버에서 호스팅됩니다. ESX / ESXi 서버 는 가상 시스템을 내보낼 때만 가상 디스크의 크기를 줄일 수 있습니다. 그러나 ESX / ESXi 서버에서 가상 디스크가 차지하는 공간은 변경되지 않습니다.

  2. 가상 머신에는 Mac 게스트 운영 체제가 있습니다.

  3. 당신은 사전 할당 당신이 그것을 만들 때 가상 디스크에 대한 모든 디스크 공간을.

  4. 가상 머신은 스냅 샷을 포함합니다 .

  5. 가상 머신은 연결된 클론 또는 연결된 클론부모 입니다.

  6. 가상 디스크는 비 영구 모드 의 독립 디스크입니다 .

  7. 파일 시스템은 ext4, xfs 또는 jfs 파일 시스템 과 같은 저널링 파일 시스템입니다.

의심 할 여지가 없다 VM웨어 워크 스테이션뿐만 아니라 ESXi를 또는 VCENTER 인스턴스에 연결은 vSphere 클라이언트에서 축소 할 수있는 옵션.


2
vmx 파일에서 찾을 수있는 isolation.tools.diskShrink.disable 키의 값을 보여줄 수 있습니까?
cikuraku

1
거기 없었어요 isolation.tools.diskShrink.disable = "false"를 추가해도 아무런 변화가 없습니다.
NekojiruSou

답변:


3

http://www.vmware.com/pdf/vmware-tools-cli.pdf 페이지 13 :

다음과 같은 상황에서는 디스크 축소가 허용되지 않습니다.

가상 머신은 ESX / ESXi 서버에서 호스팅됩니다. ESX / ESXi 서버는 가상 시스템을 내보낼 때만 가상 디스크의 크기를 줄일 수 있습니다. 그러나 ESX / ESXi 서버에서 가상 디스크가 차지하는 공간은 변경되지 않습니다.


슬프지만 사실 ...
NekojiruSou

18

실제로 VM을 종료해야하지만 ESXi에서 VM을 축소 할 수있는 방법이 있습니다. 방법은 다음과 같습니다.

  1. VM 내부의 사용되지 않은 공간을 모두 제로화하십시오.

    dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero

  2. 다른 마운트 지점, 스왑 파티션 등과 동일하게 수행하십시오.

  3. VM을 종료하십시오.

  4. ESXi로 SSH하고 다음 명령을 실행하십시오.

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

vmkfstools는 VMDK 내부에 "구멍을 뚫습니다". 예를 들어 0으로 채워진 모든 블록을 할당 해제하여 효과적으로 VMDK를 줄입니다.


6
Windows의 경우 Virtual Server 2005 의 복사본을 가져 와서 Precompact.iso 파일을 추출 할 수 있습니다. 여기에는 Windows에서 사용되지 않은 디스크 속도를 모두 없애는 Procompact.exe 프로그램이 포함되어 있습니다.
Chris S

VM이 NFS 스토리지에있을 때 vmkfstools가 작동하지 않습니다.
Sven 31415

0

vSphere ESXi에서 VMDK를 축소 할 수있는 유일한 방법은 vMotion을 다른 데이터 스토어로 내보내거나 마이그레이션 / 스토리지하는 것입니다. 마이그레이션을 처리 할 수있는 라이브 서버 (SQL 또는 Exchange 아님)를 사용하여이 작업을 많이 수행합니다. 이전 서버 관리자는 Thick Provisioned 디스크로 모든 VM을 구축했습니다. 한 데이터 저장소에서 다른 데이터 저장소로 VM을 마이그레이션하고 VMDK를 씬 프로비저닝으로 변경합니다.

서버가 오프라인 인 경우 vmkfstools를 수행 할 수도 있습니다.


-1

ESXi에서 디스크 축소가 가능합니다.

  1. 큰 파일을 찾아 삭제하십시오.

    find / -type f -size +50M

  2. 조각 모음 (아무것도 마운트 해제하지 않아도 됨) 오류를 무시하십시오. 심볼릭 링크 및 장치 파일과 같은 일부 파일은 조각 모음 할 수 없습니다.

    sudo e4defrag /

  3. VMware가 사용하지 않는 공간을 모두 알 수 있도록 사용되지 않은 공간을 모두 채우십시오.

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  4. 축소 작업을 실행하십시오. 4가 실패하면 5로 진행하십시오.

    sudo vmware-toolbox-cmd disk shrinkonly

  5. try 옵션으로 Linux 시스템을 재부팅하고 gparted를 사용하여 파티션 테이블을 편집하십시오. 루트 파일 시스템을 축소하고 스왑 파티션을 삭제하고 루트 파티션 근처로 이동하십시오.

  6. ESXi로 SSH하고 다음 명령을 실행하십시오.

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. * .vmdk 파일을 편집해야합니다. RW 문자 뒤에 VMware 가상 디스크 (VMDK)의 크기를 정의합니다.

    * 40GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. 새로운 크기를 반영하기 위해 다른 데이터 스토어로 마이그레이션하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.