Monthly Archives: August 2015

Most important Active Directory attribute of all!

As I’m writing this, I’m prepping to leave for a much needed vacation, followed by VMworld 2015.  Of course, these have been queued up for release to maintain a three per week schedule, so I’ve been blogging my normal amount plus queuing a bunch for my vacation. So I’m going to indulge on a fun, pointless blog post for once.

I stumbled upon this, and thought it was pretty funny.

Behold, the most important Active Directory attribute of all!  🙂

Expect lots of VMworld goodness starting Monday!

Treadmill desk helpful accessories

In a previous post, I mentioned how much my treadmill desk has changed my life.  I wanted to get that first post out there because I’ve noticed probably because they’re still not that widely used, there’s not a lot of information out there about what to expect, things you might need to go with it, etc.  While this is predominantly a tech blog, I want to help others who are using them, and perhaps they can also share with me anything they’ve found helpful as well.  By all means, I’m not the be all end all expert on a treadmill desk, but I am an early adopter, so I wanted help others who are getting started, too.

I also want to point out that some of these accessories are being recommended due to how much I use my treadmill desk, which is A LOT.  My daily goal is a minimum of 15,000 steps (about 7 miles),  and I try to average over a week about 20,000 steps (about 10 miles), and my personal daily record to date is 35,007 steps, or 17 miles!  That’s a lot of walking!  If you don’t plan to use your desk treadmill that much, some of these may not be needed.


Right off the bat, you probably should consider purchasing a few items in this category.  Thankfully, these items are not generally that expensive.  For one, get a dedicated pair of shoes just for walking on the treadmill.  This helps keep your treadmill as clean as possible, and it also allows you to buy the most suitable pair of shoes for walking, even if they aren’t the best looking, or don’t work well for other types of activities.  I tried running shoes that I used exclusively for indoor exercising such as on my elliptical.  I tried a hiking show based on some web research.  I tried a cross trainer from Skechers I had that I love.  I tried some inserts for them all.  I always thought that dedicated walking shoes were just another way for shoe makers to make you buy another pair of shoes.

Friends, I was wrong.  If you walk a lot, and there’s a good chance you will, get some good walking shoes.  After some research, I got some ASICS Gel Quickwalk 2’s, which were around $50.  Before these, I was getting blisters, and my feet were killing me no matter which of the above I tried.  These were totally worth it, and I highly recommend them.

One shoe I do not recommend at all – any Crocs!  I had some old Crocs I barely used just for walking back and forth to the mailbox, so I cleaned those up, and tried them.  They were extremely comfortable and stopped the blistering.  I loved them, but unfortunately, the tread at the balls of my feet wore out in about 3 weeks.  I thought maybe they were on their way because I’d had them for almost 10 years, so I bought a brand new pair made for hiking.  Within two weeks, you could see the same thing was going to happen.  Treadmills eat Crocs for dinner.  Don’t bother.

You may also want some alternative fabric clothing from cotton.  Exercise shirts, shorts, and underwear made from significant portions of polyester, spandex, and other fabrics prevent sweating, chafing, etc.

For those of you like me who will sweat embarrassingly a lot no matter what physical activity you do, even slower walking you typically do on a desk treadmill, I found one other helpful accessory – the Halo headband.  It’s an alternative fabric sweatband with a rubber sweat barrier that prevents sweat from running down your face.  If you like them, buy two to rotate out while the other is getting washed.


Make sure you get something that’s dishwasher safe since you’ll use it a lot, has a good washable straw and cap, and contains plenty of liquid.  You’ll be drinking a lot, and it’s way too easy to spill a drink on your expensive treadmill or desk while walking, so the lid and straw are essential.

I love Tervis Tumblers.  Get a few big ones with caps and straw, and they’re also great because they keep your drink cold and don’t drip condensation.  They’re expensive, but IMO completely worth it.

Computer Stuff

Especially because of my two bad disks in my neck, ergonomics is very important to me.  IMO, it’s mandatory that you get displays that are raised up ergonomically, so do whatever is required for that, which usually involves VESA mount compatible LCD panels and some monitor mounts that allow height adjustments to be at about slightly below eye level. is great for some lower cost options.  If different people will be using these monitors on your treadmill desk, make sure you select monitor mount options that can easily adjust on the fly.

I also strongly believe an ergonomic keyboard is a must.  I can’t imagine typing while walking with a conventional keyboard.  I used to use the quite affordable Microsoft Natural Ergonomic 3000 wired keyboard because of their price, so I could throw them in the dishwasher to clean them, and if they died, it wasn’t a big deal, but the newest versions of these keyboard have quite honestly horrible action.  I recently changed to a wireless Microsoft Sculpt Ergonomic keyboard, and I love it.  My only issue is when you rest your palms on the front rest, it can tip the keyboard towards you.  I got some cheap rubber anti-skid stickers, and popped those on the front edge of the keyboard, and that corrected that problem.  The action on this keyboard is as good as you’ll get without getting something with mechnical buttons.

