NetAppDocs is quite possibly the best thing ever.

Let’s get real for a sec.  Nobody likes documentation.  I know I don’t and usually when it comes to negotiating the cost of a Statement of Work, this is usually the first task to get whittled away or eliminated all together.  Fortunately for us NetApp professional services consultants, we have NetAppDocs!

I first heard about this after taking the Advanced Transition to Clustered Data ONTAP class last December at NetApp’s Research Triangle facility.  Nice place if you get a chance to go there.  It’s a great tool to generate a comprehensive document if the customer has a new or existing NetApp storage in their datacenter.

The first time I had a chance to use this on a residency project I’m currently on where they have a few FAS8000 series clusters with a mix of flash and spinny disks.  I think it’s great I was able to deliver current documentation for the customer but now they have the ability to generate updated documentation in the future.  Which will happen as more equipment is scheduled to be installed.

That’s delivering value and it’d be great if other vendors do something similar.  I know for sure it would be great to have when I was working for another partner doing post-sales implementation work.  It’s just PowerShell and I’d be great if I could generate as-built documentation on vSphere or Hyper-V clusters.


NetAppDocs (requires NetApp support login)



Cache Hits: Why are A0 VMs a thing on Azure?


I have an MSDN subscription and I’m playing around in Azure.  You get $150/month in Azure credits.  An A0 basic VM is the cheapest VM you can run at approximately $13.50/month. You get a whopping 768 MB RAM and a shared CPU.  That shouldn’t be so bad for testing?

Pfft. right…

The two lines you see are CPU usage. The purple line is the AD Connect server, the bottom is a domain controller. Azure AD sync only kicks off once every three hours. Looks like I’ll have to splurge for an A1 VM with a whole core!  Fancy!

Hero Numbers

First off, I’m happy that I’ll be speaking at SQL Saturday in Baton Rouge.  This event is a free IT conference that will be hosted at the E.J. College of Business at LSU in Baton Rouge tomorrow on August 1st.  I attended last year and this year I’ve been asked to give a presentation.  I’ll be presenting two one hour presentations, one on virtualization and another on storage.  Don’t let the name fool you, this isn’t full of developers and DBAs who think RAID is a backup solution.  This is a great conference for anyone in IT or anyone getting into IT regardless of your experience and position.

When creating my storage presentation I mention “hero numbers”.  Hero numbers are basically statistics cherry picked from a third party who tests performance on storage arrays or just totally made up.  Storage in itself is a pretty commoditized thing.  Everyone can do fibre channel, everyone can do iSCSI.  Everyone can put a bunch of disks in a box, slap a shiny and perhaps glowing logo on it and call it a storage array.   Some companies licensed another companies intellectual property and just slapped a pretty web interface on it.   You can even make your own storage with off the shelf hardware and software like FreeNAS.

What makes the difference is performance, management, and features. Vendor marketing units will do anything they can to tout why they’re awesome and cringing, face-palming ways to show why their competition is not awesome.

The most abused and misunderstood statistics is the Input/Output per Second or IOPS.  Just as it sounds, its the number of read/write operations an array will perform.  What people don’t realize is that IOPS can be easily manipulated.  Anyone can load up IOmeter and claim “HEY LOOK, OUR ARRAY CAN GIVE YOU BILLYONS AND BILLYONS OF IOPS” by manipulating the workload.


Most IOPS figures are based on 4K block size and sequential reads.  Quite possibly the easiest workload you can ever configure in benchmarking software.  Some vendors, such as Pure Storage at least put some truth behind their marketing. I remember looking at them first claiming IOPS on 8k reads, now they’re claiming IOPS numbers on 32k reads.  Either way, most file systems may read in 64k or even 128k blocks depending on the application.  Microsoft for instance recommends a 64k block size for Exchange database volumes.

Another hero number that gets thrown around quite a bit are deduplication ratios.  Deduplication is the process of removing redundant blocks of data and the use of metadata to help rebuild that data when used.  It’s great for virtualization, servers and desktops.  Say  you have 50 VMs with the same OS, now you’re at least deduplicating those 50 OS copies to one instance on storage.   However for things such as databases and unstructured data, you may not see such awesome dedupe ratios.  In fact, you may only save on average of 10-30%.  Some vendors ask you do not deduplicate data for their applications.  Deduplication really shines along with compression when it comes to backups.  CommVault has built deduplication into Simpana. So even if your array doesn’t support it, they can through their software.

The lesson to learn here is that don’t read too much in hero numbers.  If you want to ever get a good feel on how a new storage platform will perform in your environment, ask for a  test drive.  Most storage vendors can get with a partner to install test gear into your environment to evaluate for a period of time to get used to how things will run with your apps.

