Hyper-V Server 2012 Cluster with Powershell Deployment Toolkit

I recently came across a lovely show on Channel 9. It talks about setting up a simple Hyper-V Server 2012 cluster for use in a lab or test environment or whatever. I won’t go over the details, watch the show, it’s great! In addition to that I had come across an article on the Building Clouds Blog, about the PowerShell Deployment Toolkit. So over Memorial Day weekend I decided to stand up my cluster and spin up a test environment similar to what I use at work.

In my environment I have 6 servers, I have 3 set aside for Hyper-V, one is my firewall, one is a Domain Controller and the last is a management server. I’m using my DC as the file server as well. I didn’t need the iscsi target stuff, as I’m using Windows Server 2012 and used the new File and Storage Services to configure my iscsi drives.

I decided to let vmcreator.ps1 build the vm’s for me, originally I had spun up my own, but I was having difficulties getting the installer to work properly. Turns out that there is a requirement that the PDT tools be run from the C: drive of your computer. Also if you’re running them from the server OS, you will need to install the Hyper-V role in order vmcreator.ps1 to function properly. I don’t recall seeing either of those things mentioned in the TechNet article, but I may have overlooked that part.

So, linked from the vmcreator.ps1 article is a great utility, Convert-WindowsImage.ps1 that I used to create my base OS image. The utility is super handy and has a gui or cmdline version. I wimped out initially and used the gui version, pointed it an ISO of Windows Server 2012 and after a while I had a lovely vhdx ready for vmcreator.ps1.

After renaming the half dozen vm’s the script had created for me, in record time btw, I ran the installer.ps1. There’s not really a whole lot mentioned on the article about it’s use, it is rather self-explanatory and once you realize the limitation to the C: drive then it’s a no-brainer. That part took me a bit to figure out as I had an external drive with all the bits the downloader.ps1 had downloaded for me.

The end result is I now have the basic System Center infrastructure that I can play with locally to try out new features, or test the scripts and apps I create for work. It was really very slick, and I could totally see how I would use something like this in our QA environment at work.


RedHat 6 Enterprise + VMware VSphere 4.0

Odd thing happened today while I was setting up a server for someone. The RHEL 6 install went just fine, it found the network card, asked if I wanted to configure it via DHCP and all that. When the server rebooted, there was no eth0. When I ran ifconfig eth0 up, the adapter showed up, but then wouldn’t get an IP from DHCP. A quick look at the messages showed the following


No broadcast interfaces found?

Unhandled state?

Now I admit that I’m not much of a Linux admin, I have setup and done some cool stuff, but it’s just not my forte. So I resorted to Google, when Nick and Carson didn’t the answer for me!

I found this thread. In it the user stated that if he ran dhclient eth0 the adapter would go, so I did that and sure enough I got an IP address. When I started poking around I noted that in /etc/sysconfig/network-scripts/ifcfg-eth0 that ONBOOT was set to NO, I changed this to YES. Then to verify that it was working properly, I stopped the network service, shutdown the computer, and moved it to a different VLAN.

When the server came back up, it had an IP address, I’ve never had RHEL do that before, and I’ve done several installs, so I guess it’s a fluke? But if not, at least I’ve documented how I got it to go if it happens to me again!

Windows Server 8 Beta Failover Clustering Part 2

There were so many images that I decided to split this up over several posts. In Part 1, I got the Failover Cluster feature installed on my first server, and now I’m going to work through the Failover Cluster Management tool.


So, the interface doesn’t look any different. I was hoping for something that was part of the Dashboard.


So here is the wizard, it’s really almost identical to Windows 2008 R2, but what the heck.


I’ve selected both servers to be nodes in my new cluster.


Oh wait! I forgot to install the Failover Cluster feature on win8-hv2!


No worries, I got it covered, I can add that feature remotely from the dashboard. That option has to be one of the coolest one’s I’ve seen.


Needless to say the feature installed successfully and I’m able to proceed now.


None of the hardware I’m using is technically support by Microsoft but it’s Beta software so who cares right? Let’s see what the report says though.


Welcome to the Wizards, is it just me or are there more of them?


Lets run everything, I know it will have issues, as both machines are different and don’t have the same sets of software available.


Here we go…


That looks good!


OUCH! Well, win8-hv2 doesn’t actually have Hyper-V installed and since that was in the test, that’s where it failed.


The report confirms this. But again, thanks to being able to remotely install Roles and Features, I installed Hyper-V on the other server and re-ran the tests.


Much happier! For the record, there are several warnings.

  • Hyper-V : The processors are different between the two machines.
  • Network : I don’t have redundant network cards
  • Storage : I don’t have any storage available suitable for some types of clustering, which could be an issue for Hyper-V (Clustered Shared Volumes)
  • System Configuration : To be honest, I didn’t actually look at this, I was aware of the others so I assume there is something minor missing or different between the two nodes.


Here we go, this is good enough to move on to create the end-point for the cluster. This is one of the ways you’ll be able to manage it.


Here it is saying it’s going to steal some IP’s from my range


My cluster is forming!


I was successful! But there were warnings, basically it’s telling me I don’t have any sort of network storage to use for this cluster, of which we were already aware.


Huzzah! The one warning was from the cluster I built earlier with just the one node. Perhaps should have nuked the cluster log, oh well.

Windows Server 8 Beta Failover Clustering Part 1

I read a very nice article over on TechNet about some of the new features of Failover Clustering in Windows 8, so I decided to give it a spin. It’s not too bad, I’m really enjoying the new Server Manager interface, it’s pretty awesome.