Use whatever you like for a mouse, but I used to use one of those hard mousing “surfaces” PC gamers often like.  However, there’s so little friction that walking tends to cause you to move your mouse ever so slightly with them, so I switched back to a high quality gaming mouse fabric type pad from Steelseries, and that works much better.  Now I can walk even when I play first person shooters on my PC.

You Gotta Sit

I know, this sounds weird, you get a treadmill to walk, so why would you ever want to sit?  I had false images of grandeur of walking all the live long day while I worked.  Look up at those walking numbers.  That seems like a lot, but that’s not walking 8 hours a day usually.  You do need to sit from time to time, and believe me, it is simply not practical to move the treadmill out.  And at least for my office chair, the deck wasn’t wide enough for the chair wheels to sit flat, not to mention the wheels would probably be horrible for the treadmill belt anyway.

I first tried a friend’s recommendation to put an exercise ball on top of the treadmill and use that.  It’s better for you than sitting in a backed chair, as it promotes better posture and strengthens your core muscles.  Plus, it’s dirt cheap for a chair!  Awesome!

I tried to make it work.  I gave it a good solid month, but in the end, I absolutely couldn’t stand it, and I ended up slumping and putting my elbows on the table to rest from all the walking, which hurt my back.  It did motivate me to get back up and walk, but honestly, I was motivated to walk anyway.

I finally had a friend of a co-worker who does wood working build me a platform to put my chair on.  I’ll post about it in the future, but it’s something you may need to consider in the meantime.

PS.  Somebody should totally do a Kickstarter campaign for an easy to assemble solution for that.

Activity Tracker

The Lifespan TR1200-DT3 treadmill does come with a step counter, with calories burned, steps walked, and distance right into the treadmill.  It even supports bluetooth connections to your smartphone and what not, but the software and interface quite honestly suck.  It’s one of the few things that just plain don’t work well unless you manually write down from the unit what you’ve done.

If you want to track your walking, I would recommend getting whatever activity tracker you like.  My wife uses an inexpensive Jawbone Up Move, which works well.  I use a Lumo Lift, since it tracks steps and buzzes at me to notify me if my posture isn’t good, which helps my neck.  Choose whichever one works for you to easily track your steps and what not.


I had no idea how hot treadmills get until I put one in my already hot office.  My office was bad enough before I put this thing in here.  It’s one office with one doorway, three windows, my workstation with 4 monitors, my wife’s PC with three monitors, a PC running Windows Home Server, an Iomega IX-4 for a lab NAS, a router, a switch, a FIOS cable modem, and a partridge in a pear tree.  It’s also upstairs.  It’s now the summer time.  Just being upstairs adds 5F to the average temperature since I don’t have dual zones.  This office was another 3F before the treadmill even runs.  Ceiling fans only do so much.  When this thing is going, I tried putting a desk fan blowing in my face, but that irritated my eyes, and it wasn’t enough anyway.  We already had a portable AC unit for this room, so it has to get cranked down even more when I’m walking.

Also, due to all the computer equipment, I was already borderline for power.  The treadmill was the straw that broke the camel’s back, so I had to hire an electrician to run another line up.  Otherwise, doing so much as running a vacuum cleaner upstairs tripped the breaker for most of the upstairs power.

Obviously, everyone’s situation is different for both of those.

Also, if you sweat like I do and need a way to listen to sound on your computer privately, consider some kind of earbuds that are sweat friendly.  I had some big headphones I absolutely loved to listen to music with at my computer because they were so comfortable and sounded good, but with the heat in the room, it was like jogging in the summer with super insulated earmuffs on.  They now live at my wife’s desk.

So there you have it, my list of accessories to look into for your treadmill.

Have you gotten a desk treadmill?  What accessories would you recommend?

Why don’t people use stub zones?

This is one of the more odd things I’ve noticed as a trend in DNS configurations – clear examples of where stub zones should be used, yet I rarely ever see stub zones in environments except for the ones I set them up for.  I suspect it may be because there’s so much widespread misunderstanding of what they are, so people don’t use them, even when they should.  Hopefully, this post might clear up what stub zones are, how they work, and when to use (and not) use them.

What are stub zones?

Stub zones are DNS zones that contain only the SOA, NS, and A glue records for a domain.   Otherwise, they don’t store any other records, such as other A records, PTR records, MX, SRV, TXT, etc.  They’re used to help facilitate name resolution for other domains your DNS servers must resolve that your DNS servers don’t host. Once a stub zone is created on a DNS server, the DNS server connects to the identified DNS server it was told to get the NS, SOA, and A glue records from, and copies down all those records only.  Now, the DNS server knows where to get the name servers responsible for resolving forward lookups for the external domain, so they go there automatically to resolve all records within that domain’s forward lookup zone.  They were added as a feature to Windows 2003 DNS servers to facilitate cross domain DNS name resolution.  You can read Microsoft’s official answer here.

Are stub zones just DNS conditional forwarders/forwarding?