Recruiters, recruiters, recruiters, recruiters, recruiters….

If you have a considerable amount of IT experience and have an active LinkedIn profile, you’re bound to be contacted by recruiters. Some are great, some are bad but it always seems to be the latter that tend to find your phone number. I don’t mind lending a few moments of my time to speak to a recruiter but it becomes tiresome when it becomes nothing more than a waste of time.

I’ll be honest, most of the jobs I’ve been hired on have been by recruiters. The last two was due to people I knew so I got to bypass that. Not to say all recruiters are bad but as any perceived lucrative career choice, it makes it tempting for someone to chase commissions than provide quality work. Maybe it’s just me but it seems that far too many IT recruiters seemed to be more interested in making a quick buck than try to actually fit people in positions they’re qualified for. What a novel concept, actually doing the job you’re being paid to do.

Think about it this way. Say that I’m a hiring manager for an IT department and I have a few positions to fill. I commission your services to do some of the heavy lifting as I probably don’t have the time to separate the wheat from the chaff in the resumes that I would be encumbered with. If you were to send me crap candidates so you can quickly make a commission, why would I trust your judgement? I would rather do business with someone who’s going to painstakingly go through resumes and screening calls to find the most qualified and allow me to make my decision with those few individuals.

Ah, this is classy recruiting right here folks.


Tips on recruiting IT professionals from an IT professional:

  1. Don’t waste my time. If you don’t know what a systems administrator does and you’re recruiting for those types of positions, you should probably try to research that. I mean, if there’s something specific, but if I give you a general answer like “I’m a consultant”, don’t hem and haw and say “I don’t know what that means”. Search Google or Bing for IT consultant and the first friggin result is a Wikipedia article on “Information Technology Consultant”. Why don’t you start there?
  2. Don’t recruit me for a position that is painfully obvious is below my paygrade. If you have a recent resume in hand and as someone who keeps up an updated LinkedIn profile, it should be obvious to match me to a position that best matches my skills. I had one recruiter try to get me to bite on imaging desktops in the middle of the night for a company doing a massive desktop deployment. Then to add insult to injury, she tells me she thought I would like to make the extra cash. Please, don’t insult my intelligence so you can chase a commission.
  3. Don’t recruit me for positions I have no qualifications for. I’ve had recruiters try to recruit me for SharePoint developer, .NET developer, or basically any kind of developer. I have no development experience. If the customer you’re recruiting for has a ton of EMC storage and I have a depth of NetApp storage experience, it’s probably obvious I’m not a fit. Unless of course I’m the only candidate that is close to being qualified.
  4. Don’t cold call me unless you have a position lined up. Honestly, make it worth my time. Also if I tell you no contract work, don’t try to recruit me for a contract job. In fact, don’t call me at work. If it’s between 8 AM and 5 PM, more likely it is not a good time to talk. In fact, it’s best you just send me an email. Finally, if I’ve never talked to you or met you in real life, don’t send me an invite to connect on LinkedIn.


Don’t’ get me wrong, I know it comes off a bit harsh but I’m not hating on recruiters.  If I did, I wouldn’t bother giving this sage advice.  Now for you IT professionals out there, this doesn’t mean you should never deal with recruiters at all. In fact there are some good ones out there and it would be rather incumbent upon you to keep in touch. Especially if you find yourself in a volatile industry, much like how oil and gas is at the moment, to help if you end up laid off or just want a change of scenery.


YGLT: Active Directory Attributes are your Friends.

This post introduces a new section I want to try out sharing my knowledge and experience in my adventures of being an IT consultant.

Kevin Hart (who coined the phrase and who I think is a funny comedian) will end up being a place holder until a come up with a snazzy logo for it.  I’m thinking a drill sergeant knife hand or something.  Yeah, that’s the ticket.

Earlier in the day I passed the 70-346 exam, Managing Office 365 Identities and Requirements.  The identities part goes mostly into synchronizing your on-premises Active Directory Domain Services with those hosted in Microsoft Azure.  Office 365 unsurprisingly relies quite heavily on Azure Active Directory.  It makes absolute sense considering the business side of Office 365 is Exchange, SharePoint, and Lync in Azure and all three apps are dependent on Active Directory for identity management.

If your organization is like any other, your coworkers are not going to be too pleased in learning a new username and password to log onto yet another service.  Instead, you have the option of synchronizing your organizations Active Directory with the Azure Directory Sync tool and using a single sign-on with Active Directory Domain Services (ADFS). Directory Sync or DirSync services ensures that your users can use both cloud and on premises applications. This streamlines your onboarding and user acceptance of applications in the cloud while maintaining the flexibility of keeping an on-prem infrastructure.

