EMC VNXe 3200 – Configuration Steps Via UEMCLI (Part1)

There are some minor cli changes with VNXe MCX which I will document as part of this series, for VNXe GEN1 please refer to these earlier posts:
EMC VNXe Gen1 Configuration Using Unisphere CLI

The initial configuration steps outlined in Part1 :

Accept End User License Agreement
Change the Admin Password
Apply License File
Commit the IO Modules
Perform a Health Check
Code Upgrade
Create A New User
Change the Service Password
Enable SSH

Accept End User License Agreement
uemcli -d 192.168.1.50 -u Local/admin -p Password123# /sys/eula set -agree yes

Change the Admin Password
uemcli -d 192.168.1.50 -u Local/admin -p Password123# /user/account show
uemcli -d 192.168.1.50 -u Local/admin -p Password123# /user/account -id user_admin set -passwd NewPassword -oldpasswd Password123#
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /user/account show

Reference ‘Help’ for any assistance:
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword / -help

Apply License File
Firstly gather the Serial Number of the VNXe:
uemcli -d 192.168.1.50 -u Local/admin -p Password123# /sys/general show -detail
Then browse to the EMC registration site, entering the VNXe S/N to retrieve the associated lic file:
https://support.emc.com/servicecenter/registerProduct/

Upload the acquired license file:
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword -upload -f C:\Users\david\Downloads\FL100xxx00005_29-July-2015_exp.lic license
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /sys/lic show

Commit the IO Modules
The following commits all uncommitted IO modules:
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /env/iomodule commit

Display a list of system IO modules:
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /env/iomodule show

Perform a Health Check
It is good practice to perform a Health Check in advance of a code upgrade:
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /sys/general healthcheck

Code Upgrade
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /sys/soft/ver show
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword -upload -f “C:\Users\david\Downloads\VNXe 2.4.3.21980\VNXe-MR4SP3.1-upgrade-2.4.3.21980-RETAIL.tgz.bin.gpg” upgrade
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /sys/soft/ver show
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /sys/soft/upgrade create -candId CAND_1
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /sys/soft/upgrade show
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /sys/general healthcheck

Note: Please see a more detailed overview of the upgrade process in a previous post:
https://davidring.ie/2015/03/02/emc-vnxe-code-upgrade/

Create A New User
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /user/account create -name david -type local -passwd DavidPassword -role administrator
uemcli -d 192.168.1.50 -u Local/admin -p NewPassword /user/account show

The role for the new account can be:
• administrator — Administrator
• storageadmin — Storage Administrator
• operator — Operator (view only)

Change the Service Password
The Service password is used for performing service actions on the VNXe.
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /service/user set -passwd newPassword -oldpasswd Password123#

Enable SSH
uemcli -d 192.168.1.50 -u service -p NewPassword /service/ssh set -enabled yes

EMC VNXe – Gen1&2 Backup Script (Powershell & UEMCLI)

——————————————————————-
Reference:: EMC® VNXe® Unisphere® Command Line Interface User Guide:

Collect -Config: Create a snapshot of the current system configuration and save it to a file. It captures all of the data necessary to recreate the current configuration on a new or reinitialized system. It does not capture log files or other types of diagnostic data.

Collect -serviceInfo: Collect information about the system and save it to a .tar file. Service providers can use the collected information to analyze the system.
——————————————————————-

Using native UEMCLI commands integrated with Powershell this script automates the process of backing up the current VNXe configuration along with the latest system log files. You will just need to Complete a few simple user entries:
◊ Backup Directory
◊ Mgmt IP Address
◊ Service Password

The script will automatically create a sub-directory in the backup location provided. For example if you input a backup directory of C:\VNXe this will result in a backup location of C:\VNXe\timeDate

Example Script Execution
VNXe_Backup1

The backup directory location will automatically open on completion of the script:
VNXe_Backup2

Download: VNXe_Backup.ps1 and remove the .doc extension! Or in full text format below:

 
#################################
#
# Reference: VNXe UEMCLI Docs
# Script:VNXe BACKUPS
# Date: 2015-02-10 17:30:00										 			 
#
# Version Update:                                         
# 1.0 David Ring            	
#					 
#################################

######## Banner ########
Write-Host " "
Write-Host "#########################################################"
Write-Host "#######       VNXe Config and LOGS Backup        ########"
Write-Host "#########################################################"
Write-Host " "