Here are the screenshots of the setup process.


Here is the dashboard, this particular computer was upgraded to Windows 8 Server from Windows 2008 R2, so there were already a few roles installed.


Similar interface for adding the Failover Clustering Role


I’ve not tried the Remote Desktop VDI stuff yet, I’m thinking I may grab a couple of more machines and start over with fresh installs.


Here you can install roles onto one of the servers in your pool. I added win8-hv2.soecs.ku.edu to the pool so I could manage both servers from one interface, cool huh?

There is also the option to install the role to VHD, I will have to try that later!


Here you can see the installed roles from Windows 2008 R2


There’s the feature I’m after, Failover Clustering. Note the additional tools, there are 81 PowerShell cmdlets available for managing Failover Clustering. I’m going to post those up after this.


Here is everything that will be installed, I checked the box to Restart the destination if necessary, but for this feature it’s not necessary. But as I was messing around with various other components earlier this week, that’s a nice option.


The installation is starting, you can see the notification flag now has a 1 inside it’s little box. You can close this window and the install will progress.


Clicking on the notification flag, you can see all tasks that are currently running.


Here is what you see when you click details. By the time I got to this screen the installation was done.


I can manage the Cluster from the Dashboard | Tools menu


Since it’s installed on win8-hv1 I can right click on that server in the Server Pool and select Failover Cluster Manager from there.


Perhaps this is silly to point out, but the Failover Clustering feature was not installed on win8-hv2 and so you don’t see the option to manage it from there.

Do you suffer from “Premature Installation”?

Or, “What’s in a name?”

Turns out a whole hell of a lot! First I need to thanks Nick for the awesome title, as he completely pinpointed my issue after I told him what happened! The last article I posted talked about our desire to move away from vanilla Windows 2008 and up to Windows 2008 R2. What should have been a pretty straightforward process got slightly mangled by two things. I forgot to rename the computer, and I moved to fast, hence the “Premature Installation!”

Naming is important, there are some names you can change and some you can’t. How computers get names has also changed with 2008, it used to be that during installation you were prompted for a name, now you do that after. One of the things we found out was that a Domain Controller can have multiple names, while I don’t know how recent that change is, or isn’t it was new to us. Back to the naming process, while there’s nothing inherently wrong with a Domain Controller named WIN-LLF3467Q0, you would undoubtedly agree it doesn’t really roll off the tongue.

So that was the first problem, I installed Windows 2008 R2 without mishap, and Directory Services installed, and when I hopped over to the Domain Controller’s OU I noticed my problem. So the first thing I did was go to the above article and renamed my new Domain Controller, and this is where the second problem occurred.

Replication while speedy, it does take time, and the more things you have in your AD the longer it could potentially take. The end result of my fubar is that we wound up with no less than three different entries in DNS for the same server, only one of which was correct, and due to replication latency the name of the server in AD was completely wrong.

So I did what I imagine most people would do, and went to uninstall DS from the server and attempt to start over. But because things had gotten so trashed I was unable to uninstall DS, because the server name that I was on didn’t exist in AD, I really should have screenshot stuff but take my word, I was on dc1 and the error was dc1 didn’t exist…which was technically true. It was a crazy weird edge situation, you could actually connect to DC1 but you had to type it in manually in order to get there. At any rate I was unable to remove DS, so I turned off the computer and attempted to remove the computer account that was listed from the Domain.

The problem with that was in order to do it, you MUST be on a Domain Controller to remove a non-functional Domain Controller from the Domain. I’ve not found an article on TechNet that mentions that, but I’ve not looked in any great detail. This information was found on the TechNet Social site, after connective over RDP to the off-site Domain Controller I was able to remove the offending account.

So, in the future, remember to be patient and make sure you have a checklist!

  1. Install Windows OS
  2. Change the default name before network connectivity
  3. Make any needed changes
    1. Disable IPv6
    2. Apply 3rd party DNS Hotfix
  4. Install Directory Services
  5. Wait
  6. Wait
  7. Wait
  8. Verify successful replication

These are the steps I followed on my server rebuild yesterday, as well as the same instructions I followed when I migrated the second Domain Controller this morning.

PHP, Pear and Windows

When running PHP I receive the following message:

“This application has failed to start because MSVCR71.dll was not found. Re-installing the application may fix this problem.”

This file is available on your system, it is part of the .net 1.1 installation and you can find it in the appropriate folder. What I’m guessing at is that when PHP was compiled this file was linked directly in and on the machine doing the compiling it was located in the system32 directory. I tried several things to make it go.

  1. Download and attempt installation of .net 1.1: FAILED
  2. Attempting to use REGSVR32.exe to register the file: FAILED

What appeared to make the error go away was much simpler, I copied the file from it’s location in the .net 1.1 folder structure to the system32 directory and I’ve not seen the error. Below is the command line that I used to make it work.

copy C:WINDOWSMicrosoft.NETFrameworkv1.1.4322MSVCR7.dll C:WindowsSystem32

I do know that the lack of the file does not appear to cause any problems with PHP at all. PHP pages load perfectly fine, running PHP scripts from the command line also work fine.

The Web PI installation of PHP lacks several extensions that may be necessary based on your needs, so in order to get the needed packages you will need to use the Pear package manager. In addition to lacking many extensions, the Web PI install of PHP also lacks Pear, fortunately this is very easy to get.

I opened the Pear manual and in the section under installation found that all you need to do is download the go-pear.php file and run it. Follow the prompts and answer the questions, on my base installation it detected everything properly and was able to install and configure itself with no problems.