vSphere – Migrating A VM To A New VMFS Datastore (CLI: VMKFSTOOLS)

You may encounter a scenario where a vCenter server is not part of a solution and SVMotion is not an option to migrate a VM from one VMFS datastore to another. In this case you may use the vSphere VI Client datastore browser and copy/move the VM data files from one datastore to another or in the case outlined here you may use the CLI approach to migrate a specific VM to another datastore.

In this example a second RAID1 Mirror has been added to a standalone DELL Server and a new VMFS datastore has been created labelled ‘datastore2’:

Note: Before proceeding ensure no snapshots are present on the VM being migrated.

1. Log into the ESXi host as ‘root’ via SSH.

2. List all VMs present on the ESXi host:
vim-cmd vmsvc/getallvms
You can also use: esxcli vm process list

List the inventory ID of the virtual machine ‘MartinWIN7’ which is being migrated to the new datastore:
vim-cmd vmsvc/getallvms |grep MartinWIN7
We can see from the output that the inventory ID for this VM is ‘9’
Check if VMID ‘9’ has a snapshot: vim-cmd vmsvc/get.snapshot 9
If necessary remove the snapshot: vim-cmd vmsvc/snapshot.remove 9

3. Shutdown the virtual machine ‘MartinWIN7’ VMID ‘9’:
Check the power state of the virtual machine with the following command:
vim-cmd vmsvc/power.getstate 9
Shutdown the virtual machine with the command:
vim-cmd vmsvc/power.shutdown 9

Alternative Power-off cmds:
vim-cmd vmsvc/power.off vmid
Or using esxcli: esxcli vm process kill –w world_id
How to gather the world_id: esxcli vm process list

4. Unregister the VM from the ESXi host:
vim-cmd vmsvc/unregister 9

5. List the VMFS Volumes available on the ESXi host:
cd /vmfs/volumes/
ls -l


6. Change directory to the VMFS volume where the VM currently resides (‘datastore1’) and gather the required information such as vmdk and vmx file names:
cd /vmfs/volumes/datastore1/
ls -l

You can view the actual amount of space used by the vmdk files on ‘datastore1’ by using the cmd: du -ah
If the size displayed by a *.vmdk was zero this would imply the vmdk was a Thin disk and the *-flat.vmdk would display the actual used space of the Thinly provisioned vmdk, something similar to the following:

cd /vmfs/volumes/datastore1/MartinWIN7/
ls -l

As you can see below each VM Disk has a flat file and a descriptor file, for example the virtual machine ‘MartinWIN7’ has a disk named MartinWIN7.vmdk and a corresponding MartinWIN7-flat.vmdk file.

7. Change directory to the new VMFS volume where the VM will be migrated to and create a new folder for the VM files:

cd /vmfs/volumes/datastore2/
mkdir MartinWIN7
ls -l


8.Using the ‘vmkfstools’ command to clone the VM to ‘datastore2’, once the cloning process has completed successfully then we can delete the original VM on ‘datastore1’. The ‘-i’ option used with vmkfstools creates a copy of a virtual disk, using the following syntax:
vmkfstools -i src dst
Where src is the current vmdk location (‘datastore1’) and dst is the destination (‘datastore2’) where you would like the vmdk file copied to.

You can chose the Disk format by using the -d –diskformat suboption. The 3 choices of disk format are:
zeroedthick (default) – all space is allocated during creation but only zeroed on first write, referred to a lazy zeroed.
eagerzeroedthick – all space is allocated and fully zeroed during creation.
thin – only the required space is allocated the remainder is allocated and zeroed over time on demand.

vmkfstools -i src dst -d –diskformat [zeroedthick|thin|eagerzeroedthick] -a –adaptertype [buslogic|lsilogic|ide]

Checking the Disk format using ‘vmkfstools -t0’ before cloning ‘MartinWIN7.vmdk’:
vmkfstools -t0 /vmfs/volumes/datastore1/MartinWIN7/MartinWIN7.vmdk
Example Output, the ‘VMFS Z‘ indicates that it is lazy zeroed (zeroedthick):
You may also use ‘vmkfstools -D’ to check the Disk Format:
vmkfstools -D /vmfs/volumes/datastore1/MartinWIN7/MartinWIN7_1.vmdk
Example Output, the ‘tbz 0‘ indicates that it is eagerzeroedthick:

The following example illustrates cloning the contents of the virtual disk ‘MartinWIN7.vmdk’ from /datastore1/MartinWIN7 to a virtual disk file with the same name on the /datastore2/MartinWIN7 file system:
vmkfstools -i “/vmfs/volumes/datastore1/MartinWIN7/MartinWIN7.vmdk” “/vmfs/volumes/datastore1/MartinWIN7/MartinWIN7.vmdk” -d zeroedthick -a LSILogic


Cloning the second disk ‘MartinWIN7_1.vmdk’:
vmkfstools -i “/vmfs/volumes/datastore1/MartinWIN7/MartinWIN7_1.vmdk” “/vmfs/volumes/datastore2/MartinWIN7/MartinWIN7_1.vmdk” -d zeroedthick -a LSILogic

Monitoring progress:

9. To copy (cp) the virtual machine configuration ( .vmx) file to the new folder, run the command:

cp “/vmfs/volumes/datastore1/MartinWIN7/MartinWIN7.vmx” “/vmfs/volumes/datastore2/MartinWIN7/MartinWIN7.vmx”

10. Next register the newly cloned virtual machine on ‘datastore2’ named ‘MartinWIN7’ on the ESXi host using the vim-cmd solo/registervm cmd:
vim-cmd solo/registervm /vmfs/volumes/datastore2/MartinWIN7/MartinWIN7.vmx MartinWIN7

List the inventory ID of the new virtual machine with the command:
vim-cmd vmsvc/getallvms |grep MartinWIN7

Power-on the virtual machine with VMID 10:
vim-cmd vmsvc/power.on 10


You will receive a prompt on the vi client, chose the option ‘I copied it‘:

Displaying the VM IP address (if you wish to RDP and confirm VM status):
vim-cmd vmsvc/get.guest 10 |grep -m 1 “ipAddress = \””

11. If all looks well and you are happy the VM is operating normally then you may delete the old VM directory. Delete Directory and all contents:
cd /vmfs/volumes/datastore1/
rm -r MartinWIN7OLD/


Useful VMware KB’s:
Cloning and converting virtual machine disks with vmkfstools (1028042)
Cloning individual virtual machine disks via the ESX/ESXi host terminal (1027876)
Determining if a VMDK is zeroedthick or eagerzeroedthick (1011170)
Performing common virtual machine-related tasks with command-line utilities (2012964)

EMC VMAX3 – CLI Cheat Sheet

Guest post by the VMAX Guru – Paul Martin @rawstorage

VMAX3 CLI Cheat Sheet

Disclaimer, this is not a comprehensive how to, just a toe in the ocean of VMAX3, there is always more and there is always why. The information here is not a substitute for the product guides which have been consolidated into a single downloadable PDF documentation set please download and refer to the documentation set for full feature descriptions.

Also see the new features paper for more details on VMAX3 and features in general



One of the major changes with V3 is the way we provision storage. FAST has been enhanced to work on a more granular level (128KB track level) and we have abstracted a lot of the internals so that the end user need not be so concerned about the mechanics of the array they can simply provision capacity and set a performance expectation which the array will work to achieve.
In VMAX3 FAST is always on and the majority of the configuration is pre-configured, available SLO are dictated by the disks available in the array and Storage Resource Pools are defined in the bin file.
Provisioning storage on a VMAX3 is easier that on previous Symm/VMAX arrays, we are no longer required to create meta devices to support larger devices and the SLO model makes provisioning intuitive and easy. From the command line it’s pretty much a three step process:

1. Create your storage group and assign your SLO and workload (optional), if no SLO or workload is specified FAST will still manage everything but your SLO will be optimized. The storage can represent your applications devices as a whole and can be used in SRDF and Timefinder meaning if you design storage with application==storagegroup snapshot/srdf design becomes simpler later on too. VMAX3 supports 64K storage groups so there is no reason not to configure 1 per app.
symsg –sid 007 create myapp_sg –slo gold –workload oltp
2. Create and add your devices, here I am creating 5 x 2048 GB devices and adding to my storage group. Note I can just create 2048 GB devices, no meta is created. At present we can create devs up to 16TB soon to be increased further.
symconfigure -sid 007 -cmd "create dev count =5 config=tdev, emulation=fba size=2048 GB sg=myapp_sg;" preview
3. Present to the host via a masking view, no change from VMAX here.
symaccess –sid 007 create view –name myapp_mv –sg myapp_sg –pg myapp_pg –ig myapp_ig

