Virtualizing Media Center courtesy of Remote-FX

So, let us start with a bit of a backstory. About two years ago, I picked up one of those snazzy little HP Mediasmart servers and decided to rip all of my movies and put them on the server versus having to dig/find/scratch/destroy the physical DVDs.

Fast forward two years and our TV landscape has changes significantly. We don't have any TV reception except OTA (which actually provides a really, really nice HD signal), we have Media Center PCs hooked to all of the TVs, in the movie theater in the basement and an extender (my old XBOX 360) in the exercise room.

One day about 2 weeks ago, my buddy Dave at work brings RemoteFX to my attention and innocently states, "Why don't we virtualize our Media Centers using RemoteFX when SP1 comes out?" Before we get any further, for the uninitiated, you can read about remoteFX here ( among other places, but I can give you the 2 minute overview.

RemoteFX is coming out with Windows Server 2008 R2 SP1 and Windows 7 SP1. It allows you to virtualize windows 7 in hyper-v on your server, and if you have a supported video card, provide and RDP experience that is more or less identical to your experience on your local machine, including, with some caveats, HD video.

Two weeks and about 10 format c:/reinstalls later, I think I have a passable build. I assume some of the issues I still see will be addressed before the RTM of SP1 and some probably won't.

First, my server is a Dell T605. It isn't the newest machine in the world, but it is new enough it is still under warranty and it supports Hyper-V. Having said that, I tried to install a PCIe 1x ATI 4350 in it and it just refuses to even acknowledge I plugged anything into the machine. The Dell website say there is a similarly specced Quadro that is on the compatibility list, but their online support personnelle insist it is an error on the website and Dell in no way supports discrete graphics cards in their servers. A week later, and I don't actually have a definitely answer there yet, so in the meantime, I have flattened my workstation to play server for the experiments.

So the hardware being used for testing is:
Playing server: AMD Phenom II X4 965BE, 8 gigs of RAM, 2 320 gig Raptors in RAID 0, ATI 4870
Client:Various low powered machines scattered about the house, minus the T60 that decided to pass with 4 short bios beeps the other day and has yet to return

So, we flatten the 'server', install Windows 2008 R2, install the beta SP1, pop it on the domain for good measure and get started.
Once you install Hyper-V, you realize that the RemoteFX graphics adapter is grayed out. Fortunantly there is a friendly tooltop, when you can get it to display, that tells you that you have to install RemoteFX under Remote Desktop Service, not under Hyper-V. As a side story, that makes sense since if you are using terminal services instead of windows 7 clients, you don't need hyper-v, etc.

So, once Server 2008 is up and configured, we went ahead and created a virtual in hyper-v and kicked off the install of Windows 7 Ultimate, and did a bit of multitasking and kicked off the service pack install on the 2 test client machines. Once Windows 7 was installed on the hyper-v, went ahead and installed the service pack on that as well.

A couple of oddities I found, once you install the RemoteFX video driver, you can't see the desktop of the virtual anymore in the hyper-v tools, it shuts it off. This is especially interesting, since both times I set it up, even though I was in the administrator group and could remote into the virtual, I couldnt remotefx in unless I specifically added myself to the list of authorized remote access users. It would seem that under the hood, remoteFX is treated a bit different than normal RDP. Something else that may have happened, though I havent taken the time to replicate it yet, I was able to RDP into the last virtual I set up, but the difference was I only let it set up the firewall exception for RDP instead of disabling it as I normally had done. When I added the remoteFX driver, I suddenly found the machine was not accepting remoteFX connections, so I had to take the driver back off, RDP in normally and turn off the firewall, so there may be a task here to see what ports/protocols might be different.

As for performance, I found that performance was struggling bad in Media Center. The desktop experience itself was very, very good. I added another core and bumped the ram on the virtual up to 2 gigs, and the experience levelled out a lot. In the end I settled on 2 cores per Windows 7 virtual, assigned to its own physical hard drive and 2 gigs of RAM seemed to be the closest I could get to a non-virtualized Media Center experience. One thing that did have me worried, as I was doing my research, I was informed in pre-remoteFX times, you couldnt watch live tv in media center through an RDP window, it would provide you a nice friendly message as it just blatantly refused to try, but part of the remoteFX documentation said that one way you could tell you were in remoteFX was you would have a shutdown option on the start menu instead of the default being log off, so I was rolling with the assumption that difference meant the remoteFX connection was treated more like a local session, and it luckily turned out to be true.

So at the end of the say, we end up with a workable for daily use virtualized media center, netflix works pretty good, though it starts out a bit grainy as the autodetector doesnt think the graphics card is all that strong. DVDs and live TV both play very well. Blurays though struggle in several ways, they drop a lot of frames, and I read the lossless codecs are not bitstreamed though, so sound would be an issue. This is still an awesome win, I will move the best of the media center machines to the theater room, and when the super low power, tiny size remoteFX devices come out, I can replace the rest of the media center machines with a device the size of a cable modem. I would have liked to have done some testing with one of the upcoming devices with the hardware ASIC to decompress the bitmap stream, I am curious if it would give more consistent framerates with the blurays.

One downside to the experiment, the original intent was to find a better solution than using extenders everywhere, and I didn't really do that. The two main places where the extenders fail are
1. Netflix is not in the main media center menu, and in the xbox instance is hard to get to from the media center interface. This is important for the WAF and for the small girls that live in our house ;) this is a requirement in the living room, so no extender there
2. The extenders don't support 7.1 lossless, and this is a requirement in the theater, but not such a big deal everywhere else

So, remoteFX was able to fix number one, and the experience performance wise is right on par with the experience you get in the extenders. Things are pretty smooth most of the time, with the occasional stutter here and there. It did not, however, do anything to address number 2, but I think I would prefer to have a full on media center in that room anyhow, it just seems like the right thing to do.

I know this was a long rambling, unorganized, disaster of a post, but I wanted to get it all down, I am sure I am going to need it again when SP1 hits RTM. And, by all means, I am interested to hear any experiences anyone else might have setting this up.