Category Archives: Storage

2VB-601 – Objective 1.1 – Identify storage device characteristics

Here are my notes for 2VB-601.  These notes I took to help me prepare for the exam as I went through the Deploy and Manage VSAN course, and through the recommended documentation.  Often, if I already knew the info, I didn’t necessarily put it in my notes.

Hope these help!

  • Lifespans of SSD drives
  • SLC
  • 100,000 writes
  • MLC
  • 3000-10000 writes
  • TLC
  • 1000 writes
  • eMLC
  • 20,000-30,000 writes
  • NVMe
  • Specification developed specifically for SSDs, more parallelism, better performance
  • 3D Cross Point
  • PCIe NVMe cards
  • Improved even more on performance
  • HDDs
  • Slower but higher capacity than SSDs
  • 15K, 10K, 7.2K RPM drives, higher = better latency

Return to 2VB-601 Exam Guide.

VMware VSAN Specialist 2VB-601 Exam Review

On Friday, I sat the VMware VSAN Specialist 2VB-601 Exam.  I’ll be deploying more VSAN soon, so I used this recently released 2VB-601 exam as a guide to thoroughly learn the product.  Passing 2VB-601 along with a VCP6 version of a VMware certification grants you the VMware VSAN Specialist 2017 badge.  This isn’t a full certification, but it acknowledges candidates with VSAN knowledge and skills.

2VB-601 Exam Format

The 2VB-601 exam consists of 60 multiple choice questions, and you have 105 minutes to complete the exam.  It is very comparable to VMware VCP exams as far as format goes.  If you’ve taken VCP exams before, you certainly know the drill here.  The top score for the exam is 500, and passing is 300, just like VCP exams.

2VB-601 Exam Resources

There aren’t a ton of affordable learning resources out there for this exam as far as books and what not go unfortunately.  However, if you follow the exam guide and read the documents provided in VMware’s study guide, along with hands on experience, you can certainly pass 2VB-601.  I also highly recommend the VMware hands on labs pertaining to VSAN.  You could also build your own lab using EvalExperience included with VMUG Advantage.

VSAN 6.6 Deploy and Manage training isn’t necessary, but I did attend it to fulfill a partner requirement.  If you’re a partner and need to do the same, this will definitely help.

2VB-601 Exam Experience

The 2VB-601 exam is very straight forward.  VMware VCP exams are notorious for sometimes asking rote memorization type questions, such as the exact word for word options for configuration choices.  I did not find that to be the case generally speaking with this exam.  Most questions are fair and are generally more conceptual in nature.  You do need to know what needs to be done or what happens in various scenarios.  I also generally didn’t find myself wondering to which exam objective questions were related, like I often do on VCP exams for more questions than I’d like.  Virtually every question I felt was fair game on.

With that said, the exam I found wasn’t nearly as difficult as every other VCP exam I’ve taken, which are numerous at this point.  If you look over the exam guide and feel you know them, have hands on experience with VSAN, I would recommend reading over the substantial documents in the guide prior to sitting the exam.  Otherwise, you should be in good shape.

I passed it on my first attempt with a 456, which is the highest I’ve ever gotten on any VMware exam.  I finished the exam with 45 minutes to spare, so time won’t be an issue.  I found the questions mostly fell in the category of “you know it or you don’t”.

I’ll be posting resources to help study for the exam for those of you who wish to take the exam.

Hope this helps!


How To Manage Unity Host LUN IDs

EMC’s new Unity arrays have been out for a bit now.  Every array has its weirdness to it.  I just found my first Unity oddity today.  Remember, the Unity replaces the VNX and the VNXe.  If you’ve never played with a VNXe, EMC simplified the Unisphere interface, and removed and/or hid many options in the process.  With that in mind, the Unity does this, too.  You will find this perhaps first managing Unity Host LUN IDs.