Here I will highlight a few of the key commands to gather information about the configuration and interaction with the SRP and SLO.
NOTE:- Monitoring and Alerting of FAST SLO is built into Unisphere for VMAX. SLO compliance is reported at every level when looking at storage group components in Unisphere.

Viewing SRP Configured On The Array

Most VMAX3 arrays will only have a single SRP however it is possible to have multiple, if you are using FAST.X or ProtectPoint you may have an additional SRP in the config, the following command shows you what is available:
symcfg list –srp

Note the default SRP is set to be usable by RDFA DSE, this is normal. There is no need to configure a separate pool for DSE in VMAX3, we can reserve and cap some space from the default SRP for this purpose.


Viewing the Available SLO

symcfg list -slo

To get a more detailed look at the SLO’s and the workloads that can be associated with storage groups you can run the following command. The output shows the approximate response time for each.

symcfg list –slo –detail –by_resptime –all


SRP Capacity Consumption

In order to get an idea of how your storage is being consumed from the command line you can run the CMD:
symsg list –srp –demand –type slo
this will show you how your SRP is being consumed by each of the SLO, it will also list how much is consumed by DSE and Snapshot, remember this capacity all comes from your SRP so it’s worth keeping an eye on.

Listing SLO associations by Storage Group

The previous command gives us a good idea at a high level, but if we want to see from a storage group level which storage groups are associated with each SLO we have a command for that too:
Symsg list –by_SLO –detail
this shows each storage group and whether or not it is associated with an SLO, we also get some detail about the number of devices but we don’t see much regarding the capacity.

Additionally you can see consumption on an individual device level on the application storage group.

You can see the full breakdown of your SRP including drive pools and which SLO you have available as well as TDAT information. The output below shows all the thin devices (TDEVS) bound to the SRP and how much space they are each consuming.

Changing SLO On Existing Storage Groups

Changing Service Level Objective to Platinum and Workload to OLTP_REP for a storage group test:
symsg –sg test -sid 123 set –slo Platinum -wl OLTP_REP

Solutions Enabler 8.X also allows for moving devices between groups non-disruptively
• Moving devices between child storage groups of a parent storage group when the masking view uses the parent group.
• Moving devices between storage groups when a view is on each storage group and both the initiator group (IG) and the port group (PG) elements are common to the views (initiators and ports from the source group must be present in the target).
• Moving devices from a storage group with no masking view or service level to one in a masking view. This is useful as you can now create devices and automatically add to storage group from CLI, so a staging group may exist. Command is:
symsg –test –sid 123 –sg staging_sg move dev 345 gold_sg


SnapVX – Space efficient Targetless Snapshots
I’m not going to go into the full details of SnapVX and what makes it revolutionary in the VMAX3, we have a very good technote that already covers this in detail. Needless to say, taking snapshots on VMAX3 is quicker, more efficient and easier than it has been on any previous generations. See the technote for full details.
Like most features in the VMAX to access the functionality simply put the word sym in front of the feature name. SnapVX is controlled with the symsnapvx command set. Really the only command you should need is symsnapvx –h, this will get you the full set of options. I’ll highlight a few of the main commands here.

Creating Snapshots

SnapVX is simplest when your storage has been designed with an application per storage group, you can still use device groups or files if you want but VMAX3 supports 64K storage groups, that is enough for one per application in most environments and means only managing a single entity for each application for provisioning as well as local replication and remote replication. You can snap multiple applications together using a cascaded storage group containing all of the child storage groups for each application. SnapVX snapshots are consistent by design so no need to specify any additional flags to obtain a point in time image of a live system.
To create a snapshot simply grab the storagegroup name which contains all the devices for your application and execute the establish command, the example below will create a snapshot hourly snapshot and will automatically terminate the same snapshot 24 hours after it was created:
symsnapvx –sg test–snapshotname hourlysnapshot establish –ttl –delta 1 –nop
You could run the command above in a cron job or batch file every hour and snapvx will create a new generation each time (gen 0).

