최신 버전의 VirtualBox는 가상 디스크에 여러 형식을 지원하지만 서로 비교하는 것을 잊었습니다.
- VDI
- VMDK
- VHD
- HDD
이제 다음을 고려한 권장 사항 또는 비교에 관심이 있습니다.
- 동적 크기 조정을 사용할 수 있습니다
- 스냅 샷을 가질 수있다
- 최소한의 노력으로 아마도 가상 머신을 다른 OS 또는 다른 무료 가상화 솔루션으로 옮길 수 있습니다.
- 공연
최신 버전의 VirtualBox는 가상 디스크에 여러 형식을 지원하지만 서로 비교하는 것을 잊었습니다.
이제 다음을 고려한 권장 사항 또는 비교에 관심이 있습니다.
답변:
VirtualBox는
소스 : Oracle® VM VirtualBox® 사용자 매뉴얼 » 5 장. 가상 스토리지 » 5.2. 디스크 이미지 파일 (VDI, VMDK, VHD, HDD)
- 동적 크기 조정을 사용할 수 있습니다
VDI , VMDK 및 VHD는 모두 동적으로 할당 된 스토리지를 지원합니다. VMDK에는 스토리지 파일을 각각 2GB 미만의 파일로 분할하는 추가 기능이있어 파일 시스템의 파일 크기 제한이 작은 경우에 유용합니다.
VirtualBox에서 HDD , QCOW 및 QED 를 동적으로 할당해야합니다.
- 스냅 샷을 가질 수있다
VirtualBox는 6 가지 형식 모두의 스냅 샷을 지원합니다 .
- 최소한의 노력으로 아마도 가상 머신을 다른 OS 또는 다른 무료 가상화 솔루션으로 옮길 수 있습니다.
VDI 는 VirtualBox의 기본 형식입니다. 다른 가상화 소프트웨어는 일반적으로 VDI를 지원하지 않지만 특히를 사용하여 VDI에서 다른 형식으로 변환하는 것은 매우 쉽습니다 qemu-img convert
.
VMDK 는 VMWare에서 개발하고 VMWare를 위해 개발되었지만 VirtualBox 및 QEMU (다른 일반 가상화 소프트웨어)도 지원합니다. 다른 가상화 소프트웨어와의 광범위한 호환성을 원하기 때문에이 형식이 가장 적합합니다.
VHD 는 Microsoft Virtual PC의 기본 형식입니다. Windows Server 2012는 VHD의 후속 제품으로 VHDX를 도입했지만 VirtualBox는 VHDX를 지원하지 않습니다.
HDD 는 Parallels 의 형식입니다 . Parallels는 macOS 가상화를 전문으로합니다. 특히 VirtualBox는 이전 버전의 HDD 형식 만 지원한다는 점을 고려하면 적합하지 않을 수 있습니다.
QCOW 는 qcow 형식의 이전 원본 버전입니다. VirtualBox가 지원하지 않는 qcow2로 대체되었습니다.
QED 는 qcow2의 포기 된 향상이었습니다. QEMU는 QED 사용을 권장하지 않습니다.
- 공연
블록 스토리지가 형식에 의해 추상화되는 방식으로 인해 각 형식에 미묘한 성능 특성이있을 수 있지만 VirtualBox 지원 형식을 비교하는 벤치 마크는 찾지 못했습니다.
다음과 같이 성능에 영향을 미치는 더 큰 요소가 있습니다.
VDI는 항상 VirtualBox의 기본 형식이므로 VDI를 사용합니다. 그러나 VMDK (VMWare 형식)를 사용하면 다른 가상 시스템 소프트웨어와의 호환성이 향상됩니다.
VirtualBox는 Ubuntu에서 제대로 실행되므로 목표가 Windows / Ubuntu 상호 운용성이라면 VDI가 완벽하게 유효한 선택입니다.
두 형식 모두 요구 사항을 충족합니다.
다른 두 가지는 VHD는 Microsoft에서 개발 한 형식이고 HDD는 Apple에서 개발 한 형식입니다. 이들은 모두 독점적으로 라이센스가 부여되므로 크로스 플랫폼 지원을 제한합니다. 나는 그들을 추천하지 않을 것입니다.
Mpack은 VHD와 VDI의 주요 성능 차이를 설명합니다.
최근에 VHD 형식을 연구 한 결과 VDI와는 달리 VDI에 유리한 차이가 적어도 조금있을 것으로 예상됩니다. 그 이유는 동적 VHD 형식에 이러한 "비트 맵"섹터가 디스크 전체에 흩어져 있기 때문입니다. 블록 내에서 섹터를 수정할 때마다 추가 비트, 읽기 및 쓰기를 포함하여 이러한 비트 맵 블록도 업데이트 및 작성해야 할 수 있습니다. 이 비트 맵 섹터는 드라이브 이미지에서 연속 클러스터를 읽을 때 건너 뛰어야합니다. VDI 형식에는 특히 VDI가 최적화 된 경우 (가상 디스크의 블록이 LBA 순서로 정렬 된 경우) 이러한 오버 헤드가 없습니다.
내 의견은 모두 동적 VHD 형식과 동적 VDI에 적용됩니다. 고정 된 크기의 가상 디스크에 대한 성능 테스트는 두 형식이 동일하기 때문에 (디스크의 일반 이미지) 다른 헤더를 가지기 때문에 의미가 없습니다.
vmdk를 사용하면 VMware의 VirtualBox에서 생성 된 가상 머신을 투명하게 실행할 수 있는지 알 수 없습니다. 그것은 수도. 그러나보다 보편적 인 옵션은 VirtualBox 파일 / 내보내기 기능을 사용하여 VMware로 가져올 수있는 "Open Virtualization Appliance".ova 파일을 만드는 것입니다. 이 방법을 사용하면 VirtualBox에서 사용하는 디스크 이미지 형식을 신경 쓰지 않고도 .ova를 지원하는 모든 가상화 시스템으로 이식 할 수 있습니다.
매일 같은 간격으로 동일한 VM에서 내 보내야하는 경우 어려움이 될 수 있습니다. 그러나 때때로 다른 기술로만 옮기면 괜찮습니다.
.vdi 파일이 이미있는 경우 새 가상 머신을 만들지 않고도이 파일이 작동하는지 테스트 할 수 있습니다. .ova로 내 보낸 다음 vmware로 가져 오기를 시도하십시오.
가상 디스크 사용 방법에 따라 다릅니다. 모든 VM이 단일 디스크에서 단일 파티션을 원하는 것은 아닙니다.
VDI에는 더 많은 옵션이 있지만 (VirtualBox와 함께 사용하는 경우) VirtualBox를 사진에서 가져 오자마자 VDI에 대한 지원이 다소 흔들립니다 (2014 년 말 기준).
예를 들어 내 솔루션에는 플랫폼 간 최대 지원이 필요합니다. Linux 또는 Windows 7에서 VDI (예 : 루프백 장치)를 마운트하는 것은 예상보다 어렵고 버그가 많습니다. VDI의 기능이 너무 많기 때문에 VDI에서 작동 할 수있는 완전한 유틸리티를 만들기가 어렵습니다.
VMDK는 워크 스테이션의 모든 VM에서 작업하기를 원하거나 동시에 네트워크의 다른 시스템에 3 번 복제하려는 경우 및 VM을 시작하지 않고 열어 보려고 할 때 고통이 덜합니다. 예.
VirtualBox를 90 % 사용하더라도 특정 워크 플로에서 디스크에 액세스 할 수없는 경우 플러그 / 공유 파일 시스템에 VMDK를 선호하게되었습니다.
디스크 이미지 파일은 호스트 시스템에 상주하고 게스트 시스템에서 특정 지오메트리의 하드 디스크로 표시됩니다. 게스트 운영 체제가 하드 디스크에서 읽거나 하드 디스크에 쓸 때 VirtualBox는 요청을 이미지 파일로 리디렉션합니다.
실제 디스크와 마찬가지로 가상 디스크의 크기 (용량)는 이미지 파일을 만들 때 지정해야합니다. 그러나 실제 디스크와 달리 VirtualBox를 사용하면 이미 데이터가 있더라도 이미지 파일을 만든 후 확장 할 수 있습니다. VirtualBox는 네 가지 디스크 이미지 파일 변형을 지원합니다.
VDI : 일반적으로 VirtualBox는 게스트 하드 디스크 (가상 디스크 이미지 (VDI) 파일)에 자체 컨테이너 형식을 사용합니다. 특히이 형식은 새 디스크로 새 가상 시스템을 생성 할 때 사용됩니다.
VMDK : VirtualBox는 다른 많은 가상화 제품, 특히 VMware에서 사용되는 널리 사용되는 개방형 VMDK 컨테이너 형식도 완벽하게 지원합니다. [25]
VHD : VirtualBox는 Microsoft에서 사용하는 VHD 형식도 완벽하게 지원합니다.
Parallels 버전 2 (HDD 형식)의 이미지 파일도 지원됩니다. [26] 형식에 대한 문서가 없으면 최신 형식 (3 및 4)은 지원되지 않습니다. 그러나 Parallels에서 제공하는 도구를 사용하여 이러한 이미지 파일을 버전 2 형식으로 변환 할 수 있습니다.
vmdk를 사용하는 좋은 이유는 VDI 형식을 사용하는 Virtualbox (적어도 v4.1까지)는 내부 가상 디스크 사용량이 훨씬 적더라도 시간이 지남에 따라 할당 된 디스크 공간을 채우는 경향이 있기 때문입니다. vmdk 디스크를 사용하는 Virtualbox의 경우 문제가 거의 없습니다.
하지만 몇 년 동안 가동되고 있습니다. 이것은 많은 사람들이 겪는 문제가 아닐 수 있습니다.
VDI를 사용하면 디스크 파일을 실제 크기의 VirtualBox 및 SSD의 TRIM 명령 지원으로 트리밍 할 수 있습니다.
edit
당신을 위해 내 질문에 버튼이 있습니다 : D
오래 전에 하나의 테스트를 수행했는데 속도와 파일 크기를 테스트하기 위해 동적 vdi를 동적 vhd로 변환했습니다.
그것은 일부 응용 프로그램을 사용하여 변경 불가능한 Windows 게스트 클린 OS 설치를 기억하십시오. 내 테스트를 위해 하나의 형식을 다른 형식으로 변환한다는 것을 기억하십시오. 따라서 둘 다 복제를 수행하는 것과 같은 정확한 이미지를 가지게됩니다.
디스크 크기가 64GiB 인 경우 VDI 파일 크기는 18GiB이고 VHD의 파일 크기는 22GiB입니다.
나는이 두 가지를 보았다는 것을 기억할 수있다 :
그것은 오래 전에 HDD에서 테스트를 수행했지만 디스크의 빠른 부분에서 조각 모음과 서로 옆에있는 두 파일을 모두 보장합니다.
누군가가 실제 SSD 테스트를 수행 할 수 있기를 바랍니다. 그러나 VHD보다 VHD가 더 빠르다는 느낌이 들었습니다.
팁 : VHD / VHDX는 DiskPart 명령 줄 도구를 사용하여 모든 Windows 7 이상에서 압축 할 수 있습니다. VDI의 경우 외부 도구 CloneVDI가 필요합니다.
죄송합니다. VMDK를 테스트하지 않았습니다. UUID (디스크 UUID)를 변경하지 않고 압축하는 방법을 몰랐습니다. VBOX 명령 도구는 사용하는 형식에 관계없이 모든 복제본에서 항상 변경합니다.
방금 원시 VMDK를 마이그레이션하여 Transcend SSD370 128GB의 파티션에 Samsung Pro 850 512GB로 매핑했습니다.
VMDK는 VDI보다 훨씬 빠릅니다. 나는 왜 어딘가에 실수를 저지른 이유를 이해하지 못한다.
Virtual Media Manager를 통해 VMDK를 850에 복사했습니다. 한 번은 VDI로 한 번은 VMDK로 한 번.
그런 다음 hdparm -tT --direct /dev/sda
이미지를 실행 했습니다. "실행"각각에 대해 "기계-> 설정-> 저장소-> 컨트롤러 SATA-> ImageFile.xxx"를 교체했습니다. SSD370의 원시 파티션은 VMDK 파일로 정의되었으므로 실제로는 이미지가 아닙니다.
결과는 다음과 같습니다.
################################################################################################
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-96-generic x86_64)
System information as of Thu Sep 21 17:02:51 CEST 2017
System load: 1.96 Processes: 201
Usage of /: 83.2% of 43.88GB Users logged in: 0
Memory usage: 4% IP address for eth0:
Swap usage: 0% IP address for docker0: 172.17.0.1
################################################################################################
======================================================================================
V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================
Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <---
Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <---
Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <---
Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <---
---
Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec
Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <---
======================================================================================
V M D K --- on Samsung Pro 850 515GB
======================================================================================
Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <---
Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec
Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec
Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec
---
Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <---
Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec
Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <---
Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec
---
Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <---
Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec
======================================================================================
V D I --- on Samsung Pro 850 515GB
======================================================================================
Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <---
Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec
Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <---
Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec
Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <---
Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec
################################################################################################
# Data above comes from here
################################################################################################
======================================================================================
V M D K --- on Samsung Pro 850 515GB
======================================================================================
System information as of Thu Sep 21 17:02:51 CEST 2017
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <======
Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec <======
user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 21080 MB in 2.00 seconds = 10554.40 MB/sec
Timing buffered disk reads: 784 MB in 3.00 seconds = 260.92 MB/sec
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec <======
Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec <======
======================================================================================
V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================
System information as of Thu Sep 21 17:00:47 CEST 2017
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <======
Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <======
user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 21182 MB in 2.00 seconds = 10603.52 MB/sec
Timing buffered disk reads: 1060 MB in 3.00 seconds = 352.91 MB/sec
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <======
Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <======
======================================================================================
V M D K --- on Samsung Pro 850 515GB
======================================================================================
System information as of Thu Sep 21 16:58:12 CEST 2017
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <======
Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec <======
user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 22082 MB in 2.00 seconds = 11055.78 MB/sec
Timing buffered disk reads: 788 MB in 3.01 seconds = 262.11 MB/sec
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <======
Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec <======
======================================================================================
V D I --- on Samsung Pro 850 515GB
======================================================================================
System information as of Thu Sep 21 16:55:24 CEST 2017
user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 21468 MB in 2.00 seconds = 10747.37 MB/sec
Timing buffered disk reads: 662 MB in 3.01 seconds = 220.12 MB/sec
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <======
Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec <======
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <======
Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec <======
user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 20872 MB in 2.00 seconds = 10448.98 MB/sec
Timing buffered disk reads: 694 MB in 3.01 seconds = 230.78 MB/sec
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <======
Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec <======
======================================================================================
V M D K --- on Samsung Pro 850 515GB
======================================================================================
System information as of Thu Sep 21 16:52:32 CEST 2017
user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 20872 MB in 2.00 seconds = 10448.90 MB/sec
Timing buffered disk reads: 764 MB in 3.01 seconds = 254.11 MB/sec
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <======
Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec <======
======================================================================================
V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================
System information as of Thu Sep 21 16:29:55 CEST 2017
user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 22034 MB in 2.00 seconds = 11029.82 MB/sec
Timing buffered disk reads: 990 MB in 3.00 seconds = 329.68 MB/sec
user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec <======
Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <======
나는 이것을 해석하는 방법을 정말로 모른다. 아마 누군가 누군가 그것에 대해 의견을 남기고 싶어 할 것이다. 나는 그때 VMDK를 선택했다.