VmWare Server 2.0 host filesystem performance

I manage a few Linux machines that run VmWare Server 2.0.2. On those I have a few Windows Server OS guests.

A typical host is a Quad-Core Intel Core 2 processor, 8 GB RAM, separate system-drive and drive for virtual machines. It runs Debian (5.0 or 6.0) and VmWare Server 2.0.2.

A typical guest could be a Windows Server 2008 with 2GB RAM, 24GB C-drive, 12GB E-drive.

To get decent filesystem performance on the hosts I have used XFS and split the VmWare disk images into 2GB pieces. They have been allowed to grow dynamically.

Over time I have the feeling performance have grown worse, and not been very impressive. Different things have been tried. Finally, on of the hosts where reinstalled (Debian 6.0 instead of Debian 5.0), and btrfs was used instead of XFS. Horrible!

Filesystem 2GB Split Growable Performance
XFS Yes yes Questionable (at least after 12 months)
btrfs No No Horrible – 30min until Windows replies to ping
btrfs Yes No Bad – replies to ping in less than three minutes, but both physical Linux and virtual Windows experiences I/O-delays of a few seconds. Very un-snappy.
ext2 No No Excellent! Fast boot. Snappy.

Perhaps journaling filesystems have their advantages, but I make backups of all machines nightly and dont worry much of a filesystem crash. Also, ext2 can be considered fairly mature, proven and stable.

I will probably do some migration in the next days (reformat some XFS as ext2). Maybe I will provide some properly quantified measures. However, just moving the virtual machines and changing their format may fix problems with fragmentation, so it is hard to make a fair before-after-test.

  1. Hi,

    thanks for sharing your findings.
    Did you try ext3/ext4 as well?


  2. @Gero: No, I did not. Reformatting and moving a virtual machine takes some time and I was happy with ext2.

    You can have a look at ext2 vs ext3 vs btrfs on much less powerful hardware though.

    As I see it, for virtual machines you want as little filesystem as possible. You basically just want raw device. The kernel is responsible for caching blocks anyways, so you dont want that in the filesystem either.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.