7

As we all know, we can create various disk types in VMWare:

  • 0 : single growable virtual disk
  • 1 : growable virtual disk split in 2GB files
  • 2 : preallocated virtual disk
  • 3 : preallocated virtual disk split in 2GB files
  • 4 : preallocated ESX-type virtual disk
  • 5 : compressed disk optimized for streaming

I'm interested in advantages/disadvantages of various types? For instance: why would you want to split disks in 2G chunks if you don't need portability? Are there any advantages in terms of fragmentation and disk management based on host disk format type (like NTFS/etc.)?

Robert Koritnik
  • 912
  • 5
  • 19
  • 34

3 Answers3

6

0 : single growable virtual disk

The default most people choose. Does not chew up as much space unless it needs to but performs less well than a fixed size vdisk file. Growable vdisks allow you to "oversell" your physical drive space.

1 : growable virtual disk split in 2GB files

The only real difference is that these vdisks can be used on filesystems that have trouble with files larger than 2Gb (or 4Gb in the case of FAT32). If you always use NTFS, ext2/3, or something else modern this is not an issue (thigh be careful of extra limitations that might be apparent with options like file level compression, see here for technical discussion on such things with NTFS). May also make a difference to your backup procedures.

2 : preallocated virtual disk

Disadvantages (over option 0): takes all the space it needs immediately and for as long as it exists, and takes longer to create.

Advantages: you know the VM is never going to fall over because it can't grow the vdisk file later because the host filesystem is full and performance is better on average as there isn't the extra overhead of managing the files that host the disk (gowning them when needed, maintaining an index of which virtual blocks are where in the physical file, and needing to use that index when reading a block). Also less prone to fragmentation in the host filesystem as it will only fragment at creation time.

3 : preallocated virtual disk split in 2GB files

Just the portability difference, as with 1.

4 : preallocated ESX-type virtual disk
5 : compressed disk optimized for streaming

Unsure - I've not seen these options (or if I have, I've not paid attention to them!).

On host filesystem formats:

With growable disks there will be a small but measurable write performance drop if you use a filesystem that performs meta-data journalling (NTFS, ext3/4 with default options).

With both (growable and fixed) there will be a larger write performance difference if the host fs does full journalling (ext3/4 with certain options, and a number of other filesystems (again, usually not by default)).

FAT32 is likely to fragment badly with growable disks, more intelligent filesystems (ext2/3/4, NTFS, and anything else modern) will have far less hassle in this regard.

If you use fixed vdiscs then something like ext2 (or ext3 with journalling fully off) will perform better than something that does journal. There are some caveats depending on your write patterns here though: you might not notice the difference at all and there are some (probably rare) write patterns where a full journal could actually boost performance (due to write reordering caused by the full journalling process reducing disk head movements).

Your choice of filesystem in the VM will interact with the choice on the host. If you set both to full journal then every block written in the VM can potentially become four physical block writes, more if you are using growable disks.

Glorfindel
  • 1,213
  • 3
  • 15
  • 22
David Spillett
  • 22,534
  • 42
  • 66
  • Nice explanation for 1. I didn't think about file system limits for file sizes. –  Sep 11 '09 at 14:13
  • I have experienced VirtualBox crash on type1, but never on type0, if you want to consider product compatibility. – user27465 Jan 11 '12 at 19:06
1

0: This is my choice.

1: Splitting into chunks and storing those chunks on the same platter
doesn't make sense, so I wouldn't see any advantage there.

2: Preallocated reduces chance of fragmentation.

3: See 1 above.

4: Not had the pleasure of this, but apparently it works quite well.

5: If your hardware can handle the throughput (including CPU), but it
seems pointless in my opinion.

NTFS is slower than FAT32. exFAT is apparently very quick.

  • His is a bulleted list with numbers after the bullets...try and edit it that way so others can understand your post easier. – TheCleaner Sep 11 '09 at 13:40
  • An addendum - I've noticed reduced fragmentation since I've moved to Windows 7. This might be my imagination. –  Sep 11 '09 at 13:41
  • @TheCleaner I changed it :) –  Sep 11 '09 at 13:41
  • I'd not thought of separating files for split vdisks over different drives. If VMWare respects symlinks it could be made to work. Though just setting up a RAID0 array would be a more more efficient way to get the same or better performance gain. – David Spillett Sep 11 '09 at 14:35
  • I'd steer clear of RAID 0 on principle. I'm involved in another thread where the guy is asking how to recover his data. –  Sep 11 '09 at 15:04
  • RAID0 is great if you only use it for the right things (scratch areas, data that can be easily reproduced, data that is very regularly backed up, and so on). If the VMs are for testing, so get rolled back to a snap-shot regularly anyway, and you have reference copies backed up, then RAID0 is not much of a danger. RAID10 is a much better option, of course, if you have room+budget for the extra drives. – David Spillett Sep 11 '09 at 16:39
0

5 : compressed disk optimized for streaming

Notably, the stream optimised format does not support random reads or writes, and is thus unsuitable for a general purpose filesystem that expects to be able to do random seeks.

Ben L
  • 3
  • 2