##### Backup Location #####
$BackupLocation = Read-Host "Backup Location:(A sub-dir with the current Time & Date will be created):"
$BackupLocation = (join-path -Path $BackupLocation -ChildPath "$(date -f HHmmddMMyyyy)")	
IF(!(Test-Path "$BackupLocation")){new-item "$BackupLocation" -ItemType directory | Out-Null}
$BackupLocation =  "`"$BackupLocation`""

Write-Host "Backup Location Entered:" $BackupLocation

Start-Sleep -s 3

########################
### VNXe GEN1 Backup ###
########################
$VNXe = Read-Host 'VNXe 3150/3300 Present? y/n:'
if ($VNXe -eq "y") {
$VNXeIP = Read-Host 'VNXe IP Address:'
$VNXePW = Read-Host 'VNXe Service Password:'
Write-Host " "
Write-Host "########################################"
Write-Host "#######  VNXe 3150/3300 Backup  ########"
Write-Host "########################################"
Write-Host " "
Write-Host "VNXe IP Address:" $VNXeIP
Write-Host "VNXe Service Password:" $VNXePW
Write-Host " "
Start-Sleep -s 3
$VNXeConfig = (uemcli.exe -d $VNXeIP -u service -p $VNXePW -download -d $BackupLocation config)
Write-Host "### VNXe Config Backup Complete. ###"
Write-Host " "
Write-Host "### Now Generating VNXe Log Files! ###"
$VNXeConfig = (uemcli.exe -d $VNXeIP -u service -p $VNXePW /service/system collect -serviceInfo)
$VNXeConfig = (uemcli.exe -d $VNXeIP -u service -p $VNXePW -download -d $BackupLocation serviceInfo)
Write-Host " "
Write-Host "##################################################"
Write-Host "#######    VNXe GEN1 Backup Complete      ########"
Write-Host "##################################################"
Write-Host " "
}


########################
### VNXe GEN2 Backup ###
########################
$VNXe = Read-Host 'VNXe 3200 Present? y/n:'
if ($VNXe -eq "y") {
$VNXeIP = Read-Host 'VNXe IP Address:'
$VNXePW = Read-Host 'VNXe Service Password:'
Write-Host " "
Write-Host "####################################"
Write-Host "########  VNXe 3200 Backup  ########"
Write-Host "####################################"
Write-Host " "
Write-Host "VNXe IP Address:" $VNXeIP
Write-Host "VNXe Service Password:" $VNXePW
Write-Host " "
Start-Sleep -s 3
$VNXeConfig = (uemcli.exe -d $VNXeIP -u service -p $VNXePW /service/system collect -config -showPrivateData)
$VNXeConfig = (uemcli.exe -d $VNXeIP -u service -p $VNXePW -download -d $BackupLocation config)
Write-Host "### VNXe Config Backup Complete. ###"
Write-Host " "
Write-Host "### Now Generating VNXe Log Files! ###"
$VNXeLOGS = (uemcli.exe -d $VNXeIP -u service -p $VNXePW /service/system collect -serviceInfo)
$VNXeLOGS = (uemcli.exe -d $VNXeIP -u service -p $VNXePW -download -d $BackupLocation serviceInfo)
Write-Host " "
Write-Host "##################################################"
Write-Host "#######     VNXe GEN2 Backup Complete     ########"
Write-Host "##################################################"
Write-Host " "
}

Start-Sleep -s 3

$BackupLocation = $BackupLocation -replace '"', ""
invoke-item $BackupLocation

Read-Host "Confirm Presence of 'Config File' and 'LOG Files's' in the Backup Directory!"

######################## END ########################

EMC VNXe – Troubleshooting NFS Connectivity

Step1 Check the Health status of the Link Aggregation:

uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/la show -detail

1: ID = la0_SPA
SP = SPA
Ports = eth2_SPA,eth3_SPA
Health state = OK (5)

2: ID = la0_SPB
SP = SPB
Ports = eth2_SPB,eth3_SPB
Health state = OK (5)

Step2 Ensure the Network Interface for NFS is correctly configured:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/if show -detail

ID = if_2
Port = eth2_SPA
VLAN ID = 0
IPv4 mode = static
IPv4 address = 10.0.0.11
IPv4 subnet mask = 255.255.255.0
IPv4 gateway = 10.0.0.254
MAC address = 08:00:00:00:00:00
SP = SPA

Step3 Check the Health Status and MTU Value set on the Ports:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/port show

ID = eth2_SPA
Role = frontend
SP = SPA
Supported types = iscsi, net
MTU size = 9000
Speed = 1 Gbps
Health state = OK (5)
Aggregated port ID = la0_SPA

ID = eth3_SPA
Role = frontend
SP = SPA
Supported types = iscsi, net
MTU size = 9000
Speed = 1 Gbps
Health state = OK (5)
Aggregated port ID = la0_SPA

ID = eth2_SPB
Role = frontend
SP = SPB
Supported types = iscsi, net
MTU size = 9000
Speed = 1 Gbps
Health state = OK (5)
Aggregated port ID = la0_SPB

ID = eth3_SPB
Role = frontend
SP = SPB
Supported types = iscsi, net
MTU size = 9000
Speed = 1 Gbps
Health state = OK (5)
Aggregated port ID = la0_SPB

For a more detailed analysis of Frontend|Backend:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/port -role frontend show -detail

Step4 Check if Jumbo MTU is set correctly on Cisco SW’s:
SwitchA#show system mtu
If change required then issue command: system mtu jumbo 9198
Save and then reload

Step5 Check Shared folder for enabled NFS and Interface ID
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/nas/server show

ID = file_server_2
Name = NFS_01
Health state = OK (5)
SP = SPA
CIFS enabled = no
NFS enabled = yes
Interface = if_2

Step6 Run a PING Test from the VNXe NFS Interface if_2 to ESXi NFS IP & VMKPing from ESXi NFS vmk to VNXe Server
Gather ESXi Host details:
uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /remote/host show -detail

ID = 1003
Name = ESXi_01
Type = host
Address = 10.0.0.50
OS type = esx

Ping the vmkernel of the ESXi host to ensure proper connectivity:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/util ping -srcIf if_2 -addr 10.0.0.50
Operation completed successfully.
Ping the NFS Server from the vmkernel of the ESXi host:
vmkping -s 8972 -d 10.0.0.11

Failure here will normally imply a networking configuration issue – Verify subnets, vlan’s and any firewall configs are correct.

Step7 Check the status and details of the NFS Datastore
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /stor/prov/vmware/nfs show -detail
ID = app_1
Name = NFS-01
Health state = OK (5)
Health details = "The component is operating normally. No action is required."
Server = file_server_2
Storage pool = NFS-01
Size = 858993459200 (800.0G)
Size used = 241740808192 (225.1G)
Maximum size = 4417404272640 (4.0T)
Thin provisioning enabled = no
Cached = no
Current allocation = 858993459200 (800.0G)
Protection size = 42949672960 (40.0G)
Protection size used = 0
Maximum protection size = 17592184995840 (16.0T)
Protection current allocation = 0
Auto-adjust protection size = yes
Local path = /NFS_01
Export path = /NFS_01
Default access = na
Root hosts = 1003[10.0.0.50]
Replication destination = no
Deduplication enabled = no
Creation time = 2014-06-11 09:55:00
Last modified time = 2014-06-11 09:55:00

Step8 For any Firewall in-place ensure the following port is open:
2049 – TCP/UDP – NFS – Required for NFS

Step9 Add the NFS file system manually to the ESXi host:
Log on to vCenter or the ESX host click on the ESXi host, from the Configuration tab choose Storage and Add storage:
1. Enter the IP address of the NFS server – 10.0.0.11
2. Enter the Folder name which is the mount point from VNXe – /NFS-01
3. Enter the datastore name that vCenter/ESXi will use to present as – NFS-01

EMC VNXe Configuration Using Unisphere CLI (Part 2)

This is the second part in the series on configuring the VNXe via command line. Here I will detail the Steps involved in creating both NFS and iSCSI datastores. The configuration steps outlined in Part2 will be the following:

  • LACP Configuration
  • Create the Network Interface for NFS
  • NFS Shared Folder Server Configuration
  • Create NFS datastores
  • Creating iSCSI Interfaces/Nodes/Datastores

LACP Configuration

Link aggregation lets you link physical ports on a SP to a single logical port. It is possible to use up to 4 ports on an SP. If your system has two SPs, and you link two physical ports, the same ports on both SPs are linked for redundancy. In this example, we will link port 2 and port 3, the system creates a link aggregation for these ports on SP A and a link aggregation on SP B. Each link aggregation is identified by an ID. Link aggregation has the following advantages:

  • Increased throughput since two physical ports are linked into one logical port.
  • Load balancing across linked ports
  • Redundant ports

The following command shows the existing port settings:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/port show

Configure LACP for Ethernet Ports 2 and 3:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/la create -ports eth2_SPA,eth3_SPA” -mtuSize 9000

The following command shows the link aggregations on the system:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/la show

Create the Network Interface for NFS.

This will create the Network interface for controlling access to the NFS file storage. You assign the interface to a Shared Folder Server (Next Step Below). iSCSI interfaces are used for controlling access to iSCSI storage and get assigned to the iSCSI nodes (Shown Below).

The system configures each interface on an SP port. You have the option of indicating which SP the interface will use, either a physical port or a link aggregation port. You also have the option of specifying a virtual LAN (VLAN) ID, for communicating with VLAN networks. Each interface is identified by an ID.

Create a network interface on the LACP we have created above that uses VLAN ID 100. The interface receives the ID if_0:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/if create -port eth2_SPA -ipv4 static -addr 10.16.17.20 -netmask 255.255.255.0 -gateway 10.16.17.254

The following command displays all interfaces on the system:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/if show

NFS Shared Folder Server Configuration

Now we will create an NFS shared folder. Once we create the shared folder, we can create the NFS network shares and use the ID of the shared folder to associate it with a share.

The following command creates a Shared Folder Server with these settings:

  • Name is NFS-SF
  • Associated to interface if_0
  • The server receives the ID file_server_0

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/nas/server create -name ” NFS-SF ” -enableNFS yes -if if_0

Show details:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/nas/server show

Create NFS datastores

Create an NFS Datastore and Assign to NFS Shared Server with these settings:

  • Named NFS-01
  • Use  Shared Folder Server file_server_0
  • Uses the VMWARE-NFS storage pool
  • NFS datastore size is 200 GB
  • Host Access is root (Read/write root access to primary storage)
  • 40G is the amount of protection storage to allocate for the NFS datastore
  • The protection size, entered for the -protSize qualifier, is automatically adjusted in proportion with changes to the size of the primary storage

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /stor/prov/vmware/nfs create -name ” NFS-01″ -server file_server_0 -pool VMWARE-NFS -cached no -size 200G -defAccess root -protSize 40G -autoProtAdjust yes

View details:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /stor/prov/vmware/nfs show

Creating iSCSI Interfaces/Nodes/Datastores

The following commands create the network interfaces used by the iSCSI nodes and uses VLAN ID 200. The interfaces receive the IDs if_2 and if_3 on both SPA and SPB respectfully:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/if create -port eth10_SPA -vlanId 200 -ipv4 static -addr 10.16.17.21 -netmask 255.255.255.0 -gateway 10.16.17.254

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/if create -port eth10_SPB -vlanId 200 -ipv4 static -addr 10.16.17.22 -netmask 255.255.255.0 -gateway 10.16.17.254

The following commands creates the first iSCSI node with these settings:

  • Alias is ISCSIA-21
  • Network interface if_2 assigned

The iSCSI node receives ID iSCSI_node_0:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/iscsi/node create -alias ISCSIA-21 -if if_2

Create the second iSCSI node with these settings:

  • Alias is ISCSIB-22
  • Network interface if_3 assigned

The iSCSI node receives ID iSCSI_node_1:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/iscsi/node create -alias ISCSIB-22 -if if_3

Lists all iSCSI nodes on the system:
uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /net/iscsi/node show

 Creating iSCSI Datastores

Check ESXi Host vdiskhost ID’s to use in assigning the datastores:

uemcli -d 10.0.0.1 -u Local/admin -p Password#123 /remote/host show -detail

We can now create the iSCSI datastores:

Create iSCSI Datastores from the Performance Pool and assign to ESXi Hosts with ID’s 1001,1002:

uemcli -d 10.0.0.1 -u local/admin -p Password#123 /stor/prov/vmware/vmfs create -name “iSCSI-LUN01” -node iscsi_node_0 -pool performance -size 200G -thin yes -vdiskHosts “1001,1002”

Create iSCSI Datastores from the Capacity Pool and assign to ESXi Hosts with ID’s 1003,1004:

uemcli -d 10.0.0.1 -u local/admin -p Password#123 /stor/prov/vmware/vmfs create -name “iSCSI-LUN02” -node iscsi_node_1 -pool capacity -size 200G -thin yes -vdiskHosts “1003,1004 “

EMC VNXe Configuration Using Unisphere CLI (Part 1)

This is the first in a series of blog posts on configuring VNXe using the command line. All the configurations here will be performed using “uemcli” which can be downloaded here . If you prefer to use the GUI interface then Henri has a very good series of blog posts here. The following scripts defined here are very useful if like me you need to configure VNXe systems on a weekly basis. VNXe is the base storage for the Vblock VB100 series and also used as the shared storage for management hosts in the VB300 and VB700 series.

The configuration steps outlined in Part 1 will be the following:
• Accept License Agreement
• Change Admin Password
• Create a New User
• Change the Service Password
• Commit IO Modules
• Perform a Healthcheck
• Code Upgrade
• Create a Storage Pool
• Add Hot Spare
• DNS Configuration
• NTP Configuration

Accept License Agreement
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /sys/eula set -agree yes

Change Admin Password
First run the show command to get the –id of the user account to change. In this case we are changing the Admin password which will have an ID of user_admin:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /user/account show
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /user/account -id user_admin set -passwd NewPassword -oldpasswd Password123#

Create a New User
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /user/account create -name newUser -type local -passwd Password -role administrator
The role for the account can be:
• administrator — Administrator
• storageadmin — Storage Administrator
• operator — Operator (view only)

Change the Service Password
The Service password is used for performing service actions on the VNXe.
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /service/user set -passwd newPassword -oldpasswd Password123#

Commit IO Modules
The following commits all uncommitted IO modules:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /env/iomodule commit
The following command displays a list of system IO modules:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /env/iomodule show

Perform a Healthcheck
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /sys/general healthcheck

Code Upgrade
In a dual SP VNXe this will be an NDU. Services will failover between SP’s during upgrade.
Perform a Healthcheck of the system prior to upgrade and resolve any issues first.
Firstly we upload the new code to the VNXe using the -upload switch before creating the upgrade session:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# -upload -f PathToSoftware\VNXe-MR4-upgrade-2.4.0.20932-RETAIL.tgz.bin.gpg upgrade
The following command displays details about the installed system software and details about the uploaded upgrade candidate.We also need to run this command to get the -candId of the uploaded upgrade candidate:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /sys/soft/ver show
Now we create a session to upgrade the system software using candidate CAND_1:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /sys/soft/upgrade create -candId CAND_1
Status of Upgrade:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /sys/soft/upgrade show
Confirm software version:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /sys/soft/ver show

Create a Storage Pool
View the Storage profile. Storage profiles are preconfigured settings for configuring storage pools based on Raid type, capacity and stripe length. We will choose a storage profile that best suits the server workload:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /stor/config/profile show
Next view details about disk groups on the system. We will need the disk group ID to create the pool from:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /stor/config/dg show
Here we create the “VMWARE-NFS” pool for vmware using 5 disks from the disk group disk_group_1 and using storage_cap_0 profile:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /stor/config/pool create -name VMWARE-NFS -descr “VMware NFS Pool” -storProfile storage_cap_0 -diskGroup disk_group_1 -drivesNumber 5 -resType vmware -usage datastore
View the Pool configuration:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /stor/config/pool show -detail

Add Hot Spare to the pool
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /stor/config/dg -id disk_group_1 set -spares 1

DNS Configuration
The following command adds two DNS servers to the domain dcr.com. The servers are grouped by domain under the ID dcr.com:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/dns/domain create -name “dcr.com” -nameServer “10.0.0.2, 10.0.0.3”
List all DNS server domains:
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/dns/domain show

NTP Configuration
The following creates an NTP server record
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/ntp/server create -server 10.0.0.4
uemcli -d 10.0.0.1 -u Local/admin -p Password123# /net/ntp/server show

In the next post (part 2) I will show how to script the iSCSI and NFS server configurations and creation of datastores for each.