Guest OS Mis-match

I’ve been working on cleaning up my vSphere environment and found a very handy one-liner today.  The full article can be found here:

http://frankdenneman.nl/2009/12/impact-of-mismatch-guest-os-type/

I took the suggestions in the comments and came up with the following:

Get-View -ViewType VirtualMachine | Where { $_.Guest.GuestFullname -ne $_.Summary.Config.GuestFullName } | Sort Name |Select-Object Name, @{N=”InstalledOS”;E={$_.Guest.GuestFullName}}, @{N=”SelectedOS”;E={$_.Summary.Config.GuestFullName}} | Out-GridView
Posted in Scripting, Virtualization | Leave a comment

Server Cloning with Presentation Server 4.x

I’ve been reading up on requirements and performance information for virtualizing Citrix servers.  I’ve actually been P2Ving a few – to save my Citrix guys from having to reinstall a bunch of legacy apps.  Even though all the recommendations I can find oppose this method, it appears to be successful in our environment.  Since there are a lot of dependencies and overlap we are in the habit of creating a pair or three Citrix servers for each legacy app.  This gave us redundancy at the app level but gave us more servers than we probably really need (since many of these applications are not heavily used).

One of the articles I was reading linked to this article on scaling out Citrix VM’s by cloning them:

http://support.citrix.com/article/CTX107406

Going forward I may use this to assist with cleanup of these old P2V’s.  As time permits we may rebuild one server and then clone copies if the app is heavily used.  If its not heavily used, we will probably rely on VMware’s HA to provide redundancy in case of hardware failure.

Posted in Virtualization | Leave a comment

vCenter Migration

I had a big day at the office a couple of days ago.  I moved my vCenter application from one dedicated server to another.  That doesn’t sound like a huge ordeal, but it was a pain in the rear.  I stumbled along with a lot of help from Google and I wanted to outline some lessons learned for everyone else.

I actually had a few objectives I wanted to achieve:

  • Migrate from Windows 2003 x32 to Windows 2008 x64
  • Replace my out-of-warranty/physical vCenter server with newer hardware
  • Change the authentication model for the remote database from SQL to Windows Integrated
  • Re-IP vCenter to be on my management VLAN

I attempted this upgrade a little over a week ago and near the end of my change control I realized that something was wrong with the Windows 2008 server which prevented the event log from opening and the service from starting.  Since I didn’t want to leave this in production I backed out my change and rescheduled.

The second attempt at this install went much better.  I had my 2008 x64 server rebuilt by my server team and the event log was working fine (I verified before attempting my install).  The vCenter install went well and I was able to achieve the first three of my objectives.  The final one was a bit more work — since I changed my vCenter IP I had to manually reconnect each of my hosts.  It was expected and only took fifteen minutes or so.

After I had visibility into each of my hosts and basic vCenter functionality I started digging a bit deeper to verify my change was successful.  When I clicked on the “vCenter Service Status” button I found a problem.  All of the metrics had errors that they couldn’t connect to the old name of my vCenter server.  I poked around the console and changed my VirtualCenter.VimApiUrl and VirtualCenter.VimWebServicesUrl in the advanced vCenter settings but was unsuccessful.  Luckily I was able to find this VMware Communities article that suggested using ADSIEdit to delete an entire container from the vCenter ADAM instance (CN=<GUID_of_vCenter>, OU=ComponentSpecs, OU=Health, DC=virtualcenter, DC=vmware, DC=int).  Thanks, bgarner!

Once I was able to see the service status I realized that my SQL agent stat rollup tasks (weekly/monthly) were not running properly.  Part of my install included changing the way I access my remote database from using MS-SQL authentication to Windows Integrated.  During the first attempt of the install I received an error that one of the rollup tasks in the SQL agent was owned by the SQL user and had to be owned by my Windows user to continue.  I decided the smartest thing to do would be to delete all three rollup tasks and simply let the install re-create them.  Turns out this wasn’t the best idea — for some reason the install only recreated the daily rollup task and not the weekly or monthly.  I didn’t save the link (shame on me) but I found a blog entry suggesting that I re-run job_schedule2_mssql.sql and job_schedule3_mssql.sql from my Program Files\VMware\Infrastructure\VirtualCenter Server directory.  I ran the scripts and verified that the jobs existed in my SQL Agent.  They were scheduled to run several hours in the future — so my vCenter Service Status still showed a warning.  (For the record, I checked back the next morning and everything was fine.)

Finally, another annoyance I’ve been dealing with for awhile was a plugin from a CapacityIQ proof-of-concept that showed up in Plugins > Manage Plungins.  I was no longer using the product but I couldn’t seem to get rid of that plugin.  I have removed plugins from the client machine several times but this one seemed to follow me around.  Fortunately another VMware Communities article came to the rescue.  The article specifically references vCenter Chargeback but the process worked for CapIQ.  The key was finding the correct methods in the https://vcenterserver.mydomain.local/mob web service — that I didn’t really understand or know about.

I hope these links help if you ever encounter a similar problem.

Posted in Virtualization | 1 Comment

NSFW: The Cloud Computing Consultant

I just found this (somewhat inappropriate) video around cloud computing consultants:

http://www.mckeay.net/2009/10/06/nsfw-the-cloud-computing-consultant/

Had to share 🙂

Posted in Virtualization | Leave a comment

Windows 2000 P2V blue screens

I recently had two older model Compaq servers blue screen after a P2V conversion. In each case the physical machines had a diagnostic partition (without an assigned drive letter) on disk before the boot/C: partition. While using the VMware Converter this volume was de-selected and not migrated to the virtual machine. In each case the server blue screened with an error “INACCESSIBLE_BOOT_DEVICE” after the conversion.

At first I believed this error to be caused by that diagnostic partition. I tried to re-run the P2V several times and even tried including the diagnostic partition in my VM. The problem was persistent; no matter how I used the P2V the host (cold clone/block level agent/file level agent/with and without diagnostic partition) this error would occur.

After a couple of attempts I thought I was fighting a lost cause. Finally I stumbled across an article that suggested I had a bad version of scsiport.sys and suggested several methods to replace this file. Since I’m using virtual machines and already had a Windows 2000 VM template, I deployed a copy of my Windows 2000 template and attached my P2Ved C: drive as a second drive in the server. I copied the known working copy of SCSIPORT.SYS from C:\WINNT\System32\Drivers to my second drive (E:\WINNT\System32\Drivers\SCSIPORT.SYS). I then shutdown and removed the second drive from my temporary server and powered on the recently P2Ved guest. Problem solved.

Posted in Virtualization | 8 Comments