While stub zones and DNS forwarders share the same purpose, they’re not quite the same thing.  DNS forwarding is a simple rule on a DNS server that states “connect to these DNS servers to resolve IP addresses for domain”.  They’re static rules that don’t automatically update.  Until Windows Server 2008 and higher, you couldn’t automatically configure all your DNS servers in your domain to use the same forwarding rule, but 2008 did add this ability.  Another important distinction is that forwarding does NOT store DNS zone records, while stub zones do, but don’t let that confuse you from the fact stub zones and forwarding accomplish the same goal, just differently.

Stub zones can also propagate settings effectively like DNS forwarding does with Windows 2008 depending upon how you set the zone up to be stored.  If you use to make the stub zone Active Directory integrated, the zone is stored in AD, and is replicated to at least all the domain controllers in the domain where you created the stub zone, and potentially through the forest.  The key difference between the two in the end as far as functionality is concerned is that stub zones have the distinct advantage of automatically updating what the DNS servers are for the other domain, so long as the administrators of the other domain keep the NS, SOA, and glue A records updated properly.  With forwarding rules, whenever a DNS server for the external domain is added or removed, you must update your forwarding rule, but that’s not the case with stub zones.

When should I use stub zones, and when should I use forwarding?

First off, stub zones are not useful for resolving broadly all internet DNS names.  You use a catch all forwarding rule typically for this, or root hints.  Stub zones (and conditional forwarding for that matter) typically are for situations where you want to resolve DNS names that aren’t on the internet.

With that said, between the two, stub zones are the better choice, provided your DNS environment meets the following:

  • All your DNS servers can connect to all the external DNS servers for that other domain.
  • There’s no significant advantage to have some of your DNS servers consistently connect to varying DNS servers for the other domain.  For example, if you had let’s say two DNS domains internally for domain1.local and domain2.local, and you had two physical sites, with DNS servers for both domains in both sites, if there’s a compelling reason that DNS servers in site 1 always connect to the DNS servers for the other domain also in site 1, stub zones are not the best solution, because you can’t within a stub zone use such rules to dictate which DNS servers identified stored in the stub zone to use.  Your DNS servers will use any DNS server for the other domain.  In this day and age, DNS traffic isn’t exactly eating up bandwidth, and remember that DNS records are cached anyway, so unless you have a bunch of records with low TTL, this generally doesn’t matter.

Why aren’t stub zones used more then?

I think honestly people just know conditional forwarding works, they understand how it works, so they use it instead, even when stub zones would be the clearly better choice.  I only point out that if name servers may change either by adding or removing them from the external domain, you have to keep on top of that, whereas stub zones would automatically update in those events.  The advantage of stub zones increases the more external domains your DNS servers must resolve other than through internet DNS servers, the more the external domain’s DNS servers change, and the more segregated the management of the DNS servers between the domains are.  For example, if domain1.local’s DNS zones are managed by a different team than domain2.local’s DNS servers, either domain’s admins might not remember to tell the admins of the other domains that DNS servers have changed.  Stub zones would have automatically done that.

Yet, stub zones are consistently the redheaded stepchild in DNS design.  But don’t forget about them.  They’re extremely useful, and we should look to use technologies that can help automate our environments.

What about you?  Do you use stub zones?  Why or why not?

NetApp snapshots and volume monitoring script

I just finished a script I created for a customer to help them resolve a problem with their NetApp.  Basically, sometimes their NetApp snapshots would not purge and get stuck, and/or the volumes would run out of space.  I advocated to them many times that if there isn’t a monitoring solution in place to detect this, PowerShell could fill in the gaps.  They took me up on getting something setup because this had happened too often.

First, you need to download the NetApp DataOnTAP PowerShell toolkit and install it.

This script detects any volume with less than 90% free space, and any volume snapshot older than 14 days, which are customizable easily via the variables. Finally, it offers to delete the old snapshots while you’re running the script.

