Monday I wrote about a failed attempt with Hyper-V ( http://www.brianmadden.com/blog/TimMangan/My-Weekend-with-Hyper-V-And-Back ). Benny Tritsch chimed in and told about the success he had with a similar setup. Well I can't let Benny show me up, can I? (OK, I can. He's an expert and just play at this stuff sometimes). Today, things went better and I used the new Release Candidate for Hyper-V that went out today.
So I went back and rebuilt my setup. This time I was able to keep the networking from completely blowing up. One of the problems I had originally was in dealing with those "legacy" OSs like Windows XP and Windows Vista. I had seen plenty of articles on line talking about the need to install a legacy network adapter instead of te virtual network adapter. But I had always tried the add hardware option of Vista INSIDE the VM. It has a pulldown menu called "Add Legacy Adapter". But thanks to Benny's post I went back and looked around some more until I saw a post that used some different words and helped me to undetstand that I had it wrong. The place to add the legacy adapter is in Hyper-V. With the VM shut down, you go to the "settings" for the VM and add hardware in the settings. Here you specify the legacy adapter, and tie it to the virtual adapter just like you do with the integrated hosts. Remove the integrated network adapter from these settings if present also. Now you boot it up and teh VM OS will automatically find the new virtual hardware and install the driver for you.
This allowed me to get these VMs to talk to the network. Well, sort of. Let me explain...
Unlike Benny, who was using a laptop with a single physical network interface, I am using a server with two network interfaces. Because this hardware is used for my GridMaster (SoftGrid) training class, I set it up with one interface facing the internet, and the other as a private network used by students. The goal is to allow the students to remote into the VMs, and also access the internet from their laptops. I'm too boring to listen to for a full week so I have to let them at the web and email and the like. Also, the VMs need to have access to the internet so we can download software to sequence. And of course, I want to keep the hotel guests away from my VMs, and everything must stay up (except internet access) if the hotel goes down. [On a side note: I plugged in the cables backwards in our first class and provided DHCP to the hotel for several hours. My dhcp was much faster to respond then theirs was so it pretty much hosed up their systems for a couple of hours until I noticed someone complain that the reservation system was down. I talked to them about .need to segregate guests from their back office equipment].
So I set up the public nic as a dhcp client. This nic does not get virtualized. The second nic (the private one) gets a fixed IP. The interface is configured to serve up dhcp addresses and the host partition also does DNS (and AD) for us. Before installing Hyper-V, I then turn on ICS (Internet Connection Sharing) on the public interface. This is what allows laptops on the private interface to talk out to the internet. After this is all working I install Hyper-V and install my first guest. I choose a 2003 SP2 OS for this as it can use the integrated network adapter and should be easy. Installing Hyper-V and configuring a virtual network adapter, I tie this adapter to the private interface nic. This means that the settings from that NIC need to be migrated to the virtual nic and the physical nic just has a mapping for the virtualization rather than Client for Microsoft and IPv4/v6 like things. This required some changes as the migration doesn't just take the settings from the physical nic. The Network adapter inside the VM is tied to the virtual nic which in turn gets tied to the physical nic inside of the parent partition. This works great. Now on to my Windows XP and Vista VMs.
I bring these in and add the legacy network adapter. Once set-up, I run into another problem. Although the Hyper-V legacy network adapter is tied to the same virtual nic as the integrated network adapter, they act differently. The VMs on the legacy network adapter can only see other VMs and private network side clients. These VMs cannot talk past the physical port on the internet side of the box. The OSs are set up identically to the setup on the integrated VM.
While looking for this, I find that Release Candidate 0 for Hyper-V was released today. So I track that down (hoping it will help). It turns out that you cannot upgrade from the Hyper-V Beta as easily as you would like. Basically, you delete the VM definitions but save the virtual disks, upgrade the host, then recreate new VMs using the old virtual disks, then upgrade the VMs. I do all of this. Still have the same issue.
But RC0 supports not only Server 2008 and Server 2003 SP2 (and some linux distros), but it adds Windows XP with SP3 and Vista with SP1. Not the versions I was using, but I can upgrade these and go with the integrated network adapter and remove the legacy adapters. Windows XP SP3 isn't out yet, but there are release candidates, and I have been running one machine with XP SP3 RC0 since December so I can go with RC2 there. It has an upgrade installer, so download that, cut a CD to mount (don't know if that virtual ISO software works on 2008 yet) and I'm good to go. Windows Vista, not so easy. WIth SP1 you either get an installer or you use Windows Update. But my VM can't talk to the internet. I could probably break the ICS and repoint to the internet nic, but I have the network otherwise working and don't want to touch it. So I go the reinstall route since there isn't anything on the VM that needs saving.
So I have about half of the VMs done and should knock of the other half tommorrow. I'm feeling better about Hyper-V, although my inability to work effectivly with older OSs (or older with non 2008 service packs) is a concern. I don't know how many shops my network issue would affect. Dual NICs are the norm, although ICS is not. Also, someone more familiar with "Routing and Remote Access" would probably set up what I was doing using software Routing rather than ICS, and maybe that would have worked. And we still need tools for things like cloning. I'll know more in a week about the performance versus Virtual Server.