Why might you want to control the host LUN IDs?

  • Consistent LUN Masking for easier troubleshooting.
  • Storage based replication like RecoverPoint best practices want consistent Host LUN IDs for the replicated LUNs for both host access and RPAs.
  • Boot from SAN LUNs are either required to be a specific Host LUN ID such as LUN 0, or you may be running Cisco UCS and need to specificy a specific Host LUN ID for the boot LUN in the boot policy.

In this case, the customer decided to reinstall ESXi on a new boot LUN.  They created a new boot LUN, granted the correct ESXi host access, and then deleted the old one.

Provisioning LUNs

Provisioning LUNs on an EMC Unity array is easy, at least in most cases.  EMC streamlined the interface on these arrays.  You simply go to Storage > the subcategory Block or VMware if it’s for ESXi, and step through the wizard to set your options and grant host access.


When you get to the point where you grant access, you simply put checkmarks in the boxes for each host to which you wish to grant access.


Do you see anything missing, even if you click that gear and add columns?  If you guessed there’s no way to control what host LUN ID will be used in the LUN masking, go pat yourself on the back.

Fortunately, the Unity does provide a way to set the Host LUN ID once a LUN is created… in most cases…

Managing Unity Host LUN IDs for LUN Masking

Here’s how Unity Host LUN IDs work.  Unity automatically picks a host LUN ID for the host, picking the next available host LUN ID for that host.  If you wish to change the host LUN ID for a LUN mask, simply navigate to Access > Hosts, click on the host you wish the change the Host LUN ID for, the pencil icon to edit.  Next, click LUNs.  Finally, click “Modify LUN IDs”.

change unity host lun id

Easy right?  As long as your host isn’t identified as a VMware host, you’re good!

Managing Unity Host LUN IDs for LUN Masking on VMware Hosts

If you follow those directions but your host is identified as a VMware host within Unity, you’re in for a nasty surprise.  Let’s play the game, “what’s missing?”

unity host lun id missing

If you guessed “no way to change Host LUN IDs”, you’re correct again.  YOU’RE ON FIRE!!!  That’s not all, though.  There’s no LUN access management here at all!  That includes Host LUN IDs.

Don’t bother going into the initiators either.  It’s not there.  It’s not under the LUN in question, either; although, that’s how to manage LUN access in general for VMware hosts.  Other than command line, there’s nothing you can do with identified VMware hosts.

Solution?  Don’t make it an identified VMware host.  Simply remove the vCenter server from Unity.  That places all ESXi servers discovered from this vCenter into the general Hosts group, giving you back the ability to change the Host LUN IDs.

unity vcenter server removed esxi hosts

Now, you can manage the Host LUN IDs again!

Lenovo IX-4 firmware update problem

Just experienced one of the more bizarre issues I’ve encountered in my IT career.  I was attempting to install a simple Lenovo IX-4 firmware update.  I use one of these myself in my home lab.  Some of my very small customers use them for cheap replication or backup targets as well.  One customer needed a firmware update that went awry.  The solution was incomprehensible, but it fixed the problem.  I felt compelled to share!

IX-4 Firmware Update Issue

These IX-4 NAS devices are pretty straight forward to manage.  They do have a management app you can install.  However, they’re easy enough to just manage them through their built in web portal.  Updating the NAS firmware is normally standard fare, much like updating a home router firmware.

  1. Point your web browser to the NAS, login, and go to the Software Update icon.
  2. When you click to check for an updated firmware, it’ll tell you if there is one, and provide the link.  Download the firmware package.
  3. Click the browse button, and select the firmware file you downloaded.  Do a file hash checksum first of course.  The firmware will then be uploaded.
  4. Finally, click to apply the firmware.

The problem is this time, despite the file hash being correct, and trying multiple downloads of the latest firmware file, and even the next previous version, the firmware would not install.  I kept getting the error “The software could not be updated because the update file is corrupted.”

ix-4 firmware update error

I tried rebooting the IX-4 and then reapplying it.  I tried deleting it and reuploading it.  Nothing worked.

IX-4 Firmware Update Solution

