There are many Netapp SMcli commands to configure, manage, and monitor the NetApp storage arrays.
If the system fails to communicate with the storage array on its status, the storage manager daemons may need to be restarted.
systemctl restart smagent
systemctl restart smmonitor
NOTE: array_name is case sensitive
This has the details needed by NetApp to troubleshoot issues
SMcli -n array_name -c 'save storageArray supportData file="/home/supportbundle";'
egrep "Date|Description|Priority" major-event-log.txt | paste - - - | egrep -v "Informational" | less
This will display a few IP addresses. The management IP address should be the first one listed.
SMcli -n array_name -S -c 'show controller [a];' | grep "IP address"
SMcli -n array_name -S -c 'show controller [b];' | grep "IP address"
This will Auto discover the arrays and populate the local data base of arrays.
SMcli -A localhost
Typically named hostname_array0
SMcli -d
SMcli -d -w
SMcli -n array_name -c 'show storagearray healthstatus;'
Will be either linkdown or online
cat /sys/class/fc_host/host?/port_state
SMcli -n array_name -S -c 'show allHostPorts;'
SMcli -n array_name -c 'show allvolumes;'
SMcli -n array_name -c 'show allvolumes;'| grep owner
SMcli -n array_name -c 'show allvolumes;'| grep "Volume name"
SMcli -n array_name -c 'show volume [volume_name];'| grep -i owner
SMcli -n array_name -c 'show volume [volume_name] actionprogress;'
multipath -ll | egrep -A 1 "NETAPP" | paste - - - | sort -k 4 | sed -e 's/feat.*$//g'
SMcli -n array_name -c 'reset storageArray volumeDistribution;'
SMcli -n array_name -c 'show alldrives;'
SMcli -n array_name -c 'show alldrives;'| grep Status
SMcli -n array_name -c 'start drive [99,drawer_number,slot_number] locate;'
SMcli -n array_name -c 'stop drive locate;'
SMcli -n array_name -c 'show drive [99,drawer_number,slot_number] summary;'
SMcli -n array_name -c 'revive drive [99,drawer_number,slot_number];'
Will also show the chassis serial number
SMcli -n array_name -c 'show storagearray profile;'
SMcli -n array_name -c 'show storagearray profile;' | grep Chassis
SMcli -autoSupportconfig show
SMcli -n array_name -c 'show storagearray summary;'
(used when a degraded drive channel error is seen)
SMcli -n array_name -c 'show alldrivechannels stats;'
SMcli -n array_name -S -c 'show controller [a];'
SMcli controller_ip_address -S -c 'show controller [a];'
SMcli -n array_name -c 'show storageArray longRunningOperations;'
Save all events to a file
SMcli -n array_name -c 'save storageArray allevents file="./all.txt";'
SMcli -A -S
WARNING: This command is destructive
SMcli -n array_name -S -c 'clear storagearray configuration volumeGroups;'
WARNING: This command is destructive
SMcli -n array_name -S -c 'clear storagearray configuration all;'
Must use after clear configuration
SMcli -X -n array_name
SMcli -n array_name -S -c 'set controller [a] ethernetport [1] enableIPv4=True IPv4Address=ip_address IPv4SubnetMask=subnet_mask IPv4GatewayIP=gateway_ip;'
SMcli -n array_name -c 'set volumegroup [volume_name] owner=b;'
Used when a degraded drive channel error is seen
SMcli -n array_name -c 'clear alldrivechannels stats;'
Used when a degraded drive channel error is seen
SMcli -n array_name -c 'set drivechannel [4] status=optimal;'
Causes background initialization to have minimal performance impact
SMcli -n array_name -c 'set allVolumes modificationPriority=lowest;'
SMcli -n array_name -S -c 'set drive[99,drawer_number,slot_number] hotSpare=False;'
This is used to identify PSU during canister replacement.
SMcli -n array_name -c 'set tray [99] powerfan [top] serviceAllowedIndicator=on;'
SMcli -n array_name -c 'set tray [99] powerfan [top] serviceAllowedIndicator=off;'
SMcli -n array_name -c 'set storageArray time;'
SMcli -n array_name -c 'show storageArray time;'
SMcli controller_IP -c 'show storagearray profile;' | grep NTP
SMcli controller_IP -c 'set controller[A] NTPServers=("1.2.3.4" "5.6.7.8");'
SMcli controller_IP -c 'set controller[B] NTPServers=("ntp.google.com" "ntp.time.com");'
SMcli -n array_name -c 'set storageArray userLabel="array1";'
SMcli -n array_name -c 'set storageArray Password="newpasswordhere";'
SMcli -n array_name -p old_password -c 'set storageArray Password="";'
SMcli -n array_name -c 'set controller[X] availability=offline;'
SMcli -n array_name -c 'set controller[X] availability=online;'
This must be done one drive at a time. You will need the PSID number from the drive label
SMcli -n array_name -c 'set drive [99,drawer_number,slot_number] securityID="PSID_from_drive_sticker";'