AHV templating

When staring at an empty Nutanix AHV (or CE) cluster, a lot of first time customers ask ‘now what?’.  It’s a fair question; you have a clean, new environment, and want to make use of it.

If you’re migrating over existing virtual machines from some other form of infrastructure, you’re typically keeping them as-is, other than installing the basic virt-io drivers.  If you’re looking at this as an opportunity to clean house and upgrade components, this is a good time to get your templates built properly in a manner that lets your repeat the action as often as necessary.

For this example, we’ll start with Windows Server 2016.  It’s fairly new and most people haven’t gotten a system for it worked out yet, so it’s typically a good point to try this out.

I’m demoing this with the evaluation media, but if you have access to the real thing it should work as well.  You’ll also want to download a copy of the Nutanix virt-io driver ISO from the website.

I’m assuming you have either a valid AHV or CE cluster available to use.  My examples are on a single node CE running on a skull canyon NUC.
ahv

Continue reading

Beware the crutch

A discussion point

crutchesI get to work on projects deploying new infrastructure fairly regularly where the topic of “best practices” is often cited by both vendor engineers and customers, with normally well meaning intentions.  Where it becomes dangerous is when those citing it don’t understand why it’s a best practice, or how it being “best” is measured.  Before I explain my logic why I think this is dangerous, let’s lay out what this means.

http://dictionary.reference.com (because if it’s on the internet, it must be true, right?)dictionary.com

Wikipedia
wikipedia

The problem

Generally speaking, these definitions seem to describe the mental model that people have conceived of how a best practice works.  Wikipedia’s definition even calls out my exact gripe, which I’ve highlighted in orange.

At least in my little part of the IT realm, vendor best practice documents are also typically CYA material.  They are as much “you’re least likely to screw this up and/or complain” as they are truly a good idea, which is understandable when you pay attention to who does the writing and who the target audience is.  That this happens, while annoying, makes sense.

The issue is that when people don’t want to to think through a design or try to understand the complicated portions of an install.  Rather than using brain power, they simply cite “best practices” as the holy grail of how to do something.  Or worse, they make a choice that is being questioned and they hide behind the “best practice” like it’s a magical shield.
knight

If someone asks you why you’re putting virtual machine disks on RAID5 with Fast Cache on an EMC VNX, you should be able to explain how caching offsets the RAID5 write penalty.  If someone asks why you only have 2 10Gb NICs in Hyper-V, you should be able to explain how you use multiple virtual adapters and QoS to maintain traffic behavior.  If you’re installing XenDesktop using PVS and deploying the virtual machines on vSphere, you should be able to explain how VMXNET3 offers lower overhead by being paravirtualized compared to the E1000.

There is nothing wrong with using best practices.  But if you can’t explain the why, you’re just using them as a crutch.  Then you’re at risk of someone kicking that crutch out from underneath you, either accidentally or purposefully, and you end up looking like this guy
charliebrown

Remember, a “best practice” is just the most common option.  If it was the only valid option, it wouldn’t be a best practice: that’s what they call a requirement.

SCVMM 2012 SP1 and SQL 2012 always-on groups

SCVMM 2012 SP1 will tolerate running against a database in an always-on group in SQL 2012, but there is one little caveat.  It will not install to the database when its protected.  So to install, you need the database removed from the always-on group.  Install using the listener (any database on the server the listener is tied to will be visible through the always-on listener, its just not guaranteed to follow the listener during a failover).

This is also true when adding a second scvmm server for failover later.  You’ll need to again remove the database from the always-on group, install the 2nd server against the listener address, then re-add the database to the always-on group.

I wish this worked without going through the hoops, but its not that hard of a fix once you know what’s going on.

Windows 2012 annoyance

Often it’s the little things…

If you install an evaluation copy of Windows Server 2012 and later try to install the KMS key to make the server permanent, for me at least the activation wizard throws a fit and fails to take the key.  Please note this is installing the product key that causes a machine to search out a KMS server, not an actual KMS license (although that’s supposed to work as well).

If you start an elevated command prompt and run DISM /Online /Get-CurrentEdition it should end up saying your current edition.  For datacenter the value is ServerDatacenterEval.  I think for some reason the wizard doesn’t understand you’re trying to ditch the eval component and rejects the KMS key since it’s technically different.

To fix this, run DISM /Online /Set-Edition:ServerDatacenter /productkey:48HP8-DN98B-MYWDG-T2DCC-8W83P /AcceptEula for datacenter or DISM /Online /Set-Edition:ServerStandard /productkey:XC9B7-NBPP2-83J2H-RHMBY-92BT4 /AcceptEulafor standard from that same elevated command prompt and reboot when prompted.

This will leave the 2012 evaluation install in the same situation it would have been if you’d started from a full copy of the media, and it will attempt KMS activation going forward.  You can run slmgr.vbs /ato from an elevated command prompt if you want to kick it off immediately (after the reboots complete).

The list of all the KMS product keys is available here http://technet.microsoft.com/en-us/library/jj612867.aspx

SCCM 2012 with shared instances

When you install System Center Configuration Manager 2012, a simple option is to install a local database for each role.  The CAS (Central Administration Site) gets it’s own local database, each primary site gets one, etc.

You’re also able in smaller environments to give each site it’s own instance on a shared SQL server.  One little detail to keep in mind is that the SQL broker service gets configured on the database server, and the installation wizard isn’t smart enough to notice it’s already in use.

The default port is 4022, so for each ‘shared’ instance you’ll need to increment the port 1 to allow for peaceful co-existence.  The installer does not complain in any visible way although the port is already in use.

Take note that this means that you’re granting the SCCM server administrator rights to the SQL server, so realistically for a smaller environment, you’ll probably want to just keep it locally installed anyway.  Not installing things on your shared SQL instances keeps your DBAs happy as a bonus.