Listing SnapVX Snapshots And Capacity Consumed

In order to see which storage groups are consuming the most space we can run the following cmd:
symcfg list –srp –demand –type sg
The output lists the storage groups showing their subscribed capacity (how much potential space they can consume) as well as their actual allocated capacity. A Particulary useful output here is the SnapShot Allocated (GB) Column, if you are in a bind for space you can quickly identify which storage group has consumed the most snapshot space and terminate some snapshots to return space to the SRP.

Note your storage group will only show up in this command output if it is FAST managed. Although everything in VMAX3 is under fast control it is possible to create storage groups that are not FAST managed for various use cases. A storage group is FAST managed if you explicitly specify the SRP and or assign an SLO. Shown below SourceSG1 has a large capacity of snapshot allocated storage.

To find out more about your snaps you can run the following cmd:
symsnapvx –sid –sg groupname list –detail

If I want to link off and access a snap I can use a storage group which I have pre-created with the same number of devices as the source/target devices can be same size or larger..

For deeper dive and more on the internals please see the Technote on EMC.com

Useful Commands For Everyday Use!:

This information is at your finger tips with symcli -v


symapierr- Used to translate SYMAPI error code numbers into SYMAPI error messages.
symaudit – List records from a Symmetrix audit log file.
symbcv – Perform BCV support operations on Symmetrix BCV devices.
symcfg – Discover or display Symmetrix configuration information. Refresh the host’s Symmetrix database file or remove Symmetrix info from the file. Can also be used to view or release a ‘hanging’ Symmetrix exclusive lock.
symchg – Monitor changes to Symmetrix devices or to logical objects stored on Symmetrix devices.
symcli – Provides the version number and a brief description of the commands included in the Symmetrix Command Line
symdev – Perform operations on a device given the device’s Symmetrix name. Can also be used to view Symmetrix device locks.
symdg- Perform operations on a device group (dg).
symdisk – Display information about the disks within a Symmetrix.
symdrv – List DRV devices on a Symmetrix.
symevent – Monitor or inspect the history of events within a Symmetrix.
symhost – Display host configuration information and performance statistics.
syminq – Issues a SCSI Inquiry command on one or all devices. Interface.
symipsec – Administers IPSec encryption on Gigabit Ethernet connections.
symlabel – Perform label support operations on a Symmetrix device.
symlmf – Registers SYMAPI license keys.
sympd- Perform operations on a device given the device’s physical name.
symsg- Perform operations on a storage device group (sg).
symstat – Display statistics information about a Symmetrix, a Director, a device group, or a device.
symreturn- Used for supplying return codes in pre-action and post-action script files.


symaccess- Administer Symmetrix Access Logix. (Mapping and Masking of devices)
symacl – Administer Symmetrix access control information.
symauth – Administer Symmetrix user authorization information.
symcg- Perform operations on an composite group (cg).
symchksum- Administer checksum checks when an Oracle database writes data files on Symmetrix devices.
symclone – Perform Clone control operations on a device group or on a device within the device group.
symconfigure – Perform modifications on the Symmetrix configuration.
symconnect – Setup or Modify Symmetrix Connection Security functionality.
symfast – Administer Symmetrix FAST (Fully Automated Storage Tiering) policies, associations, and the FAST Controller.
symmask – Setup or Modify Symmetrix Device Masking functionality.(Older Symmetrix Pre 5977)
symmaskdb- Backup, Restore, Initialize or Show the contents of the device masking database. (Older Symmetrix Pre 5977)
symmigrate – Migrates the physical disk space associated with a Symmetrix device to a different data protection scheme, or to disks with different performance characteristics. (VMAX 10K/20K/40K)
symmir – Perform BCV control operations on a device group or on a device within the device group.
symoptmz – Perform Symmetrix Optimizer control operations.
symqos – Perform Quality of Service operations on Symmetrix Devices.
symrcopy – Perform Symmetrix Rcopy control operations on devices in a device file.
symrdf – Perform RDF control operations on a device group or on a device within the device group.
symrecover – Perform automated SRDF session recovery operations.
symreplicate – Perform automated, consistent replication of data given a pre-configured RDF/Timefinder setup.
symsan – List ports and LUNs visible on the SAN
symsnap – Perform Symmetrix Snap control operations on a device group or on devices in a device file.
symsnapvx- Perform Symmetrix Snapvx control operations.
symstar – Perform SRDF STAR management operations.
symtier – Create and manage storage tiers within a Symmetrix.
symtw- Manage time windows for the Optimizer, FAST and FAST VP controller within a Symmetrix. (VMAX 10K/20K/40K)

