with many thanks to my colleague, Randy Curry – and special thanks from Stu Fox (@stufox) for their valuable assistance and input…
Tip:
Save yourself heartache and download and install before doing anything to the SCVMM.
- WADK (Windows Assessment & Deployment Kit)
- Microsoft SQL 2012 Native Drivers
- Microsoft SQL Command-Line Tools from the Feature Pack
- …and don’t forget the obligatory reboot required after meeting these pre-reqs!
The first thing to mention about the install of System Center Virtual Machine Manager (SCVVM) 2012 R2 is that someone at Microsoft doesn’t know the difference between “extract” and “install”. After downloading the bundle, you’ll will be left with an .exe file. This is some kind of auto-executing extractor – it’s not the product installation. The trouble is that all the wizard that accompanies the extraction process keeps on referring to installing. In fact that comes after the extraction process, with the setup.exe
The actual installer looks like this. Incidentally, notice a reboot might be required after the installation. Mmm, nothing new there then – I waited in expectation if I could add this reboot to my list.
In my configuration I opted for an external Microsoft SQL database. I have one already running under vSphere which hosts my VMware database for things like vCenter, VUM, vCAC and so on. As I was running a small lab I could get away with the recommendations for managing up to 150 host which is 4GB RAM and 40GB of local disk space for the C:. This sort of configuration is handy, because if I ever need to manager more than 150 hosts, all I need to do is increase the memory allocation. With VMware vSphere I could do that on the fly without shutting down the VM because it supports hot-add of memory. Unlike some of vendors virtualization software… [Just sayin’]. One funny thing about the specifications if you run SCVMM on Hyper-V itself is settings around dynamic memory:
This recommendation to increase “start-up” memory is rather telling of a flaw in Windows Hyper-V memory management. Occasionally, this start-up memory can be set too low, and big installers such as SCVMM cannot get their memory allocated in a timely enough fashion for them to function properly. Now is not the place to investigate dynamic memory closely, but it something I want to look at in subsequent posts.
Initially, I decided my “VMM Library” would be hosted off a NetApp array using CIFS/SMB. That’s similar to what I do with VMware vSphere – I use NFS for both my templates and ISOs. It’s handy because it means you can have one repository for all your stuff that transcends the cluster “domain”, and means you don’t have to fanny about with FC masking or iSCSI IQN Masking just to get to ancillary datastores that you need to your admin. However, I later discovered that this would be a problem. More about later…
UPDATE: Since the GA of SCVMM R2 the preview of WADK has been withdrawn – and a new one released. It is downloadable from here:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=39982#
My SCVMM server is based on Windows Server 2012 not the R2 Preview. In hindsight I wish I had used the R2 build because the software pre-requisites look to be matched in R2. Where as other Windows OSes such as Windows Server 2012 or Windows 2008 R2 need additional downloads.
One thing I was a little confused by was the requirement for the Windows Kits (WAIK and WADK). The Windows 7/8 kits are have quite big disk footprints. The basic install of the WADK for Windows 8.1 Preview is around 3.5GB.
According to Cardoso’s book these are needed to add WinPE, Deployment Imaging, Servicing and Management, and System Image Manger – which is used by SCVMM to do bare metal deployment of Windows Server 2012 Hyper-V. This pre-requisite must be met on Windows Server 2012 for the installation to continue:
The Windows 8.x WADK ships as 1.2MB file that downloads the rest of the software required, so if you’re SCVMM is not connected to the Internet that will fail. Although Microsoft use the word “install” for the 1.2MB file it actually a downloader, that allows you to pull down the parts WADK you need, and then copy across to any Windows instance that needs it. This isn’t immediately obvious – call me pedantic if you like but I do like to see my language used correctly. Downloads are not installs.
Finally, if you are using the R2 release you will need the Microsoft .NET Framework 4.5 installed as well. Mercifully, the WADK downloader recognises its absence and installs it for you. Quite why I need 3.5GB of software to install SCVMM R2 is beyond me. I’m going loopy watching download status bars.
Anyway, once you have download the WADK you can run yet another setup.exe you get to choose the options required. The important thing to mention is despite everything being selected in the wizard – you actually don’t need all this junk – you just need the “Deployment Tools” and the “Windows Preinstallation Environment (Window PE) that comes in at 2.2GB of disk space.
At this point I thought I’d be ready to rock ‘n’ roll. After the dialog box only flagged up the missing WADK. However, imagine my disappointment when I discovered some other software requirement was missing – despite this not showing up on my previous run through.
Note: The VMM Console requires PowerShell 3.0 that you will find is not a default in Windows 7 – and yes it requires a reboot.
If you search for “command-line” you’ll find an x86/64 download. Incidentally, this installer requires the Microsoft Windows 2012 Native SQL Drivers. It was really my fault because it does state on web-page that the SQL command-line requires the SQL Native Drivers are needed.
If you do try to install the command-line tools from the feature pack without the Windows 2012 Native SQL Drivers, you will receive this error dialog box:
And yes, that URL is wrong as well. It downloads directly something called the “Microsoft SQL Server Compact 3.5 SP1” which I believe is an x86 package, and which is incompatible with Windows 2012.
So… If you’ve not got it already installed make sure you download it from the Feature Pack page along with the command-line tools.
Look, I’m grown up and I know what dependencies are – but you’d think the SCVMM would list all the dependencies. This left me feeling like I was working with Linux RPMs. You can’t install RPM-X, because you need RPM-Y, and RPM-Y won’t install because you don’t have RPM-Z. It left me wondering that given all this software is why won’t Microsoft bundle the whole kit and caboodle up in a single download, rather than sending the poor SysAdmin on wild goose chase around microsoft.com.
Once I got all my pre-requisites in a row, I clicked “Check Pre-requisites again” button.
At this point I swore like anger a famous Swedish detective from Yastad. (For complete rundown on Swedish swear words check out this youtube: https://www.youtube.com/watch?feature=player_detailpage&v=YxlJhqCYjAw )
I managed to pass the pre-requisites. Next I was on database configuration.
Brace yourself. I’m going to pay Microsoft a complement.
I actually quite like this approach. The part of the wizard creates the DB, and sets the permissions and rights (I don’t know how well, because I’m no Microsoft SQL admin), I wish vCenter did this – rather than leaving it to the admin to manually create a database, assign a user and set the database rights. In vCenter you have to install the SQL Native Drivers, and then manually create the ODBC DSN that allows the service to speak to the database. The other thing I like is the way Microsoft integrates their browse buttons to search the Active Directory. In vCenter and other VMware technologies you have to manually type domain names and usernames. I doubt the vCenter team will agree with me on this – they will point out that in most corporate environments the virtualization admin, ain’t the database admin. But I am – and I like this. So there!
Next I could set the service account for SCVMM, and also the “Distributed Key Management” location:
UPDATE:
There’s another reason why you need to be careful with your user accounts. There’s a temptation in homelabs (which oft spills over into bad practise in production) that you use the DOMAIN\Administrator for everything – for both general admin but also for service accounts. If you do that with SCVMM you will come cropper. If the “RunAs” account you use for an admin task like adding Windows Hyper-V hosts is the SAME as the service account used by SCVMM you will get this error message:
SCVMM uses encryption keys to protect data in the environment. These encryption keys need be stored in a location that accessible for de-encryption. The best practise is to use AD hold these keys, and it’s a requirement for scenarios where you have two SCVMM nodes protected with Failover Clustering. Without when SCVMM01 crashed, SCVMM02 wouldn’t be able to access the database because it wouldn’t be able to find the encryption keys. If you have domain rights with the account doing the installation then all of this will be taken care for you; if not there’s a long tedious method using ADSIedit. Good luck with that…
After accepting some default port numbers (incidentally, these cannot be changed after the installation, without completely re-installing SCVMM), you can then set the default share location for the SCVMM Library. The library is a repository for VMs, virtual disks, scripts and so on. To be honest I rather like the concept of the library. [Perhaps because I spent a lot of time in one whilst doing my English and American Literature degree in the early 1990’s!]
It’s something that isn’t present in vCenter as concept, and whilst you can “store” VMs and Templates in folders and datastores – there’s no concept using that resource for other related objects that maybe part of your daily virtual administration. As ever with Microsoft product the main thing is to make sure your library isn’t on the C: but in some shared location.
The interesting aspect about this is that I assumed that I would be able map a drive letter to CIFS/SMB share on the NetApp. Sadly, SCVMM was not happy.
You are able to use remote share – but not from here. Instead you have to add the share in SCVMM as VMM Library Server, rather than just mapping a drive to it. I really didn’t want to have the library as local resource. I had two options:
- Create 2nd virtual disk for the SCVMM stored on the storage array
- Add an Raw Device Mapping (RDM) to SCVMM
- Create an iSCSI volume on the Dell Equallogics – and then present that directly to the VM, and connect to using the Microsoft iSCSI Initiator.
- Set a temporary location for the SCVMM install, and then later add in a VMM Library Server
Option 1 was decidedly more favourable – it’s quick and easy. As rule I generally don’t give my VMs “Raw Device Mappings” in vSphere or present through the virtual machine network, a path the storage network. In the end I decided I would use an RDM, rather than virtual disk. So if I wanted SCVMM running on Hyper-V instead of vSphere I wouldn’t loose my library or have to convert virtual disks.
The Library share path cannot be a root drive letter. So L:\ is bad whereas L:\HyperVLibrary is good. I guess this goes all the way back to limitations surround the maximum file number on a root volume. If you try to use L:\ you will get this error message:
The entire install took 35mins, with a progress bar that didn’t really tell you the progress. Although I hate percentage status bars – at least it gives you feel for how much has been done, and how much there could be to come.
Believe me, the entire process including all the pre-requisites took much longer. At times it felt like a trip to the dentist was in order, because it was like having your teeth pulled, or having a root-canal…. With that said, I know anyone who knows vCenter will pull me up on the SSO woes some folks have had. So I guess you could say it was horses-for-courses…