I did some googling.  I found a weird forum post about resolving this issue, that other users had success with as well.  Yes, this is pretty out there.

  1. Delete the uploaded firmware file.
  2. Power down the NAS.  You can do this within the web management console.
  3. Pop the cover by removing the two screws on the back, and pulling the cover off.
  4. Remove Disk 4.lenovoix4disk4
  5. Power the NAS back up.  When you log in to the web management portal, it will show alerts that disk 4 is missing.  This is obviously expected.
  6. Upload the firmware file again and apply it.  The firmware should apply.  It did for me, which I could not believe!  Let it reboot, etc.
  7. Power NAS back down.
  8. Put Disk 4 back in.
  9. Power the NAS back up.  Ensure that the status for the NAS shows the RAID set is rebuilding, or good.
  10. Check back in and ensure that the RAID rebuild completes.

And that’s how I got the IX-4 firmware update installed!  I’d complain, but it was pretty simple to fix, and we are talking about a sub $1000 NAS here.


Unity – EMC’s new unified storage array

As you may know, EMC released their new unified storage array for block and file called Unity.  I wanted to go over it a bit to help people understand where this array fits within the storage landscape to see if it might be a good fit for them.

What exactly is Unity?

Unity is a block and file unified array.  It’s very similar to both the VNXe and VNX models of the past.  Like most of those, Unity supports both Fiber Channel and iSCSI protocols for block storage.  It also supports CIFS and NFS for File protocols as well.

It is a dual storage processor ALUA array for redundancy, with dual processors, redundant components across the board.

For IO ports, it includes 2x 1GbE ports and 2 Converged Network Adapters (CNAs) per storage processor.  The CNA’s at the factory can be configured to act as 10GbE adapters for iSCSI or NFS, or as up to 16Gb fibre channel interfaces.  Note those modes cannot be switched after the device is shipped.  You can also add up to two IO modules per storage processor in identical pairs to provide additional IO ports, including 1GbE, 10GbE, or FC.  All unity arrays also have 2 SAS ports to connect to additional racks of disks called DAEs (just like the VNX).  The 500 and 600 arrays can have additional SAS ports installed as an IO module to approach their maximum supported disk configurations as well.

The Unity arrays effectively replace all the VNXe storage arrays going forward.  In addition, they replace most VNX storage arrays.  The only exception are the VNX 7600 and 8000 arrays, which will continue due to their higher scalability relative to the Unity models.

Unity has all the other features you come to expect from EMC, including secure remote support and monitoring in ESRS, FAST Cache using SSDs as a third layer of cache for storage acceleration, FAST VP auto storage tiering, and more.

Also, the Unity arrays have all flash models for each of the models as well for the performance conscious.

Improvements Over the VNX/VNXe

There are quite a few improvements I wanted to point out over the VNX and/or VNXe.

  • HTML5 based Unisphere – YES!  TAKE THAT JAVA!
  • Simplified and easier to use interface
  • Significantly smaller rack footprint when offering  both block and file
    • Within the VNX line, you had to have Storage Processors, X-blade data movers, and Control Stations typically to offer both protocols.  taking up way more rack space and power.  Now, just the DPE provides the same functionality!
  • Support for both block and file VMware vVols
  • Easy setup of ESRS within the array, similar to the VNXe did, but not the VNX
  • All arrays come with IO ports that could potentially bring both iSCSI and FC support without requiring any additional IO cards
  • Far faster setup
  • Better remote monitoring and data analytics of the storage array
  • Ability to run Unity as a virtual storage appliance for dev/test, potentially even for free!

That’s quite a jump from the VNX/VNXe, even though the concepts of the two arrays are the same.

Where can I learn more?

There actually is an abundance of learning resources about the Unity arrays already available.  I would suggest checking out the following:

Insufficient permission to run CLI command

'Insufficient permission to run CLI command' when performing upgrade on VNX File OE.
Error message:  Insufficient permission to run CLI command

Ran into this today while attempting to update VNX File OE code for a customer using Unisphere Service Manager.  While there were no major issues reported within Unisphere, I got the following when attempting to start the process by running “Prepare for Installation (Step-1)”:

