I'm thinking about virtualizing Windows Home Server, mainly just for some testing and troubleshooting (right now, anyways -- nothing long term). I've got hardware that should easily pull it off, but because WHS can be a bit of its own beast the way it does file replication, etc., I was wondering if there are any "gotchas" or anything else I should be watching out for? Most particularly, I'm curious if anyone has had any luck using WHS with multiple virtual hard disks to simulate how an actual physical WHS setup would work, or if I have to stick to the one drive. I'd rather not invest time on this if it's a lost cause. Can anyone else share their experiences (if anyone's even decided to do this)?
I've been playing with WHS in a VM for a while now and I'll summarize my experiences.
After dealing with some hardware failures on my fileserver, I wanted to find a way to abstract the hardware from my fileserver. I'd heard some talk about running WHS in a VM with external harddrives so that if the host hardware goes down, you can simply move the VM and external disks to a different host and reboot with minimal downtime (That was my basic motivation).
I took two passes at this. For the first pass, I installed WHS in a VM running under VMServer 1.x, and gave the VM direct physical access to a number of harddrives that were in external enclosures. This worked fine for a few days, but then the VM would occasionally reboot and have to scan through all the files looking for consistency checks. I was never able to figure out just what was causing this, but my suspicion is that the drives were spinning down or 'sleeping' and the VM wasn't able to properly wake them when a file request came through. Since it was particularly scary seeing the 'consistency check' screen time and time again, I decided to go back to a natively hosted file server after about three weeks of fighting with this. (Btw, I posted a question one of the Microsoft support forms and the official line is that running WHS in a VM is 'unsupported' so you're basically on your own..)
For my second (more successful) pass, I installed WHS in a VM running under VMServer 2.x. However, rather than giving the VM physical access to the disks, I created virtual disks to fill up each of the external drives. My reasoning was that by doing this, I could move the virtual disk files around without having to complicate things with WHS. (ie, I could upgrade the drive capacity and just copy the VHD files without having to remove the disks from WHS..). This setup has been rock-solidly stable now for about a month now. I want to some more testing before moving all my files over, but I'm very hopeful based on what I've seen. (ie, it's much more solid in this configuration than the previous one).
So bottom-line for my experiences: - VMServer 2.x > VMServer 1.x (makes sense) - Virtual HDs > Direct Physical Access
One additional thing to note is that if you do use virtual disks, they all show up simply as 'Virtual IDE Drive' (or something similar) so they can be hard to differentiate. You might want to size the virtual disks differently in order to keep it all straights.. (ie, rather than having 4 * 500 Gb disks, have 480, 485, 498, 500 etc..)
You were looking for shared experiences, so I hope this helps.
1Great answer. I fully support the idea of doing pass-through VHD access instead of direct hard drive access for the system drive. For the external/add-on drives, however, it might make it hard for the system to detect failing drives. Be very careful to only create one VHD per physical drive. Aug 13, 2009 at 8:12
@IDisposable - I'm curious about the last part of your comment. Why would having multiple VHDs per physical drive be a problem? (Aside from the expected slowness when storage is re-balanced...) Aug 14, 2009 at 18:54
@peter One of the benefits of WHS's drive extender is how it duplicates files across multiple physical drives to make sure that if one drive dies you don't lose your files. Putting multiple VHDs on one physical HD ruins that as WHS won't know which of the drives it sees are on separate physical drives.– GAThrawnJul 29, 2010 at 13:35
@GAThrawn Agreed. My initial motivations were purely from a host disaster recover point of view rather than being concerned about individual files. You're correct in that storing multiple VHDs on a single spindle is a recipe for disaster. Aug 5, 2010 at 13:10
I've been running WHS under Hyper-V for several months now. For the drives, i've been just creating fixed size VHD's on my external storage as I add drives to the server - and that's been working pretty well.
The only "gotcha" that i've run into so far is that the WHS box crashes every once in a while - and when it does, it won't restart. When I try to reset that VM thru Hyper-V, it does nothing, and my only way around it is to physically reboot the host server. This NEVER happens with the other windows 2008 guests that i'm running on hyper-v - just thue WHS server.
The newest HP MediaSmart servers at about $350 have been looking pretty enticing lately - my eventual plan is to move to one of those instead of having it virtualized. I'm hoping that they come out with the 2008 version in the next year or so so that I can get that version pre-installed on it.
Because WHS runs on very cheap commodity hardware, and because it's targeted at home users (thus the name, Windows Home Server), it's not a typical candidate for virtualization. As such, you won't find "Best Practices" for virtualizing it.
4I disagree almost completely with this. WHS is essentially Window Small Business Server 2003 with a bunch of custom stuff added and the file-system mini-driver for Drive Extender, thus the "best practice" is to treat it just like SBS 2003. Aug 13, 2009 at 8:08
I wouldn't worry too much about it. Depending on the virtualization system you use (each has it's own quirks), it will likely be quite easy to get it up and running. Most modern virtualization systems make use of hardware virtualization support and enable you to run almost any operating system (and on that, any applications).
I haven't run Windows Home Server virtualized, but I've run almost every other Windows Server variant, along with numerous Linux server variants, and had essentially zero problems with compatibility, performance, or stability. I use it both for testing and development, and also in production scenarios.
I've written and maintained a WHS add-in, for that I did all the development and testing on a virtual WHS (with two VHDs with only dummy data on them) with a virtual WinXP client, all running in MS Virtual PC on my Vista desktop.
I've had no problems with this. For testing and development this is perfect, especially with things like Undo disks enabled to quickly and easily roll back to various states.
However for my actual real data I have a real physical machine, with multiple real hard disks. I just feel safer this way.