This sounds great until you find out about what kind of accounts you have out there.  You may not have proper user principal names with valid top level domains in the suffix.  For instance user@organization.local isn’t going to sync to the cloud.  You’ll need to change those UPNs or find a way to keep them from synchronizing if they’re not going to be associated with an Office 365 license.  Additionally you may have non-managed service accounts out there and would be treated initially like any other user. These too would need to be filtered out.

The solution to this is being able to leverage Active Directory attributes. Each Active Directory object has a number of attributes that define first and last name, what Exchange mailbox database their mailbox resides on, what alternate SMTP addresses a user may have, even the person’s boss can be defined by an attribute in AD. There are even 16 extension attribute fields from 0 to 15 that can be used precisely for this purpose.

For instance, if I want to use extensionAttribute10 as my attribute to define what accounts sync to the cloud, I would do something like this:

import-module activedirectory
$ou = "OU=Users,OU=CnC_Main,DC=cachencarry,DC=com"
get-aduser -LDAPFilter "(ObjectClass=user)" -searchbase $ou | set-aduser -add @{extensionAttribute10='synctocloud'}

This sets all the users in a particular OU. But what if I have service accounts that carried over from older versions of Windows Server? I tend to not give these accounts a last name, so I can change that LDAPfilter parameter and do this:

import-module activedirectory
$ou = "OU=Users,OU=CnC_Main,DC=cachencarry,DC=com"
get-aduser -Filter 'surname -Like "*"' -searchbase $ou | set-aduser -add @{extensionAttribute10='synctocloud'}

Now anything with a value in the surname attribute will have the extensionAttribute10 configured as synctoclound. From there, I would set the Active Directory Connector agent in the Syncronization Service Manager


This is just a small example on how Active Directory attributes are your friend. For instance, if you have an account in Office 365 and it matches an account in your on prem environment. Technically the correct way would be to delete the cloud account and let it sync to the cloud. Well, you could also match SMTP addresses and let dirsync merge the two into one.  And if trying to edit that in Active Directory Users and Computers, editing the proxyAddresses attribute in ADSI Edit helps as well:


It doesn’t just end there, using the power of attributes in Active Directory can help you set things like home directories for users.  In this example I used the surname attribute again:

Get-ADUser -SearchBase "OU=Users,OU=CnC_Main,DC=cachencarry,DC=com" -Filter 'surname -Like "*"'| Select-Object samAccountName | ForEach-Object {Set-ADUser $_.samAccountName -HomeDirectory ("\\fs01\users\" + $_.samAccountName) -HomeDrive "P:"}

Running this script will select users in a particular OU, filter by surname, and assign the home directory to a share on FS01 called users.  Each user drive will be created by the users account name or AD attribute samAccountName.  The best part is that it treats it as if you put in the value \\server\share\%username% in the Profile tab of a user account.  By copying an account that was affected by this script, it will have a home directory using that user’s username applied.

In conclusion, using AD attributes along with PowerShell not only prepares you with synchronizing your directory with Azure/Office365 but also helps with bulk management of user settings.

What happened to me?

Yes, yes, its been over a month since I last posted here and I know its a cardinal sin in blogging not to update often.


What have I been up to?  Well, I passed the VCP-510 exam.  I should have done it earlier when VMware finally removed the course requirements in March for current VCP holders but I’m happy to get it over with.  I decided to take this one since I have a TON more experience with vSphere 5.1 than 5.5.  VMware has vSphere 6 (or 2015, who knows) coming out soon and as soon as I can, I’ll post more detail.

Microsoft announced new pricing for Office365 and the Business Essentials, which gives you all the services and no software, is $5/month for a one year commitment.  So in efforts to learn more about Office365, our crack staff at Cache n’ Carry is officially in the cloud!  Its pretty damn sweet too.

Old Man Yells at Cloud
Not as satisfying as yelling at servers in a datacenter but it’ll do.

Speaking of Microsoft, I have downloaded the Windows 10 preview and I have not had time to really give it a go.  I’ve also got my hands on the new Windows 10 server bits, but again, no time to really get into it. Unlike this genius, I don’t plan to post a click bait article to ensure as many eyeballs look at their garbage.

So I’ll try not to wait so long in posting another article to the three, maybe four people that read this blog. I think one of them may be a spam bot. Ah well, progress I guess.

Official Blog of David Pechon…whatever, who does that guy think he is?