SYMCLI SRM(Mapping) Commands symhostfs- Display information about a host File, Directory, or host File System.
symioctl – Send IO control commands to a specified application.
symlv- Display information about a volume in Logical Volume Group (vg).
sympart – Display partition information about a host device.
symrdb – Display information about a third-party Relational Database.
symrslv – Display detailed Logical to Physical mapping information about a logical object stored on Symmetrix devices.
symvg- Display information about a Logical Volume Group (vg).

EMC VNXe Configuration Using Unisphere CLI (Part 3)

Part 1
Part 2

This is the third part in the series on configuring the VNXe via command line. Here I will detail the Steps involved in adding VMware ESXi hosts, presenting NFS datastores to these hosts and setting access rights.

  • Add VMware ESXi Hosts
  • Add VNXe NFS Volumes to VMware ESXi Hosts
  • Setting Access Rights

Note: VMWare networking and Nexus port channels must be configured at this stage. See below for example NEXUS VPC configs.

Add VMware ESXi Hosts
Using the ESXi mgmt address to add two ESXi hosts as follows:
uemcli -d -u Local/admin -p Password123# /virt/vmw/esx create -addr -username root -passwd Password

uemcli -d -u Local/admin -p Password123# /virt/vmw/esx create -addr -username root -passwd Password

Expected Output:
ID = 1005
ID = 1007

Operation completed with partial success.
The create, refresh, or set operation has started. It will continue to add or update ESX host information in the background.

It takes approximately ~2 minutes to add each host after receiving the output above. View details of ESXi hosts connected:
uemcli -d -u Local/admin -p Password123# /remote/host show
uemcli -d -u Local/admin -p Password123# /virt/vmw/esx show

ESXi01 ID = 1005
Name = ESXi01
Address =,,
OS type = esx

ESXi02 ID = 1007
Name = ESXi02
Address =,,
OS type = esx

Three IP addresses are returned, in this case there is one IP address each for Mgmt, VMotion and NFS traffic. We are only concerned with applying access permissions at the NFS level. In this example the NFS addresses are

Checking in the GUI we can confirm the hosts were added successfully:

Add VNXe NFS Volumes to VMware ESXi Hosts & Set Access
We firstly need to gather the Network File System (NFS) ID’s:
uemcli -d -u Local/admin -p Password123# /stor/prov/vmware/nfs show
NFS_1: ID = app_1
Name = AMP-NFS-01

NFS_2: ID = app_2
Name = AMP-NFS-02

