A topic I have struggled with for a long, long time has been the use of virtual machines in an actual home environment. In the past VM’s where limited to enthusiast but now that Hyper-V is bundled with Windows 8, I wanted to revisit the practicality of using a VM in a home environment to actually replace physical machines. I used my own goal of shutting down two physical machines and replacing them with virtual machines. I wont get into installing Hyper-V as that is documented everywhere and want to focus on defining the problem and what I did to solve it.
The first machine I wanted to replace was a system I was using for controlling several things. I use it for recording my security cameras, media streaming (Air Video and Air PlayIt), MyMovies, and home automation control. This machine ran 24/7 and is critical to me as it performs functions I use every day.
- No USB support in Hyper-V and needed a USB controller for home automation software.
- Camera recording software is very finicky and has not worked in prior versions of Hyper-V. It was also erratic when I ran it on ESXi. In earlier versions of Hyper-V, the recordings were completely black.
- Must have the performance to transcode a Blu-Ray disk and stream it to my portables in real time.
Outcome of Machine #1
I created a new VM using Windows 7. Due to the nature of all the tasks I wanted to run on this machine, I set up the VM with the following settings: 40 Gig Primary OS Virtual Drive, 160 Gig Virtual Drive for camera recordings, 4 Gigs of RAM, and 4 Virtual Cores.
Installation and setup of the various software was pretty painless and worked well. The DLink D-Cam worked well on the new Hyper-V and the cameras were viewable as were the recordings. Air Video and Air PlayIT also worked and the VM had no trouble transcoding a full bit rate Blu-Ray file. The only thing I could not get to work was the Insteon USB PLM which is the backbone of my home automation. I was able to get the USB to IP adapter to work after a driver update and see the the device, however triggering and controlling reliably was never attained. It was downright frustrating and I tried everything I could think of to make it work. In the end, I had to come up with a different solution and eliminate the need for using this controller so I could shut down this machine. I ended up using the ISY-994i and moving all the home automation to a stand alone device. It may be possible with different controllers but in the end, offloading it proved to be a better solution all around. Though I had to go through a few hoops, I consider this a success as I was able to shut the machine down.
Hyper-V settings for Machine #1
The second machine is primarily for managing iTunes and serving media to other computers, mobile devices, and two Apple TV’s. As iTunes is a bit temperamental on a PC and tends to muck things up, I run iTunes on a small box so that I did not have co-mingle iTunes with other software. In addition, since it streams to other devices, it also needs to be running 24/7. I really did not want to use a physical machine dedicated to iTunes but I needed something to be powerful enough to stream.
- No USB support in Hyper-V and this system needs to have occasional connectivity via USB in order to backup or restore devices.
- The system must be powerful enough to manage a large media library, and stream to multiple systems, mobile devices, and two Apple TVs.
Outcome of Machine #2
I created another VM using Windows 7 with the following settings: One Virtual Drive of 600 Gigs for the OS and the iTunes library with 5 Gigs of RAM. These settings are probably an overkill and I may adjust them at a later time, however this is what I am using as my baseline to work from to insure success.
Running iTunes on a VM is relatively easy, what took the longest is getting a stable and reliable connection using a USB to IP adapter. Since the Wi-Fi synching in IOS 6.x and iTunes is a joke to put it mildly, I needed a reliable and repeatable way to periodically hook up my iPad or iPhone to iTunes to perform a backup and add additional content. I ended up getting updated software for the Startech USB400IP which is a 4 port USB to IP adapter. It allows me the flexibility of attaching most USB devices to any of the VM machines I run. The concept works and running iTunes in VM turns out to be a great way to go. The USB to IP works reasonably well but the speed is on the slow side. Copying movies can take a bit of time so you have to be patient. If you are fortunate to be one of the ones that has had success with Wi-Fi sync (I have not), this is also a great way to go. All in all, this has been a successful process and I was able to shut down the physical machine. There where some growing pains but overall it has been a great experience.
Hyper-V Settings Machine #2
The transition from 2 physical machines to two VM’s is complete and all works very well. I am pleased to shut down two physical machines and save the power they consume as well as the heat that they produce. Being able to turn these off has saved about 80-90 watts of continuous power so in effect it more than pays the power cost of my server which draws about 95 watts. VM’s are not for everyone and they do have some limitations, however if you put a little time into it, in the end result can be worthwhile. I am happy with the results and plan to really push my luck and see if I can virtualize my Skype/broadcast box that I use for podcasting as well as to implement movie ripping into one of the existing VMs to eliminate yet another box. Recording audio/video will present some real challenges so stay tuned for a follow on article on how I accomplished it. When all is complete, my goal is to have all my machines virtual except for 1 main PC, a secondary PC, 2 HTPCs, and of course my servers which is far less that I have running right now. You certainly cannot eliminate all physical machines but you certainly can limit how many you need with a bit of planning.