$maxvolpercentused = '90'
$maxsnapshotdesiredage = (get-date).adddays(-14)
import-module dataontap
Write-Host "Enter a user account with full rights within the NetApp Filer"
$cred = Get-Credential
$controller = 'Put Your NetApp filer IP/name here'
$currentcontroller = connect-nacontroller -name $controller -credential $cred
Write-Host "Getting NetApp volume snapshot information..."
$volsnapshots = get-navol | get-nasnapshot
Write-Host "Getting NetApp volume information..."
$vollowspace = get-navol | where-object {$_.percentageused -gt "$maxvolpercentused"}
if ($vollowspace -eq $null){
 Write-Host "All volumes have sufficient free space!"
else {
 Write-Host "The following NetApp volumes have low free space, and should be checked."
 Read-Host "Press Enter to continue..."
 Write-Host "Getting volume snapshot information for volumes with low space..."
 $vollowspace | get-nasnapshot | sort-object targetname | select-object targetname,name,created,@{Name="TotalGB";expression={$}}
 Read-Host "Press Enter to continue..."
Write-Host "Checking for snapshots older than the max desired age of..."
Write-Host "Finding old snapshots..."
$oldsnapshots = get-navol | get-nasnapshot | where-object {$_.created -lt "$maxsnapshotdesiredage"}
if ($oldsnapshots -eq $null){
 Write-Host "No old snapshots exist!"
else {
 Write-Host "The following snapshots are longer than the identified longest retention period..."
 $oldsnapshots | select-object targetname,name,created,@{Name="TotalGB";expression={$}}
 Read-Host "Press Enter to continue..."
Write-Host "You will now be asked if you would like to delete each of the above snapshots."
Write-Host "Note that Yes to All and No to All will not function.."
Write-Host "If you elect to delete them, it is NON-REVERSIBLE!!!"
$oldsnapshots | foreach-object {$_ | select-object targetname,name,created,@{Name="TotalGB";expression={$}} ; $_ | remove-nasnapshot -confirm:$true}
Write-Host "Script completed!"

The resulting output looks like this.

Enter a user account with full rights within the NetApp Filer

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Getting NetApp volume snapshot information...
Getting NetApp volume information...
All volumes have sufficient free space!
Checking for snapshots older than the max desired age of...

Monday, July 27, 2015 11:18:58 AM
Finding old snapshots...
The following snapshots are longer than the identified longest retention period...

TargetName : NA_NFS01_A_DD
Name : smvi__Daily_NFS01_A_&_B_20120621171008
Created : 6/21/2015 4:59:16 PM
TotalGB : 50.8708076477051

Press Enter to continue...:

Script completed!

Hope this helps someone out there!

Road warrior portable monitor

About 13 years ago, I added a second monitor to my home machine, and ever since then, 2 monitors has been a minimum for me when working on a computer without getting mildly annoyed.  It’s so useful to view two full screens simultaneously.  If you’ve used multiple monitors at any length of time, you know what I’m talking about, it’s just hard going back to using one.  In fact, I run 4x 23″ 1080p monitors at my house.

The problem is of course when you’re onsite, or on the road.  Pretty good chance customers don’t have an extra monitor to use, or they look at you weird if you’re brave enough to ask for one, never mind the fact your hotel room won’t have one if you’re out of town.

For me, since I try to travel light, it’s especially worse when I go to a single laptop screen.  Honestly, a laptop with a bigger screen doesn’t help.  Being able to reference something on one screen while working on another is something I’m so used to now; it’s hard to function efficiently when I don’t have it.  I need a portable monitor!

I know, First World Problems.  But First World Problems demand First World Solutions!

Check out the Asus MB168B+.  Make sure it’s the + model, because that’s the 1080p one.  15.4” USB monitor weighing 1.76 pounds, which is astoundingly light for its dimensions.  As a reference, the ipads prior to the air models are about 1.3-1.5 pounds depending on the model.

Comes with a carrying case that doubles as the monitor stand.  It powers off the USB cable, so that also keeps the weight down, although reviews I’ve read said on some computers like the Surface Pros, it’s best to get a USB Y cable, as they often can’t power the monitor alone.  It actually powers perfectly fine off the single USB port on my Surface Pro, but it does fail if I plug in my non-powered USB ethernet/USB hub dongle with an external hard drive drive plugged in without using the Y cable.  It fits easily in my backpack.  Solid picture quality, although it’s a just a bit sluggish.  But definitely good enough to be productive on it, even drawing Visios.

So if you’re like me and want multiple monitors even at a customer’s site or on the road, check this thing out.  Absolutely loving it!

Getting Cisco UCS drivers right with Windows

I’ve already mentioned one pain point with Cisco UCS – drivers – in my previous post concerning vSphere, but the same thing applies to other environments, including Windows servers. You better have the EXACT version Cisco wants for your specific environment. But how do you know which drivers to get, how do you get them, how do you know when you need to upgrade them, and how do you know what drivers you have installed? This post applies to Windows Server, which by extension, includes Hyper-V.

Why is getting the drivers so important?

I want to emphasize that getting the exact right version of Cisco UCS drivers is a big deal! I’ve personally now seen two vSphere environments that had issues because the drivers were not exactly correct. The best part is the issues never turned up during a testing of the environment. Just weird intermittent issues like bad performance, or VMs needing consolidation after backups, or a VM hangs out of nowhere a week or two down the road. Make sure you get the drivers exactly right!  I don’t work with Windows Servers on bare metal nearly as much as VMware, but I’m sure getting the drivers right is equally, if not more, crucial.

How do I install Windows Server 2012 on Cisco UCS?

You have two choices.  One is create a Windows Server installation ISO with the drivers slipstreamed into it, or you can insert the driver image during the routine to install the proper storage driver to see your storage to which you’ll install Windows, which is available from Cisco for download. Also, at least currently, remember that Cisco UCS does not support Windows in a boot from SAN configuration using FCoE.

Remember however you’re still not done.  You’ll need to still update the network card drivers.

How do I know which drivers should be installed?

This is relatively simple. First, collect some info about your Cisco UCS environment. You need to know these (don’t worry, if you don’t know what info you need, Cisco’s Interoperability page will walk you through it):
1. Standalone C-Series not managed by UCSM or UCSM managed B and/or C-Series? For those of you who don’t know, if you got blades, you got UCSM.
2. If UCSM is present, which version is it running? Ex. 2.2(3c)
3. Which server model(s) are present? Ex. B200-M3. Also note the processor type (ex. Xeon E5-2600-v2). They can get picky about that.
4. What OS and major version? Note there is a difference between support for Server 2012 and 2012 R2.  Cisco at least at the time of this blog post does not change support depending upon installed Service Packs.
5. What type and model of I/O cards do you have in your servers? Example – CNA, model VIC-1240

Then head on over to the Interoperability Matrix site.  Fill in your info, and you get a clear version of the driver and firmware.


It’s very straightforward to know which drivers are needed from that.

How do I figure out which drivers are installed?


You can do this one of two ways.  You can manually check them via Device Manager, or you can use PowerShell.  I’m assuming everyone knows how to check these with Device Manager.  To use PowerShell, use the following:

Get-WmiObject Win32_PnPSignedDriver | select-object devicename,driverversion


Note that you can use the -ComputerName parameter to check a remote system, or even a PowerShell array of remote systems for their drivers easily.

How do I update Cisco UCS drivers?

You need to go to Cisco’s support page for UCS downloads, and download the driver ISO that has your driver, which is typically just the driver ISO with the same version as UCS Manager.  For example, if you’re running 2.2.5(a), you need the 2.2.5 driver ISO.

Next, use the virtual media option within the Cisco KVM, mount the ISO, so it’s ready to go.  You could also extract the contents somewhere on the server, it doesn’t matter.

Next, login to the server, pull up Device Manager, and locate the adapter instances you need to update.  If you’re using a VIC, which is pretty much everyone, you need to find the relevant storage and network adapters.  This example, the customer wasn’t using the FC functionality, so we’re just doing the ENIC devices.


When the dialogue comes up, browse to select the zip file that was *contained* in the original zip file. If you select just the zip file you downloaded itself, it will fail. Repeat for the fnic and enic drivers.

Double click one of the VIC instances, click the Driver tab, note the currently installed driver version, and then Update Driver…

Next, click Browse my computer for driver software.

Next, click “Let me pick from a list of device drivers on my computer”.  Don’t even bother trying any other options, it will continue to want to install the old driver because… REASONS!!!

Next, click Have Disk… and browse on the CD to the right folder for the hardware and OS you’re running.  This is a Server 2012 non-R2 server, so as an example, it’s under Windows\Network\Cisco\VIC\W2K12\x64.

After the driver installs, verify the new driver version is now showing in Device Manager.  Unfortunately, you’re not done yet.  You gotta update the drivers on every other instance, but it’s a little easier for the rest.

For the other instances, double click each one, click Update Drivers…, “Browse my computer for driver software”, “Let me pick from a list of drive drivers on my computer”, and you will see both the old and new driver versions.  Pick the new one, and click Next.


Rinse and repeat for all instances, and ensure the driver tab reflects the proper new version.  Remember that FNIC HBA drivers will need to be updated on those instances separately under Storage Controllers.

I took a quick look to see if Microsoft made some device driver PowerShell cmdlets, but unfortunately I don’t see any at this time.

When should I check my drivers?

You should do this during any of the following:

• During initial deployments
• When UCS Manager or a standalone C-Series BIOS is updated
• If you update to a new major OS, although I’d check when planning to install Service Packs to Windows as well.

Also, remember, newer drivers aren’t the right drivers necessarily. Check the matrix for what the customer is or will be running to see which drivers should go along with it!

Desk Treadmill Progress – 8/17/2015

I’ll be posting quite a bit about using my treadmill desk, and one thing I want to include is my desk treadmill progress as time goes on.  This will help me track my progress with it, and it may also help anyone else who is using a desk treadmill perhaps to see if they are having similar or difference experiences.

From the beginning to last week

I really wish I had started this blog when I started using my treadmill desk.  I’m sure I’ll have forgotten details about things, and I didn’t retain my data from the beginning, either.

I got the treadmill desk setup March 9th, 2015.  At the time, I wasn’t exercising regularly, my weight was about 275 pounds (I’m 6’1″), not in the worst shape, but definitely not in good shape.

Basically, when I began using my treadmill desk, the pace was significantly slower than it is now.  I began walking at about 1.8mph to 2.0mph depending upon how precise I needed to be with my mouse.  For distance, I have to admit I let my enthusiasm for getting into better shape get the better of me.  The first few days I was aroud 15,000 steps, but by the third day, enthusiasm took over, and I was walking 20,000 steps for awhile, then 31,600 step day, and from then on through the 28th, I was walking daily pretty much between 20-33K steps.  It caught up with me big time.  I plummeted to barely 15K steps for awhile, and that lasted another month or two, with some sporadic periods where I was hitting 20K sometimes.  Finally, around the end of May, I guess I got my legs back, and I began pushing to average 20K steps again.  And that’s where I am now.

Speed wise, I slowly moved the speed up to where now I can mouse pretty well at 2.7mph, and can walk at 3mph well with just typing.

My weight has seen a fairly steady decline in 5 or so months I’ve had it, and I’m down to about 255!  I haven’t really conscientiously tried to eat better, either, so I’m pretty confident that the weight loss is due to the treadmill desk.

Last Week’s Numbers

So, how did I do last week?  Pretty darn well!  Following a week where I didn’t get nearly as many steps in because the treadmill was getting repaired due to a bad belt, so I couldn’t walk during the week, I bounced back to my old ways until the end of the week, due to a minor medical issue (I’m fine, don’t worry).

Monday – 28,237 steps, 13.6 miles

Tuesday – 21,306 steps, 10.3 miles

Wednesday – 22,652 Steps, 10.9 miles

Thursday – 15,597 steps, 7.5 miles

Friday – 9,886 steps, 4.8 miles

Saturday – 9,053 steps, 4.4 miles

Sunday – 5,935 steps, 2.9 miles

Total: 90,014 Steps, 54.4 miles

This week’s weight: 254.3 pounds.

I won’t have access to the treadmill for the next few weeks, so don’t expect one of these for awhile.

Getting Cisco UCS drivers right with vSphere

I’ve noticed one pain point with Cisco UCS – drivers. You better have the EXACT version Cisco wants for your specific environment. But how do you know which drivers to get, how do you get them, how do you know when you need to upgrade them, and how do you know what drivers you have installed? These are all not necessarily straightforward, and getting the info you need can be a real pain.  This post will show how to accomplish this within vSphere.  For Windows servers, please see my follow-up post due out in a few days.

Why is getting the drivers so important?

I want to emphasize that getting the exact right version of Cisco UCS drivers is a big deal! I’ve personally now seen two environments that had issues because the drivers were not exactly correct. The best part is the issues never turned up during a testing of the environment. Just weird intermittent issues like bad performance, or VMs needing consolidation after backups, or a VM hangs out of nowhere a week or two down the road. Make sure you get the drivers exactly right!

How do I install ESXi on Cisco UCS?

First off, pretty much everyone knows that when you’re installing ESXi on Cisco, HP, Dell, IBM, or other vendor servers, use the vendor’s media. That’s common practice I hope by now. In most but not all cases, you get the drivers you need for an initial deployment from the get go, you get hardware health info within VMware, sometimes management and monitoring tasks for out of band management cards, and you ensure vendor support by doing this. We all know I think by now to do initial ESXi installs with vendor media, in this case Cisco. It’s important for Cisco UCS since so many installs require boot from SAN, that you gotta have those drivers within the media off the bat.

Now, if you think you’re done if you’ve downloaded the latest Cisco co-branded ESXi media for an initial deployment, you’re wrong (see below). Also, don’t assume that just because you use the co-branded media to install ESXi on a UCS server, you never need driver updates. You will likely when you update UCS Manager and/or update ESXi down the road.

How do I know which drivers should be installed?

This is relatively simple. First, collect some info about your Cisco UCS environment. You need to know these (don’t worry, if you don’t know what info you need, Cisco’s Interoperability page will walk you through it):
1. Standalone C-Series not managed by UCSM or UCSM managed B and/or C-Series? For those of you who don’t know, if you got blades, you got UCSM.
2. If UCSM is present, which version is it running? Ex. 2.2(3c)
3. Which server model(s) are present? Ex. B200-M3. Also note the processor type (ex. Xeon E5-2600-v2). They can get picky about that.
4. What OS and major version? Note the Update number. Ex. ESXi 5.5 Update 2
5. What type and model of I/O cards do you have in your servers? Example – CNA, model VIC-1240

Then head on over to the Interoperability Matrix site.  Fill in your info, and you get a clear version of the driver and firmware.


It’s very straightforward to know which drivers are needed from that.

How do I figure out which drivers are installed?

If you go looking at Cisco for how to find that out, you get treated to esxcli commands.  Do you really want to enable SSH on all your hosts, SSH into each host, run some commands, then have to disable SSH on all those boxes when you’re done, and not have an easy way to document what they are?  Nope!


To get the fnic driver versions for all ESXi hosts:

$hosts = Get-VMHost
$versions = @{}
Foreach($vihost in $hosts){
$esxcli = Get-VMHost $vihost | Get-EsxCli
$versions.Add($vihost, ($esxcli.system.module.get("fnic") |
Select Version))
$versions.GetEnumerator() | Sort Name | Format-List 

You get this:

Name : esxi01.vspheredomain.local
Value : @{Version=Version, Build: 1331820, Interface: 9.2 Built on: Jun 12 2014}

Hey! That’s the wrong driver, even though I used the latest co-branded media! SON OF A…!

Let’s get some enic driver versions…

$hosts = Get-VMHost
$versions = @{}
Foreach($vihost in $hosts){
$esxcli = Get-VMHost $vihost | Get-EsxCli
$versions.Add($vihost, ($esxcli.system.module.get("enic") |
Select Version))
$versions.GetEnumerator() | Sort-Object Name | Format-List 

You get:

Name : esxi01.vspheredomain.local
Value : @{Version=Version, Build: 1331820, Interface: 9.2 Built on: Aug 5 2014}

Of course, Cisco apparently didn’t update those drivers in their co-branded media either.

Note for both scripts, you will get errors about get-esxcli not being supported without being connected directly to each host. It works for our purposes.

How do I update Cisco UCS drivers?

Now we know, despite using the latest Cisco co-branded media in my implementation, I need some driver updates. If you go to Cisco’s site for how to install these drivers, they’ll tell you to upload the package to each host and install them one at a time manually using esxcli commands. Do you really want to do that?

Let’s be smart/lazy/efficient and use VMware Update Manager. That way if a new host gets introduced, VUM will report that host non-compliant, and it’ll be easy to fix that one, too. And it’s easy to see which hosts do and don’t have those drivers down the road.

I find if I google the driver version, I find a download from VMware’s site with that exact version first or second link. Here’s our fnic driver and enic driver in this case.

Download those to your vCenter server or something with the vSphere thick client. Unzip them into their own folders. Open up a thick vSphere client connection to vCenter (Web Client won’t allow you to do this), click Home, then click Update Manager.

Next, click Patch Repository tab at the top, and then click Import Patches in the top right.


When the dialogue comes up, browse to select the zip file that was *contained* in the original zip file. If you select just the zip file you downloaded itself, it will fail. Repeat for the fnic and enic drivers.

When you’re finished, you can then build a baseline that includes the updated drivers. Click Baselines and Groups, then Create above the baselines pane.


Call it something like “Cisco UCS Current Drivers”.  Select “Host Extension” as a Host Baseline type.  In the following pain, find the drivers and click the down arrow to add them into the baseline.  Note the Patch ID field has driver version specifics, useful if you’ve already got some Cisco drivers imported before.


You can then attach that baseline directly to the appropriate object(s) within the host and clusters view, or I like to make a Baseline Group called “Critical and non-critical patches with Cisco updated drivers”, add all the appropriate baselines to that group, and attach that group to the appropriate objects in the Hosts and Clusters view.

Then remediate your hosts. When new drivers come out, import them in, then edit the Cisco baseline, swapping out the last updated drivers with the new ones, and remediate to push them out.


When should I check my drivers?

You should do this during any of the following:

• During initial deployments
• When UCS Manager or a standalone C-Series BIOS is updated
• Major ESXi version upgrades
• Update pack upgrades for ESXi (when ESXi 5.5 servers for example are to be upgraded to Update 2, or 3, etc)

Also, remember, newer drivers aren’t the right drivers necessarily. Check the matrix for what the customer is or will be running to see which drivers should go along with it!

My Treadmill Desk – A Life Changer

In a previous post, I mentioned that as an IT pro, it can be a struggle to get stay healthy.

I’ll discuss how I changed my diet radically in a later post, but I wanted to talk about my treadmill desk.  A lot of people have been interested in it, so I wanted to get this post out there sooner rather than later.  I also have a lot of tricks, tips, etc. that I want to follow up with later, too.

Recently, there has been a lot of news about how sitting is slowly killing us because they tend to force people to sit for so much of their day.  Studies have been coming out that show that simply getting up every so often can significantly improve your health, including your metabolism, posture, weight control, blood pressure, and all kinds of health benefits.  More studies have been coming out showing the benefit of the ever increasingly popular standing desks.

About a year or so ago, I threw two disks out in my neck, and ever since, I’ve been more conscious about my posture.  The specialists I saw let me know that this kind of thing is increasingly common because people bend their necks to look at their phones, tablets, and even computer screens.  Considering so much of my time is spent on these kinds of devices, I really began noticing just how bad my posture was when using them, but especially when I was in front of my computer.  I tried better office chairs, but that didn’t seem to be enough, as my neck would still hurt.  I noticed when I sat, I inevitably slumped in my chair, and my neck posture wasn’t correct.

One day, I was working at a customer’s site, and the admin I was working with had a standing desk.  After talking with her about it, she suggested we work together using it for the day to see how I’d like standing.

By the end of the day, yes, my feet hurt, but my neck didn’t.  It felt noticeably better than how it does at my house or workplace.  I also had a friend online who bought a treadmill desk about a year before and raved about how it helped him drop weight and feel better. I could definitely stand to lose some weight.   Naturally, I felt a treadmill desk would be a good fit.

After researching and even trying some models out, I came to the conclusion I needed the following:

  1. A reliable treadmill that could go as slow as 1.8mph and as fast as 3.5mph, with a control module on top of the desk.   The speed isn’t hard to find.  The de facto treadmill people go with is the Lifespan TR1200-DT3, and that’s what I went with.
  2. A standing desk that would mechanically adjust, via a powered motor, with at least 3 memory settings for height.  (One for me standing, one for me sitting, and one for my wife standing when she would use it.)
  3. A desk that would adjust to heights that would be ergonomic for my arms bending at roughly 90 degree angles.
  4. A desk that would work with VESA monitor mounts to ensure the monitors could be set at a height about eye level.
  5. Although not absolutely necessary, it would be great to have a desk that had a solution for undermounting the CPU under the desk to not have to worry about any cord lengths other than maybe power.
  6. A desk wide enough to hold everything on my desk.
  7. NO INTEGRATED WRIST PAD!  The Lifespan desk/treadmill bundle had this, and when I tried it, I ABSOLUTELY hated it.
  8. A premade package to ensure I wasn’t buying something that couldn’t for example hold my computer underneath, and would be easy to assemble, despite the higher cost.

I settled on an Uplift from The Human Solution in black, 72″ wide model.  It included an undermount for my computer, the electric motor, four height memory setting, a good warranty, pre-drilled holes to make assembly very easy, and it was reasonably priced compared to the competition. Here’s some pictures, and pardon the cord mess, I hadn’t installed wire management at the time.

Here’s the CPU mount close up:


Here is the treadmill and desk controls:


So far, it’s been a complete life changer.  I’ve dropped 15 points since I purchases it about four months ago.  My neck feels better, I have more energy, and I just generally feel much better.

However, there’s been a learning curve to using it, and other things I needed to make it work for me you may not think about, which I’ll talk about in future posts.

Have any of you been thinking about getting a standing desk or a treadmill desk?  Have any of you gotten either?  How has it worked for you?


HP NC375T NICs are drunk, should go home

I ran into one of the most bizarre issues I’ve ever encountered in my decade of experience with VMware this past week.

I was conducting a health check of a customer’s vSphere 5.5 environment, and found that the servers were deployed with 8 NICs, but only 4 were wired up.  While the customer was running FC for storage, 4 NICs isn’t enough redundantly segregate VMotion, VM, and Management traffic, and the customer was complaining about VM performance issues when VMotioning VMs around.  The plan was to wire up the extra add-on NIC ports, and take a port each from the quadport onboard NIC and the add-on HP NC375T.

So first, I looked to see if I had the right driver and firmware installed for this NIC according to VMware’s compatibility list guide.  The driver was good, but commands to determine the firmware wouldn’t provide any info.  Also curious was the fact that this NIC was showing up as additional ports for the onboard Broadcom NIC.  FYI, this server is an HP DL380 Gen7, a bit older but still supported server for VMware vSphere 5.5.

At this point, I wanted to see if the onboard NIC would function, so I went to add the NICs into a new vSwitch.  Interestingly enough, the NICs did not show up as available NICs to add.  However, if I plugged the NICs in and just looked at the Network Adapters info, the NICs showed up there and even reported their connection state accurately.  I tried rebooting the server, same result.  One other server was identical, so I tried the same on that one, same exact behavior – they reported as ports that were part of the onboard NIC, commands to list the firmware version did not work, you could not add them into any vSwitch, but the connection status info reported accurately under the Network Adapters section of the vSphere console.

At this point, I was partly intrigued and enraged, because accomplishing this network reconfiguration shouldn’t be a big deal.  I put the original host I was working on in maintenance mode, evacuated all the VMs, and powered it off.  I reseated the card, powered it back on, and I got the same exact results.  I powered it off, removed the add-on NIC, and powered it back on, expecting to see the NIC ports gone, and they were, along with the first two onboard NIC ports!

This was, and still is, utterly baffling to me.  I did some more research, thinking this HP NC375T must be a Broadcom NIC since it’s messing with the onboard Broadcom adapter in mysterious ways, but nope!  It’s a rebadged Qlogic!  I reboot it, same result.  Cold boot it, same result.  I put the NIC back in, and the add-on NIC ports AND the two onboard NICs come back, all listed as part of the onboard Broadcom NIC!

I researched the NC375T for probably over an hour at this point, finding people having other weird problems, some of them fixed by firmware upgrades.  It took 45 minutes to actually find a spot on HP’s site to download drivers and firmware, but the firmware VMware and everyone else who had issues with this card swore you better be running to have any prayer of stability was not available.  I tried their FTP site, I tried Qlogic’s site, no dice.  I recommended to the customer that we should probably replace these cards since they’re poorly supported, and people were having so many problems, AND we were seeing the most absolutely bizarre behavior I’ve ever seen with a NIC.  The customer agreed, but we needed to get this host back to working again with the four NICs until we could get the replacement NIC cards.

At this point, I had a purely instinctual voice out of nowhere come in to my head and say, “You should pull the NIC out and reset the BIOS to defaults.”  To which, I replied, “Thanks weird oddly technically knowledgeable voice.”

And sure enough, it worked.  All onboard NIC ports were visible again.  Weird!  Just for fun, I stuck the NC375T back in.  What do you know, it was now listed as it’s own separate NIC, not a part of the onboard Broadcom adapter, AND I could add it to a vSwitch if I wanted, AND I could run commands to get the firmware version, which confirmed it was nowhere near the supported version for vSphere 5.5.

In the end, the customer still wanted these NICs replaced, which I was totally onboard with at this point, too, for many obvious reasons.

So, in conclusion, HP NC375T adapters are drunk, and should go home!