Google only yielded an article that basically said to ensure you’re running USM on the same subnet, which I was.  I began troubleshooting by running within USM “Health Check”, which showed various errors indicating a failover of a Control Station.  I failed back to CS0, and reran the Health Check within USM, which passed, and then tried again, and everything worked like a champ!

Evolution of storage – traditional to hyperconverged

These days, there’s been an explosion in diversity of storage options, which often bleed into compute and/or networking when it comes to virtualized architecture.  It used to be that storage was storage, networking was networking, and compute was compute.  And when it came to storage, while architectures differed, what you stored your virtual machines did storage and storage only.  EMC ClARiiON/VNX, NetApp Filers, iSCSI targets like LeftHand, Compellent, EqualLogic, etc.  These were all storage and storage only.

Some of these added SSD as permanent storage type disks and/or as an expanded caching tier.  We also saw the emergence of all flash storage arrays that attempted to make the most of SSD using technologies like compression and deduplication to overcome the inherent weakness of SSD of high cost per unit of storage.  These arrays often are architectured from the ground up to work best with SSD, taking into account garbage collection needed to reuse space in SSD.

But these are also all storage only type devices.

Over time, that’s changed.  We now have converged infrastructure, such as VCE and Flexpod, but those typically still use devices dedicated for storage.  VCE VBlock and VxRack use EMC arrays.  FlexPod uses NetApp filers.  These are prepackaged validated designs built in factory, but still use traditional type storage arrays.

Keep in mind I don’t think there’s inherently anything wrong with this or any of these architectures.  I’m just laying the framework down to describe the different options available.

Now, we do have options that truly move away from the concept of buying a dedicated storage array, called Hyperconverged.  They’re still shared storage in the sense that your VMs can be automatically restarted on a different host should the host they are running goes down.  There’s still (when architected and configured properly) no single point of failure.  But this category doesn’t use a dedicated storage device.  Instead, it utilizes effectively local storage/DAS connected to multiple compute units pooled together with special sauce to turn this storage into highly available, scalable storage, usually for use with virtualization.  In fact, many only work with virtualization.  These tend to use commodity type hardware in terms of x86 processors, RAM, and disk types, although many companies sell their own hardware with these components in them, and/or work with server hardware partners to build their hardware for them.

The common thread between them though is you’re not buying a storage array.  You’re buying compute + storage + special sauce software when you comprise the total solution.

These options are for example Nutanix, VMware VSAN (or EVO:RAIL that utilizes it), Simplivity, ScaleIO, and you will see more emerging, and plenty I didn’t mention just because I’m not intending that to be a definitive list.

While there are good solutions in each of these types of storage arrays, none of the types are perfect.  None of these types work best for everyone, despite what any technical marketing will try to tell you.

So while there are more good choices to choose from than there ever has been in storage, it’s also harder to choose a storage product than it ever has been.  My goal in these posts are to lay a foundation to help understand these different options, which might help people sort through them better.

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!

NDMP isn’t always a slam dunk

Hey everyone,

I recently did some work with a customer who deployed a VNXe to act initially as a file server for quite a bit of file data.  They were using Unitrends to backup their Hyper-V VMs, and for application level backups and physical machines.  Before deploying the VNXe to serve up CIFS data, they ran a Windows file server, which Unitrends could simply backup by deploying an agent into the OS, and all was well.

The customer asked me how to go about backing up the VNXe, especially with Unitrends, because they didn’t want to switch backup products or deploy an entirely new backup solution just for the VNXe.  My initial response was that NDMP is the best way to go for backups if that is an option with your backup product.

However, I did some research, and found that NDMP isn’t always the best thing to use.  In this case, check out Unitrends’ limitations when using NDMP.   The fact that you can’t restore your backups to anything but a VNXe, and you can’t granularly recover out of an NDMP backup would be very serious deal breakers for a lot of companies.

So check your NDMP backup vendor and storage array for what is supported, and make sure it’s what you want to use for backing it up.  You may actually prefer using CIFS mounts within a server, and back the server up to get the file data.