VirtualBox에서 VMDK 디스크 이미지 크기를 줄이는 방법

Yes, the author decided to shake the old days, and remember something more mundane, from his sysadmin everyday life.



2011년 말에 VMware에서 발명한 Virtual Machine Disk를 나타내는 VirtualBox 디스크 이미지 기본 VDI 형식인 VMDK보다 휴대용 디스크 이미지에 더 많이 사용되는 형식이 있습니다. AWS과 같은 주요 클라우드 제공업체에서 널리 홍보하고 지원합니다. , Google Cloud , DigitalOcean , VMDK Hosting 등 디스크 이미지의 이 형식은 상당한 잠재력을 가지고 있습니다. vSphere 하이퍼바이저의 제어 하에 64 terabytes 크기에 도달하는 경우가 설명되어 있습니다.

실제로 그러한 볼륨은 물론 필요하지 않습니다. 많은 IT 직원이 2022년에도 원격으로 작업하고 있습니다. 그리고 반대로 문제는 종종 역전됩니다( hello 유럽 및 이스라엘 광대역 🐌 제공업체의 놀라운 속도, 비동기 액세스 및 셰이프 업로드!): 디스크 이미지를 가능한.

VMDK는 VDI와 달리 마지막 백업 시점부터 데이터 변경 사항의 증분 백업을 허용합니다. 따라서 VDI 및 VHD에 비해 VMDK 파일의 백업 프로세스가 훨씬 빨라집니다. 비공식 테스트에서도 VMDK가 VDI보다 훨씬 빠릅니다. VMDK 디스크 이미지는 streamOptimized for featuring 소위 희소 데이터 지원일 수 있습니다.

따라서 가상 머신이 디스크 공간을 덜 사용하도록 하기 위해 이 문서에서는 가상 디스크 파일(확장자가 .vmdk인 파일)을 축소(압축)하는 방법을 설명합니다. 또한 다른 사람에게 업로드하고 배포하는 것이 더 간단합니다.

표준 삭제 루틴은 공간이 0으로 설정되지 않는 한 VirtualBox가 공간이 실제로 비어 있음을 인식하게 하지 않습니다. 가상 머신에 로그인한 후 다음 명령을 실행합니다.

cat /dev/zero > zero.fill; sync; sleep 1; sync; rm -f zero.fill


운영 체제와 동일한 디스크 내에 스왑 파일이 할당된 경우 스왑 파일을 비활성화하여 소비되는 디스크 공간을 훨씬 더 줄일 수 있습니다. 예:

swapoff /dev/sda4


⚠️ /etc/fstab 파일의 스왑 파티션을 주석 처리하고 이를 수행한 후 가상 머신을 재부팅하는 것을 잊지 마십시오.

VirtualBox 가상 머신용 폴더를 엽니다. 홈 디렉토리의 VirtualBox VMs 하위 디렉토리에는 VirtualBox에서 설정한 가상 머신이 있습니다(또는 적어도 Ubuntu가 호스트 머신인 경우). 각 시스템에는 시스템 이름으로 시작하는 고유한 디렉토리가 있습니다. 가상 머신의 디스크를 압축하려면 터미널을 열고 해당 파일이 포함된 폴더로 이동해야 합니다.


cd를 사용하여 해당 디렉토리로 변경합니다. 가상 디스크의 UUID를 얻습니다. 축소하려는 디스크의 UUID를 가져와야 합니다. 나중에 이유를 설명하겠습니다. 이를 달성하기 위한 순서는 다음과 같습니다.

vboxmanage showhdinfo box-disk1.vmdk


이 명령은 vmdk 파일이 작업 디렉토리와 동일한 디렉토리에 있다고 예상합니다. vmdk 파일의 이름이 다른 경우에는 당연히 업데이트해야 합니다. 보고된UUID은 나중에 필요하므로 기록해 두어야 합니다.

VDI image 으로 만드십시오. 디스크를 압축하려면 이 명령을 사용하여 디스크를 VDI 형식으로 변환해야 합니다. 중간 단계 없이는 이 작업을 수행할 수 없습니다. vboxmanage 유틸리티는 VirtualBox가 설치된 호스트에서 이미 사용할 수 있습니다.

VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format vdi


콤팩트:

VBoxManage modifyhd box-disk1.vdi --compact


다시 vmdk로 되돌립니다.

VBoxManage clonehd box-disk1.vdi box-disk1.vmdk --format vmdk
rm box-disk1.vdi


초기 UUID 값입니다. 이전vmdk 디스크 파일을 vdi로 변환하여 압축하고 압축된 파일에서 새vmdk 파일을 만들었습니다. 따라서 본질적으로 다음 명령을 사용하여 원래 디스크UUID를 변경하지 않는 한 VirtualBox가 인식하지 못하는 새 디스크UUID로 새 가상 디스크를 생성했습니다.

vboxmanage internalcommands sethduuid ./box-disk1.vmdk <_original UUID here_>


안녕하세요! 가상 디스크 이미지의 크기를 성공적으로 줄였습니다!

명심하십시오: 보존UUID은 모든 경우에 대한 실제 작업이 아닙니다. 동일한 VM을 추가하려고 하면 Oracle VirtualBox에서 일종의 예외가 발생합니다UUID.

클라우드 공급자 또는 호스팅 회사의 방향으로 좋은 인터넷 속도!

P.S.: 기사를 작성할 때 시스템 관리자 소녀가 정신적으로나 육체적으로 해를 입은 사람은 단 한 명도 없었습니다.

좋은 웹페이지 즐겨찾기