To put an application into a virtual environment you must first understand its I/O requirements to make sure that it will perform adequately on the storage that you have configured. This is very much like the process of determining how much CPU and Memory resource an application will need – it’s a necessary step. Of course you can miss it out and in the majority of cases that won’t be an issue but to keep your finger on capacity management and to avoid possible problems it is best to follow a defined a repeatable set of steps.
It’s also useful to be able to profile the I/O workload of applications already on a virtual platform.
So, what do we need to know? Well although I have a fairly well-rounded set of skills, I am more of a Microsoft guy than a Unix guy. As such I’m better at looking at I/O on Windows systems than anything else. Obviously this is something that I need to address a bit but it’s not exactly in the scope of this post.
Kevin Kline, a SQL MVP, has a short video hosted here that is targeted at physical SQL servers – the kind of load you’re likely to want to do this with.
There’s also a good MS Technet article about determining the I/O requirements for Exchange 2003 that’s a useful read.
Next up, I’d suggest having a look at SWAT. It’s Sun’s java based I/O monitoring tool.
Also, get to know vscsistats. Scott Drummonds (a guru in this area) has a VMware communities page that is a must read. Next, read the useful posts by Duncan Epping (YellowBricks), Gabrie van Zanten (Gabe’s Virtual World) and Gabe’s other post on making the output data Excel friendly.
Michael Poore is a Senior Consultant for Virtual Clarity, a small virtualisation / cloud consultancy based in London and San Francisco. Michael works on all aspects of datacenter virtualisation, automation, orchestration and management for various global companies. He started the vSpecialist blog in 2008 and convinced co-author Jeremy Bowman to join in over a beer a while later.