Hyper-V, OpsMgr and Unix? – Part 1
To prepare for a presentation at TechEd 2008 and to test out the new functionality available within multiple of Microsoft products, I decided to spend some time working with Hyper-V and seeing how it does with running Unix Operating Systems. My ultimate goal was to provide an environment where I could use Microsoft virtualization technologies on 64-bit Unix platforms, and combine that with monitoring the Unix system through Operations Manager 2007. As a background, I’m a former Unix geek (started on Ultrix and TI Unix) so the idea of a running a Unix system in a virtualized environment and using Windows related technologies to monitor it really strikes a chord with me.
It is extremely important to note that all of the software discussed here in currently not production released code. These are RC and Beta versions of software at this point in time. Please do NOT do this configuration in a production environment. This is specifically an example of evaluating some of the potential upcoming functionality.
Step 1: Getting a platform to run Hyper-V
So, the first step was to take the leap and convert my test environment to Windows Server 2008 running Hyper-V. Luckily for me both my laptop and two of my home servers were able to run Windows Server 2008 x64, and had the Intel VT or AMD-V functionality, so I had a good place to start. As background, to run Hyper-V the requirements include Windows Server 2008 x64 and hardware-assisted virtualization (Intel VT or AMD-V). (The requirements are detailed at http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx).
I ran across a great article on using Windows Server 2008 as a desktop operating system (http://blogs.msdn.com/vijaysk/archive/2008/02/11/using-windows-server-2008-as-a-super-desktop-os.aspx). I decided to upgrade my laptop (Dell Latitude D830) to Windows Server 2008 x64, and Hyper-V and virtual machines worked on it without any major issues. It was a seamless upgrade from Windows Server 2003.
My first ‘server’ (Dell E521) proved to be more of a challenge. It installed Windows Server 2008 x64 without an issue, Hyper-V worked and virtuals transferred to it, but they would not launch. I found the issue caused by a stepping bug on the processor at http://www.planetamd64.com/index.php?showtopic=36301. I had an “F2” stepping Athlon, and it wasn’t able to launch my virtual machines. So, after a visit to NewEgg and about $100 for a new processor (“F3” stepping this time), all was well on the second system. The third system (a generic 64-bit AMD-V I had available) installed and ran without a challenge.
All right, so now we have multiple platforms that can run Hyper-V. So, what’s next?
Step 2: Upgrading Hyper-V & Moving Virtuals
The version of Hyper-V that was included with Windows Server 2008 was not the final production version (nor is it available currently) but the RC1 was available for download at the Microsoft site at http://www.microsoft.com/downloads/details.aspx?FamilyID=7edaa89f-9f64-488d-93c0-858d2d8799df&DisplayLang=en.
The first guest OS I needed was a working domain controller, DNS server and Operations Manager 2007 system. I decided to port an existing Windows 2003 All-In-One OpsMgr environment I had (see http://cameronfuller.spaces.live.com/blog/cns!A231E4EB0417CB76!903.entry for details). It ran in Hyper-V without an issue, but there were issues with removing the existing Virtual PC extensions. I ended up having to boot back to Windows Vista/VPC and uninstalling them. After installing the VPC extensions, I could install the Integration Services components in Hyper-V. Once those were in place, the server functioned as expected in Hyper-V (the guest was a Windows 2003 SP2 x86 system). It was even able to take advantage of the second processor as shown below!
Before installing the Hyper-V Integration Services, only legacy network adapters would function correctly. After installing Integration Services, regular network adapters would work correctly.
As a cool side note, the new Hyper-V interface interacts well with multiple Hyper-V servers. In the screenshot below, there are three servers (DALSERV64, CSFVirtual and CSFVirtual2) which are running Hyper-V. Each of the guest operating systems shown can be connected to and remotely controlled.
Alright, so we have a functional domain controller and OpsMgr environment. What’s next?
Step 3: Acquiring the Unix Operating System Installation CD’s and Hyper-V Extensions
Ok, so the next step was to get software for installation of a Unix OS. Based upon the documentation, Hyper-V supports the following guest Operating Systems:
- SUSE Linux Enterprise Server 10 SP1 (x86)
- SUSE Linux Enterprise Server 10 SP1 (x64)
So logically enough I went with SUSE Linux Enterprise. I found this link: http://www.novell.com/products/server/eval.html and ran from there. As an FYI, you need a login and password to download the evaluation software. Hey, if it supports x64 gotta go that way. And, since I didn’t pay close enough attention I went ahead and downloaded SP2. Oops.
There are extensions available for Linux integration that are available as part of Microsoft connect (http://connect.microsoft.com).
Step 4: Installing SUSE Enterprise in Hyper-V
First off, I ended up doing this installation about a half a dozen times before I got it right. So, here’s the things to be aware of.
When installing, be sure to set the time zone so that it will match your domain controller. In my case this was Hardware Clock set to Local Time (not the default which is UTC), USA, Central. When I did not choose Local Time, I was unable to get the SUSE system to join the domain due to the message “Failed to join the domain. Time difference at domain controller.”
Hard-coded the IP address of the Unix system so that it will be easier to track down during integration with Operations Manager 2007. Known the IP address makes it easier to debug any network communication issues or agent installation challenges.
Also, be sure to set the name server to the IP address of your DNS server for the Windows domain as shown below. This provided name resolution so that the Unix system could join the domain.
Integrate the SUSE server to the domain as shown below. To add it to the domain, the Authentication Method required is Windows Domain as shown below.
Be sure to choose the option to “Create Home Directory on Logon” as shown below. I ran into a situation where I could not log on after the installation due to issues with accessing the home directory.
After the installation is complete, we are able to log in (authenticating from the Windows domain) and the screenshot below shows what the user interface looks like including a ping to the domain controller in the environment! So, we have a 64-bit Unix system in a Windows domain running in Hyper-V.
Pretty darn cool, eh?
A few good lessons learned while doing this process:
· First, check the stepping version of your AMD processor (mine was an AMD 3800+, upgraded it to an AMD 5200+). A great writeup on this is available at http://wchomakw2k8.spaces.live.com/Blog/cns!139BEFE6062466FB!200.entry.
· Second, if you are planning on transferring virtuals between an existing Virtual Server or VPC environment, it’s best to uninstall the virtualization extensions before you migrate your system. I ran into a situation where it would not uninstall the virtualization extensions and would not allow me to install the Integration Services used in Hyper-V.
· Third, if you will be using Hyper-V without the Integration Services, go with a legacy network adapter. They can be easily found and help to get things networking. Once you are running the Integration Services, you can uninstall the legacy network adapter and put a regular network adapter on it.
· When installing SUSE: Set the time to the local time zone, hard-code the IP address/DNS server, join the domain, set it to create the home directory on logon.
So, what’s next? How about using CrossPlat (announced at MMS 2008) to monitor the Unix system we just installed? Part 2 of this topic will be posted to the Operations Manager Unleashed blog available at http://ops-mgr.spaces.live.com !
Also, Ian wroteup a great article on CrossPlat which is available at http://ianblythmanagement.wordpress.com/2008/06/24/xplat-part-2-the-install/.