Add NFS Volumes APP_1&2 to hosts using the VNXe ID of the hosts (1005,1007) and assign root access to only the NFS Vmkernel address of the ESXi hosts:

  • ESXi01[1005] vmKernel NFS Port Group IP
  • ESXi02[1007] vmKernel NFS Port Group IP
  • uemcli -d -u Local/admin -p Password123# /stor/prov/vmware/nfs -id app_1 set -defAccess na -rootHosts 1005[],1007[]
    uemcli -d -u Local/admin -p Password123# /stor/prov/vmware/nfs -id app_2 set -defAccess na -rootHosts 1005[],1007[]

    Display the ESXi hosts connected to the VNXe NFS volumes and their respective access rights:
    uemcli -d -u Local/admin -p Password123# /stor/prov/vmware/nfs show -detail
    NFS_1: ID = app_1
    Name = AMP-NFS-01
    Server = file_server_0
    Storage pool = AMP-NFS
    Size = 2199023255552 (2.0T)
    Root hosts = 1005[], 1007[]

    NFS_2: ID = app_2
    Name = AMP-NFS-02
    Server = file_server_0
    Storage pool = AMP-NFS
    Size = 2199023255552 (2.0T)
    Root hosts = 1005[], 1007[]



    Example Cisco Nexus VPC Configs with VNXe 10Gig Interfaces

    interface Ethernet1/25
    description VNXe3300-SPA-Port1-10Gbe
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    channel-group 41 mode active

    interface Ethernet1/26
    description VNXe3300-SPB-Port1-10Gbe
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    channel-group 42 mode active

    interface port-channel41
    description Port_Channel_To VNXe_SPA-10Gbe-Ports
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    no negotiate auto
    vpc 41

    interface port-channel42
    description Port_Channel_To VNXe_SPB_10Gbe-Ports
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    no negotiate auto
    vpc 42

    interface Ethernet1/25
    description VNXe3300-SPA-Port2-10Gbe
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    channel-group 41 mode active

    interface Ethernet1/26
    description VNXe3300-SPB-Port2-10Gbe
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    channel-group 42 mode active

    interface port-channel41
    description Port_Channel_To VNXe_SPA_10Gbe-Ports
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    no negotiate auto
    vpc 41

    interface port-channel42
    description Port_Channel_To VNXe_SPB_10Gbe-Ports
    switchport mode trunk
    switchport trunk allowed vlan 102
    spanning-tree port type edge trunk
    flowcontrol receive on
    vpc 42

    Note the VNXe NFS interface ‘if_0’ must have the corresponding VLAN id configured:
    uemcli -d -u Local/admin -p Password123# /net/if -id if_0 set -vlanId 102
    uemcli -d -u Local/admin -p Password#123 /net/if show

    ID = if_0
    Port = eth10_SPA
    VLAN ID = 102

    EMC XtremIO – Configuring DNS & NTP

    Setting DNS

    xmcli (tech)> modify-dns-servers primary=”″ secondary=”″
    xmcli (tech)> show-dns-servers

    Setting NTP
    Set date & time:
    xmcli (tech)> modify-datetime datetime=”2014-11-07 11:00:48″

    Set timezone:
    List all timezones available:
    xmcli (tech)> show-timezones
    xmcli (tech)> modify-datetime timezone=”Europe/Paris”

    Set NTP Servers:
    xmcli (tech)> modify-datetime ntp-servers=[“″,””]

    Display time config:
    xmcli (tech)> show-datetime
    Mode NTP-Servers Cluster-Time Cluster-Time-Zone
    automatic 2014-11-07 11:07:08 CET Europe/Paris

    EMC VNX&VMAX – Updating EMULEX HBA Firmware On LINUX

    Firstly download the latest version from the EMC-approved section of the Emulex website for EMC VNX/VMAX:

    In this example we are downloading the Emulex LPe16002 Firmware and BootCode version

    To view the existing firmware during boot (Ctrl+E at Emulex BIOS Prompt):
    Or you you can also check via console:
    [root@hpdb1 ~]# cat /sys/class/scsi_host/host*/fwrev, sli-4:2:b, sli-4:2:b, sli-4:2:b, sli-4:2:b

    Applying Update Using OneCommand Manager CLI:
    After downloading the zip file from the EMC-approved section of the Emulex website I then extracted the file A11433.grp to the appropriate directory: /usr/sbin/lpfc

    Execute the command hbacmd listhbas | grep ‘Port WWN’, and record the Port WWN information for all adapters within the host:

    [root@hpdb1 ~]# hbacmd listhbas | grep ‘Port WWN’
    Port WWN : 10:00:00:90:fa:02:be:76
    Port WWN : 10:00:00:90:fa:02:be:77
    Port WWN : 10:00:00:90:fa:02:be:b6
    Port WWN : 10:00:00:90:fa:02:be:b7

    Next run the “hbacmd” command to install Firmware and BootCode version (hbacmd Download WWPN|MAC Filename):

    hbacmd download 10:00:00:90:fa:02:be:76 /usr/sbin/lpfc/A11433.grp
    hbacmd download 10:00:00:90:fa:02:be:77 /usr/sbin/lpfc/A11433.grp
    hbacmd download 10:00:00:90:fa:02:be:b6 /usr/sbin/lpfc/A11433.grp
    hbacmd download 10:00:00:90:fa:02:be:b7 /usr/sbin/lpfc/A11433.grp


    Confirm Update was successful:

    [root@hpdb1 /]# cat /sys/class/scsi_host/host*/fwrev, sli-4:2:b, sli-4:2:b, sli-4:2:b, sli-4:2:b

    Thank you @CliffCahill for your assistance.