Navisphere CLI is a command line interface tool for EMC storage system management.
You can use it for storage provisioning and manage array configurations from any one of the managed storage system on the LAN.
It can also be used to automate the management functions through shell scripts and batch files.
CLI commands for many functions are server based and are provided with the host agent.
The remaining CLI commands are web-based and are provided with the software that runs in storage system service processors (SPs).
Configuration and Management of storage-system using Navisphere CLI:
The following steps are involved in configuring and managing the storage system (CX series, AX series) using CLI:
- Install the Navisphere on the CLI on the host that is connected to the storage. This host will be used to configure the storage system.
- Configure the Service processor (SP) agent on the each SP in the storage system.
- Configure the storage system with CLI
- Configuring and managing remote mirrors (CLI is not preferred to manage mirrors)
The following are two types of Navisphere CLI:
- Classic CLI is old version and it does not support any new features. But, this will still get the typical storage array jobs done.
- Secure CLI is most secured and preferred interface. Secure CLI includes all the commands as Class CLI with additional features. It also provides role-based authentication, audit trails of CLI events, and SSL-based data encryption.
Navisphere CLI is available for various OS including Windows, Solaris, Linux, AIX, HP-UX, etc.
Two EMC CLARiiON Navisphere CLI commands:
- naviseccli (Secure CLI) command sends storage-system management and configuration requests to a storage system over the LAN.
- navicli (Classic CLI) command sends storage-system management and configuration requests to an API (application programming interface) on a local or remote server.
In storage subsystem (CLARiiON, VNX, etc), it is very important to understand the following IDs:
- LUN ID – The unique number assigned to a LUN when it is bound. When you bind a LUN, you can select the ID number. If you do not specify the LUN ID then the default LUN ID bound is 0, 1 and so on..
- Unique ID – It usually refers to the storage systems, SP’s, HBAs and switch ports. It is WWN (world wide Name) or WWPN (World wide Port Name).
- Disk ID 000 (or 0_0_0) indicates the first bus or loop, first enclosure, and first disk, and disk ID 100 (1_0_0) indicates the second bus or loop, first enclosure, and first disk.
1. Create RAID Group
The below command shows how to create a RAID group 0 from disks 0 to 3 in the Disk Processor Enclosure(DPE).
naviseccli –h H1_SPA createrg 0 0_0_0 0_0_1 0_0_2 0_0_3
In this example , -h Specifies the IP address or network name of the targeted SP on the desired storage system. The default, if you omit this switch, is localhost.
Since each SP has its own IP address, you must specify the IP address to each SP. Also a new RAID group has no RAID type (RAID 0, 1, 5) until it is bound. You can create more RAID groups 1, 2 and so on using the below commands:
naviseccli –h H1_SPA createrg 1 0_0_4 0_0_5 0_0_6 naviseccli –h H1_SPA createrg 2 0_0_7 0_0_8
This is similar to how you create raid group from the navsiphere GUI.
2. Bind LUN on a RAID Group
In the previous example, we created a RAID group, but did not create a LUN with a specific size.
The following examples will show how to bind a LUN to a RAID group:
navisecli -h H1_SPA bind r5 6 -rg 0 -sq gb -cap 50
In this example, we are binding a LUN with a LUN number/LUN ID 6 with a RAID type 5 to a RAID group 0 with a size of 50G. –sq indicates the size qualifier in mb or gb. You can also use the options to enable or disable rc=1 or 0(read cache), wc=1 or 0 (write cache).
3. Create Storage Group
The next several examples will shows how to create a storage group and connect a host to it.
First, create a stroage group:
naviseccli -h H1_SPA storagegroup -create -gname SGroup_1
4. Assign LUN to Storage Group
In the following example, hlu is the host LUN number. This is the number that host will see from its end. Alu is the array LUN number, which storage system will see from its end.
naviseccli -h H1_SPA storagegroup -addhlu -gname SGroup_1 -hlu 12 -alu 5
5. Register the Host
Register the host as shown below by specificing the name of the host. In this example, the host server is elserver1
naviseccli -h H1_SPA elserver1 register
6. Connect Host to Storage Group
Finally, connect the host to the storage group as shown below by using -connecthost option as shown below. You should also specify the storagegroup name appropriately.
naviseccli -h H1_SPA storagegroup -connecthost -host elserver1 -gname SGroup_1
7. View Storage Group Details
Execute the following command to verify the details of an existing storage group.
naviseccli -h H1_SPA storagegroup –list –gname SGroup_1
Once you complete the above steps, your hosts should be able to see the newly provisioned storage.
8. Expand RAID Group
To extend a RAID group with new set of disks, you can use the command as shown in the below example.
naviseccli -h H1_SPA chgrg 2 -expand 0_0_9 0_1_0 -lex yes -pri high
This extends the RAID group with the ID 2 with the new disks 0_0_9 & 0_1_0 with lun expansion set to yes and priority set to high.
9. Destroy RAID Group
To remove or destroy a RAID group, use the below command.
naviseccli -h H1_SPA destroyrg 2 0_0_7 0_0_8 0_0_9 0_1_0 –rm yes –pri high
This is similar to how you destroy raid group from the navisphere GUI.
10. Display RAID Group Status
To display the status RAID group with ID 2 use the below command.
naviseccli -h H1_SPA getrg 2 -lunlist
11. Destroy Storage Group
To destroy a storage group called SGroup_1, you can use the command like below:
naviseccli -h H1_SPA storagegroup -destroy -gname SGroup_1
12. Copy Data to Hotspare Disk
The naviseccli command initiates the copying of data from a failing disk to an existing hot spare while the original disk is still functioning.
Once the copy is made, the failing disk will be faulted and the hotspare will be activated. When the faulted disk is replaced, the replacement will be copied back from the hot spare.
naviseccli –h H1_SPA copytohotspare 0_0_5 -initiate
13. LUN Migration
LUN migration is used to migrate the data from the source LUN to a destination LUN that has more improved performance.
naviseccli migrate –start –source 6 –dest 7 –rate low
Number 6 and 7 in the above example are the LUN IDs.
To display the current migration sessions and its properties:
naviseccli migrate –list
14. Create MetaLUN
MetaLUN is a type of LUN whose maximum capacity is the combined capacities of all LUNs that compose it. The metaLUN feature lets you dynamically expand the capacity of a single LUN in to the larger capacity called a metaLUN. Similar to LUN, a metaLUN can belong to storage group and can be used for Snapview, MirrorView and SAN copy sessions.
You can expand a LUN or metaLUN in two ways — stripe expansion or concatenate expansion.
A stripe expansion takes the existing data on the LUN or metaLUN, and restripes (redistributes) it across the existing LUNs and the new LUNs you are adding.
The stripe expansion may take a long time to complete. A concatenate expansion creates a new metaLUN component that includes the new LUNs and appends this component to the end of the existing LUN or metaLUN. There is no restriping of data between the original storage and the new LUNs. The concatenate operation completes immediately
To create or expand a existing metaLUN, use the below command.
naviseccli -h H1_SPA metalun -expand -base 5 -lun 2 -type c -name newMetaLUN-sq gb –cap 50G
This creates a new meta LUN with the name “newMetaLUN” with the meta LUN ID 5 using the LUN ID 2 with a 50G concatenated expansion.
15. View MetaLUN Details
To display the information about MetaLUNs, do the following:
naviseccli -h H1_SPA metalun –info
The following command will destroy a specific metaLUN. In this example, it will destory metaLUN number 5.
naviseccli –h H1_SPA metalun –destroy –metalun 5