SustainingTools
Several tools are available under /home/dept/Sustain/tools also ./diag-tools (these are version controlled)
add_missing_pages.pl.old
edit- OBSOLETE - refer missing_pages.sh
admin_ifconfig_up.sh
edit- utility to toggle specific network interfaces on array and enable/disable relevant traces - uses SNMPwalk to set ifAdminStatus, and ifconfig eth to toggle i/fs - useful in tourbleshooting network issues
busycpu.exe (busycpu.pl)
edit- ONLY Windows !! Keeps the CPU busy (not sure why/when it was used; possibly HIT/SANHQ testing maybe?)
ch.pl
edit- checks Report file for iSCSI login failures
cksumpage.sh
edit- generates checksum for a specific page; need to provide psVID and page# as input parameters - cksumpage_OLD.sh (tbd)
clearcounters.zip
edit- clears cache and network(TCP) counters on the array - NOTE: could have an issue clearing TCP counters if netstats is NOT aliased to /sbin/nstats_test
connanalyze.pl
edit- analyzes Report file for iSCSI connections; menu driven - no option to save results in a file
convertipv6_snmp.awk (refer delete_i_inetentries)
edit- converts ipv6 addresses in SNMP walk file to . delimited, readable - runs in conjunction with the delete_i_inetentries
convert-psvid.sh
edit- converts psVID to / from SNMP hex format to IOM readable format - ex: "convert-psvid.sh 68 B7 B2 1C 55 DE 22 1C D3 E9 A4 00 00 00 60 D6" gives the output 8-cb2b76-1c22de551-d660000000a4e9d3 - could need to change the shell if being used on an array, but typically not needed to be run on an array
datamine.pl
edit- parses diags to generate a csv file with statistics - NOTE: not frequently used; check with Chuck before running it
decodestack.sh
edit- accepts eqllogmgr/Report file and parses ALL stack dumps - Also refer: http://dewiki.mht.amer.dell.com/wiki/index.php/Basic_Core_Analysis_Tips_and_Tricks - can also be run in manual mode; script will prompt for input parameters
del_mpio_acl_by_volume.pl / del_mpio_acl_by_volume.exe (windows version)
edit- connects to an array and DELETEs ALL MPIO ACLs for a specific volume - only useful when arrays are reachable via telnet
deldupe
edit- wrapper for an "iom delete_page" command; requires psVID and Page# as inputs - does NOT really identify/detect duplicate pages, etc
delete_i_inetentries (also refer convertipv6_snmp.awk)
edit- deletes rows from SNMP table "eqlInetAddrTable" (field:eqlInetAddrEntIfName) that don't have corresponding members in the "eqlMemberTable" (field:eqlMemberName) - Bug: 21336
disconn
edit- forces an Async logout initiated from the array (wrapper for 'iscsi_test alogout') - uses EqlCliExec.pl/exe to tunnel the iscsi_test command (from local windows/linux machine) to array
diskload.exe
edit- used by QA to generate load on (windows) (SAN) drives
dmesg.pl
edit- Extracts Dmesgs from input file (typically: *.eqllogmgr-Output.txt and generated *.eqllogmgr-Output.dmesg.txt o/p file)
DriveFail
edit- Analyses Report file(s) to troubleshoot Failed drives - NOTE: the script also emails a default mailing address -- use with caution!! - DriveFail1 / DriveFail-Original (older copies of same script)
drivescan.sh
edit- parses eqllog-Output file and outputs data/entries related to drives - useful in analysing drive data displayed by eqllog
eql_cord-g_with_logging.pl (eql_cord-g_with_logging.exe)
edit- issues a "cord -g" (simulate power failure) to the Active CM on an array. Useful to failover Controllers on an array - requires telnet access to the array - same as eql_multimember_cord-g_with_logging.pl
eql_create_vols.pl
edit- wrapper to create volumes on an array; requires telnet access to array
===== eql_multimember_ifdownup_with_logging.pl - utility to toggle an eth port on the array; requires telnet access to the array, usues ifconfig
eql_multimember_restart_with_logging.pl
edit- wrapper to issue a 'restart' command to an array; requires telnet access to the array, usues ifconfig
eql_setup_vol_access.pl
edit- utlity to set access control lists (ACL) for specific volume; uses telnet to connect to array - can set up only IP address ACLs (no IQN or CHAP); accepts single IP address; cannot use wild cards
eql_setup_vol_access_chap.pl
edit- utlity to set CHAP ACL entry for specific volume; uses telnet to connect to array
EqlCliExec.exe
edit- utility to issue Cli commands for an array from local Windows machine - no need to explicity log into the array; used in several perl scripts to issue array commands remotely
fixdelegated.sh (fixdelegated.zip)
edit- checks actual used space (total of all ReplicatSetSite) against reported used space (ReplicaSiteSpaceUsed) for replicas; in case of mismatch, smpsets new (calculated) value for reported used space - operates only at SNMP/MIB level; doesn't check for usage details in lower layers - prompts for confirmation before doing the actual snmpset; useful to check for space descrepancies - runs on the array, hence uses snmpwalk, but can be modified to use SNMP file in diags
fixpasswd.sh
edit- resets ALL passwords on the array to defaults; script runs on the array
forceLVFlag
editfromepoch.pl
edit- generates human readable time from epoch time; useful when checking timestamps - use in .bashrc -> alias epoch='/home/dept/Sustain/tools/fromepoch.pl'
FULLmemlivedump.sh
edit- runs on the array and ftps (large) livememdump file to destination server - the ftp does an online dd (to dump the memory) of 64k block sizes, and then ftps individual blocks to destination gz file -- ftp> put |"dd if=/dev/mem bs=64k |gzip -9c" sea55-livememdump.gz -- local: |dd if=/dev/mem bs=64k |gzip -9c remote: sea55-livememdump.gz
getpage (also see cksumpage_OLD.sh)
edit- function file used by the cksumpage_OLD.sh; OBSOLETE; use cksumpage.sh
gettranslog.sh
edit- utility to retrieve the IOM transaction log from array - runs on array; uses ftp to download the IOM_XTION_LOG_VOL (/dev/eqliomlv1) to local machine
GetVolPages.tcl
edit- parses Report file and determines if there are duplicate pages in a group - Ex: /home/dept/Sustain/tools/GetVolPages.tcl /home/dept/Support/Montpelier/2008-10-15/bma-pequal-2-1-Wed20081015121141ADT-Report.txt - useful for versions lower than 3.x
01/02/2008 04:05 PM 2,278 groupping.zip
iomlog
edit- (tdb) - also check readlogs script - also check: http://dewiki.mht.amer.dell.com/wiki/index.php/Transaction_Log_Overview
list-schedules-v50.tcl (also refer: list-schedules-v40.tcl -> obsolete)
edit- parses the SNMPwalk output file to get Snapshot schedules associated with individual volumes
manualdecodestack.sh
edit- DEPRECATED - use decodestack.sh instead
map_pages.py
edit- another utility for finding duplicate pages in a group (also refer GetVolPages.tcl) - typically used as in conjunction with (outout of) "check_pages" utility ((http://dewiki.mht.amer.dell.com/wiki/index.php/Group_Tools))
mbuf_tester.sh
edit- checks array for mbuf usage; runs on long terms (Sleeping for 2 hours) - uses the memlivedump.sh to periodically ftp memdump to local array
mbuf-monitor.tar
edit- utility to check for mbufs on an array; consists of set of scripts to monitor mbufs and ftp mempry dump to specified remote location - uses: mbufmon.sh, memlivedump.sh, ftpfile, mbuf-monitor-readme.txt
memdump.sh
edit- runs (in a while loop) on the array; checks vmstat output for specific values, and ftps results to remote location; requires use of ftpfile - can be modified to check for any vmstat parameters
miniDiag1.sh
edit- output of very limited set of commands on the array; useful to get quick diag output; doesn't store in any output file
missing_pages.sh
edit- parses Report file to identify volume missing pages; generates a script that can repair the missing pages - depends on diag_check_pages (http://dewiki.mht.amer.dell.com/wiki/index.php/Group_Tools) - useful only on Fw version +3.x
monitor_vm.pl
edit- (tbd)
mr.vimrc
edit- example vimrc (?!)
mydiags.pl
edit- telnets to an array, deletes old diags, gathers new diags, then ftps them to local server and unpacks them - input parameters: array IP, username, passwword
ndr_times.sh
edit- parses Report file and extracts time taken per component/subsystem/process during an NDR; uses dmesg
pagecksum
edit- another utility to generate checksum of specific page in specific volume; also looks at snapshots of volume - (also refer cksumpage.sh)
rclean
edit- cleans the /pss/rc.lcl from both controllers on an array; useful to reset startup events - rc.lcl: executed on every reboot; typically events survive application restarts, but not reboots. To ensure (user) specific events persist across boots, specify them in the /pss/rc.lcl
readlogs
edit- (tdb) - also check iomlog script
RebuildSched
edit- parses SNMPwalk file and generates a Cli script to regenerate Snapshot schedules - Ex: RebuildSched /home/dept/Support/Montpelier/2008-10-15/bma-pequal-2-1-Wed20081015121141ADT-SNMPWalk.txt
retrans.pl
edit- scans "nstat_test -p iscsi" section in Report file and calculates retransmit percentages for active connections - useful in troubleshooting network issues
reverselines
edit- shell script to read in all lines of a file and print them in reverse order ( where/why/when is it used?)
setdump.sh
edit- utility to enable memory dump feature on array; runs on the array and ftps dump to remote location; edits config.txt on both controllers to enable dumps
snmpset-sample.sh
edit- sample script to utilize snmpset on array
split-report.sh
edit- useful utility to splite the Report files into separate txt files depending on various sections - outputs several TXT files: iscsi_info.txt, disk_and_raid.txt, dump_file1.txt, etc
unreset-pre4.1.sh (urstp41.tar)
edit- utility to UNRESET an array that was cleared using the RESET command; this is only for FW version pre4.1 - refer unreset.sh for FW 4.x and higher (http://dewiki.mht.amer.dell.com/wiki/index.php/Unreset)
vm-monitor.tar
edit- set of scripts that monitor memory usage on array and invoke a live memory dump if the usage exceeds a pre-defined number of allocated pages (500) - includes vmmon.sh, memlivedump.sh, ftpfile
wireshark_new.sh
edit- cool utility to gather network traces from array - uses nstat_test to capture TCP dumop from eth i/f; also tracks space usage for output "pkt.dmp" file, and if it grows large kills the nstats_test process - wireshark.sh == DON'T USE
Set of scripts for Drive Failure analysis: parses diags to generate these reports
edit- /home/dept/Sustain/tools/diag-tools - version controlled - drive-failure-analysis.py - EQLLogMgr.py / EQLLogMgr.pyc - EQLReport.py / EQLReport.pyc - preemptive-drive-failure-analysis.py - stuck-slot-analysis.py - ToolWrapper.py / ToolWrapper.pyc
member-volume-contribution.py
edit- parses diags to generate information regarding current member's contribution to volumes which have pages on this member - also refer: http://dewiki.mht.amer.dell.com/wiki/index.php/Diags_Parsing_Tools