Jan 18
EMC – naviseccli – Getting LUN info from Analyzer stats
So Mat was working on some new features for the DIY Heatmap, or whatever it’s called, and came across this, er, issue with Analyzer.
It seems that the code that you query via Analyzer for the object type is the same for both Pool LUNs and Private LUNs. Check it out on page 37 of the “EMC Unisphere Analyzer Command Line Interface (CLI) Reference”, revision A06, EMC P/N 300-004-210. So what we’ve been trying to incorporate is a LUN heatmap in the script. But this is going to be a problem if, for example, you have MetaLUN components, or Reserved LUN Pools, in combination with FAST VP Pools. Or have we missed something critical here?
Jan 11
EMC – FAST Cache and LUN expansion or shrink operations
Someone on twitter asked me about a white paper they were reading on the EMC site recently that suggested that LUN expansion or shrink operations would require that FAST Cache be disabled. The white paper in question is located here. For those of you loitering on Powerlink the EMC Part Number is h8046.7. In any case, on page 8 it covers a number of requirements for using FAST Cache – most of which seem fairly reasonable. However, this one kind of got my attention (once my attention was drawn to it by @andrewhatfield) – “Once FAST Cache has been created, expansion or shrink operations require disabling the cache and re-creating the FAST Cache“. Wow. So if I want to do a LUN expansion I need to delete and re-create FAST Cache once it’s complete? Seriously? I informally confirmed this with my local Account TC as well.
It takes a while to create FAST Cache on a busy VNX. It takes even longer to disable it on a busy system. What a lot of piss-farting around to do something which used to be a fairly trivial operation (the expansion I mean). Now, I’ll be straight with you, I haven’t had the opportunity to test what happens if I don’t disable FAST Cache before I perform these operations. Knowing my luck the damn thing will catch on fire. But it’s worth checking this document out before you pull the trigger on FAST Cache.
[Edit: Or maybe they mean if you want to expand or shrink the FAST Cache? Because that makes sense. I hope that's what they mean.]
[Edit #2: Joe (@virtualtacit) kindly clarified that this requirement relates to the shrinking or expansion of FAST Cache, not LUNs. My bad! Nothing to see here, move along :)]
Jan 6
IBM SVC – svcinfo Basics – Part 2
In part 2 in a series of posts on random informational commands you can type into the SVC, here’s a few more commands you may find helpful.
First one is lsiogrp. The lsiogrp command returns a concise list or a detailed view of I/O groups visible to the cluster. More information can be found here.
IBM_2145:dc1-0001svccl:admin>svcinfo lsiogrp -delim , id,name,node_count,vdisk_count,host_count 0,io_grp0,2,408,244 1,io_grp1,0,0,240 2,io_grp2,0,0,240 3,io_grp3,0,0,240 4,recovery_io_grp,0,0,0
Another useful command is lshost. The lshost command generates a list with concise information about all the hosts visible to the cluster and detailed information about a single host. More information can be found here.
IBM_2145:dc1-0001svccl:admin>svcinfo lshost id name port_count iogrp_count 0 dc1-0031esx 2 4 1 dc1-0032esx 2 4 2 dc1-0024d 2 4 3 dc1-0025d 2 4 4 dc1-0026d 2 4 5 dc1-0027dq 2 4 6 dc1-0028d 2 4 7 dc1-0029d 2 4 8 dc1-0001esx 2 4 9 dc1-0002esx 2 4 [snip] 239 dc1-0071esx 2 4 240 dc1-0072esx 2 4 241 dc1-0073esx 2 4 242 dc1-0048iwsuat 2 1 243 dc1-0047iwsuat 2 1
Want to find out some more information on a particular host? Use lshost again, but specify the hostname.
IBM_2145:dc1-0001svccl:admin>svcinfo lshost dc1-0001esx id 148 name dc1-0001esx port_count 2 type generic mask 1111 iogrp_count 4 WWPN 2101001B32BF64F1 node_logged_in_count 2 state active WWPN 2100001B329F64F1 node_logged_in_count 2 state active
Need to know what I/O Groups a given host is a member of? The lshostiogrp command displays a list of all the I/O groups that are associated with a specified host. More information can be found here.
IBM_2145:dc1-0001svccl:admin>svcinfo lshostiogrp dc1-0001esx id name 0 io_grp0 1 io_grp1 2 io_grp2 3 io_grp3 IBM_2145:dc1-0001svccl:admin>
Jan 5
IBM SVC – svcinfo Basics – Part 1
I was doing an Exchange 2010 storage health check recently and needed some information some volumes presented to the environment from our SVC. My colleague gave me some commands to get the information I needed. I also found a useful website with pretty much identical commands listed. Check out the “SAN Admin Newbie — My notes on Useful Commands” blog, the post I looked at was “Commands to look around the SVC -> svcinfo”, located here. This is basic stuff for the seasoned SVC admin, but I’m really new to it, so I’m putting it up here.
The first order of business was to identify the vdisks that were mapped to one of the hosts I was looking at. To do this I used lshostvdiskmap. The lshostvdiskmap command displays a list of volumes that are mapped to a given host. These are the volumes that are recognized by the specified host. More info can be found here.
IBM_2145:dc1-0001svccl:admin>svcinfo lshostvdiskmap dc1-0041esx id name SCSI_id vdisk_id vdisk_name vdisk_UID 148 dc1-0041esx 4 56 b3-003vol_4R1 60050768018E82BD3800000000000247 148 dc1-0041esx 5 57 b3-003vol_5R2 60050768018E82BD3800000000000248 148 dc1-0041esx 6 58 b3-003vol_6R3 60050768018E82BD3800000000000249 148 dc1-0041esx 7 59 b3-004vol_7R1 60050768018E82BD380000000000024A 148 dc1-0041esx 8 60 b3-004vol_8R2 60050768018E82BD380000000000024B 148 dc1-0041esx 9 61 b3-004vol_9R3 60050768018E82BD380000000000024C 148 dc1-0041esx 10 129 dc1C2T3L010 60050768018E82BD3800000000000253 148 dc1-0041esx 11 130 dc1C2T3L011 60050768018E82BD3800000000000254 148 dc1-0041esx 72 106 B3_3vol_72R0 60050768018E82BD3800000000000233 148 dc1-0041esx 73 127 B3_4vol_73R0 60050768018E82BD3800000000000234
So now I know the vdisks, but what if I want to check the capacity or find out the IO Group or MDisk name? I can use lsvdisk to get the job done. The lsvdisk command displays a concise list or a detailed view of volumes that are recognized by the clustered system. More information on this command can be found here.
IBM_2145:dc1-0001svccl:admin>svcinfo lsvdisk B3_4vol_73R0 id 127 name B3_4vol_73R0 IO_group_id 0 IO_group_name io_grp0 status online mdisk_grp_id 4 mdisk_grp_name G00304ST100007 capacity 700.00GB type striped formatted no mdisk_id mdisk_name FC_id FC_name RC_id RC_name vdisk_UID 60050768018E82BD3800000000000234 throttling 0 preferred_node_id 1 fast_write_state not_empty cache readwrite udid 0 fc_map_count 0 sync_rate 50 copy_count 1
copy_id 0 status online sync yes primary yes mdisk_grp_id 4 mdisk_grp_name G00304ST100007 type striped mdisk_id mdisk_name fast_write_state empty used_capacity 700.00GB real_capacity 700.00GB free_capacity 0.00MB overallocation 100 autoexpand warning grainsize
Great, so what about the MDisk group that that vdisk sits on? Let’s use lsmdiskgrp for that one. The lsmdiskgrp command returns a concise list or a detailed view of MDisk groups visible to the cluster. More information can be found here.
IBM_2145:dc1-0001svccl:admin>svcinfo lsmdiskgrp G00304ST100007 id 4 name G00304ST100007 status online mdisk_count 32 vdisk_count 136 capacity 57.3TB extent_size 2048 free_capacity 454.0GB virtual_capacity 56.85TB used_capacity 56.85TB real_capacity 56.85TB overallocation 99 warning 0 IBM_2145:dc1-0001svccl:admin>
Now let’s find out all the vdisks residing on a given MDisk group. In this example I’ve filtered by
mdisk_grp_name as well as adding the -delim , so that I can dump the output in a csv file and work with it in a spreadsheet application.
IBM_2145:dc1-0001svccl:admin>svcinfo lsvdisk -delim , -filtervalue mdisk_grp_name=G00304ST100007 id,name,IO_group_id,IO_group_name,status,mdisk_grp_id,mdisk_grp_name,capacity,type,FC_id,FC_name,RC_id,RC_name,vdisk_UID,fc_map_count,copy_count,fast_write_state 0,dc1_418D_0,0,io_grp0,online,4,G00304ST100007,1000.00GB,striped,,,,,60050768018E82BD380000000000022A,0,1,not_empty 1,B3-01MITMBX_5R0,0,io_grp0,online,4,G00304ST100007,300.00GB,striped,,,,,60050768018E82BD3800000000000236,0,1,not_empty 5,dc1-0027dq_1,0,io_grp0,online,4,G00304ST100007,150.00GB,striped,,,,,60050768018E82BD3800000000000180,0,1,not_empty 10,CL7dc1_000,0,io_grp0,online,4,G00304ST100007,550.00GB,striped,,,,,60050768018E82BD3800000000000181,0,1,not_empty 11,B3-01RMSQCL_1R1,0,io_grp0,online,4,G00304ST100007,1.00GB,striped,,,,,60050768018E82BD3800000000000182,0,1,empty 16,dc1-0001LMF_R0,0,io_grp0,online,4,G00304ST100007,350.00GB,striped,,,,,60050768018E82BD3800000000000010,0,1,not_empty 24,dc1-0006svm_0,0,io_grp0,online,4,G00304ST100007,50.00GB,striped,,,,,60050768018E82BD3800000000000018,0,1,not_empty 25,dc1-0006svm_1,0,io_grp0,online,4,G00304ST100007,20.00GB,striped,,,,,60050768018E82BD3800000000000019,0,1,not_empty 29,dc1-0001vdq_1,0,io_grp0,online,4,G00304ST100007,100.00GB,striped,,,,,60050768018E82BD380000000000001D,0,1,not_empty 33,dc1-WIC864DQ_0,0,io_grp0,online,4,G00304ST100007,200.00GB,striped,,,,,60050768018E82BD3800000000000021,0,1,empty 36,dc1-0051dp_r9,0,io_grp0,online,4,G00304ST100007,50.00GB,striped,,,,,60050768018E82BD3800000000000024,0,1,empty 39,dc1-0052dq_0,0,io_grp0,online,4,G00304ST100007,50.00GB,striped,,,,,60050768018E82BD3800000000000027,0,1,empty [snip] 440,dc1-0006qcl_1,0,io_grp0,online,4,G00304ST100007,270.00GB,striped,,,,,60050768018E82BD38000000000001FE,0,1,empty 444,dc1-0006qcl_5,0,io_grp0,online,4,G00304ST100007,150.00GB,striped,,,,,60050768018E82BD3800000000000202,0,1,empty 448,dc1-0006qcl_9,0,io_grp0,online,4,G00304ST100007,380.00GB,striped,,,,,60050768018E82BD3800000000000206,0,1,empty 452,dc1-0006qcl_13,0,io_grp0,online,4,G00304ST100007,300.00GB,striped,,,,,60050768018E82BD380000000000020A,0,1,empty 454,dc1-0006qcl_15,0,io_grp0,online,4,G00304ST100007,50.00GB,striped,,,,,60050768018E82BD380000000000020C,0,1,empty 455,dc1-0006qcl_16,0,io_grp0,online,4,G00304ST100007,2.00GB,striped,,,,,60050768018E82BD380000000000020D,0,1,empty 456,dc1-0006qcl_17,0,io_grp0,online,4,G00304ST100007,2.00GB,striped,,,,,60050768018E82BD380000000000020E,0,1,empty 457,b3-0007iwsuat_1,0,io_grp0,online,4,G00304ST100007,100.00GB,striped,,,,,60050768018E82BD380000000000020F,0,1,not_empty IBM_2145:dc1-0001svccl:admin>
Jan 5
Brocade – 2 simple, yet useful commands
A few Brocade CLI commands to lighten the post-Christmas mood are in order. These two are very basic, but I invariably forget them at inopportune moments. Like when I realise I’ve already logged in to 20 switches and haven’t retrieved quite all of the information that I should have. Without further ado, I present to you firmwareShow and chassisShow.
login as: username username@fc1.dc1.network.internal's password:
fc1_dc1:username> firmwareshow Slot Name Appl Primary/Secondary Versions Status -------------------------------------------------------------------------- 5 CP0 FOS v6.3.0d STANDBY v6.3.0d 6 CP1 FOS v6.3.0d ACTIVE * v6.3.0d 7 FR4-18i FOS v6.3.0d v6.3.0d
fc1_dc1:username> chassisshow
Chassis Backplane Revision: D3
SW BLADE Slot: 1 Header Version: 2 Power Consume Factor: -55 Factory Part Num: 60-0200447-02 Factory Serial Num: SR040001175 Manufacture: Day: 19 Month: 2 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days
SW BLADE Slot: 2 Header Version: 2 Power Consume Factor: -55 Factory Part Num: 60-0200447-02 Factory Serial Num: SR040002467 Manufacture: Day: 18 Month: 3 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1947 days Time Awake: 338 days
SW BLADE Slot: 3 Header Version: 2 Power Consume Factor: -55 Factory Part Num: 60-0200447-02 Factory Serial Num: SR040003307 Manufacture: Day: 6 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days
SW BLADE Slot: 4 Header Version: 2 Power Consume Factor: -55 Factory Part Num: 60-0200447-02 Factory Serial Num: SR040003236 Manufacture: Day: 6 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1946 days Time Awake: 338 days
CP BLADE Slot: 5 Header Version: 2 Power Consume Factor: -70 Factory Part Num: 60-0201837-02 Factory Serial Num: SP040002669 Manufacture: Day: 7 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1935 days Time Awake: 327 days
CP BLADE Slot: 6 Header Version: 2 Power Consume Factor: -70 Factory Part Num: 60-0201837-03 Factory Serial Num: SP040002934 Manufacture: Day: 18 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 479 days Time Awake: 338 days
AP BLADE Slot: 7 Header Version: 2 Power Consume Factor: -180 Factory Part Num: 60-0000659-14 Factory Serial Num: UG030001298 Manufacture: Day: 6 Month: 9 Year: 2007 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1213 days Time Awake: 338 days
POWER SUPPLY Unit: 1 Header Version: 2 Power Consume Factor: 1000 Factory Part Num: 23-0200006-02 Factory Serial Num: FL2L9004150 Manufacture: Day: 27 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1944 days Time Awake: 338 days
POWER SUPPLY Unit: 2 Header Version: 2 Power Consume Factor: 1000 Factory Part Num: 23-0200006-02 Factory Serial Num: FL2L9003839 Manufacture: Day: 27 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days
POWER SUPPLY Unit: 3 Header Version: 2 Power Consume Factor: 1000 Factory Part Num: 23-0200006-03 Factory Serial Num: FL2L9025027 Manufacture: Day: 11 Month: 10 Year: 2007 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1195 days Time Awake: 338 days
POWER SUPPLY Unit: 4 Header Version: 2 Power Consume Factor: 1000 Factory Part Num: 23-0200006-03 Factory Serial Num: FL2L9025921 Manufacture: Day: 17 Month: 10 Year: 2007 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1195 days Time Awake: 338 days
FAN Unit: 1 Header Version: 2 Power Consume Factor: -50 Factory Part Num: 60-0201665-01 Factory Serial Num: FM060012488 Manufacture: Day: 27 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days
FAN Unit: 2 Header Version: 2 Power Consume Factor: -50 Factory Part Num: 60-0201665-01 Factory Serial Num: FM060012489 Manufacture: Day: 27 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days
FAN Unit: 3 Header Version: 2 Power Consume Factor: -50 Factory Part Num: 60-0201665-01 Factory Serial Num: FM060012474 Manufacture: Day: 27 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days
CHASSIS/WWN Unit: 1 (in same assembly as WWN Unit: 2) Header Version: 2 Power Consume Factor: -3 Factory Part Num: 60-0311101-02 Factory Serial Num: QV060003228 Manufacture: Day: 27 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days ID: IBM0000CA Part Num: 0021090000M48 Serial Num: 100308A
WWN Unit: 2 (in same assembly as WWN Unit: 1) Header Version: 2 Power Consume Factor: -3 Factory Part Num: 60-0200834-01 Factory Serial Num: FS040004494 Manufacture: Day: 27 Month: 4 Year: 2006 Update: Day: 4 Month: 1 Year: 2012 Time Alive: 1945 days Time Awake: 338 days
Chassis Factory Serial Num: QV060003448
fc1_dc1:username>
Dec 20
Updated Article – Storage Design Principles
I’ve updated the Storage Design Principles document with a brief discussion on how expanding FAST VP pools can be “teh suck”, and some brief information on IBM SDD. Tell your friends.
Dec 15
QNAP – How to repair RAID brokenness – Redux
I did a post a little while ago (you can see it here) that covered using mdadm to repair a munted RAID config on a QNAP NAS. So I popped another disk recently, and took the opportunity to get some proper output. Ideally you’ll want to use the web interface on the QNAP to do this type of thing but sometimes it no worky. So here you go.
Stop everything on the box.
[~] # /etc/init.d/services.sh stop
Stop service: recycled.sh mysqld.sh atalk.sh ftp.sh bt_scheduler.sh btd.sh ImRd.sh init_iTune.sh twonkymedia.sh Qthttpd.sh crond.sh nfs smb.sh lunportman.sh iscsitrgt.sh nvrd.sh snmp rsyslog.sh qsyncman.sh iso_mount.sh antivirus.sh .
Stop qpkg service: Disable Optware/ipkg
Shutting down SlimServer...
Stopping SqueezeboxServer 7.5.1-30836 (please wait) .... OK.
Stopping thttpd-ssods .. OK.
/etc/rcK.d/QK107Symform: line 48: /share/MD0_DATA/.qpkg/Symform/Symform.sh: No such file or directory
(By the way it really annoys me when I’ve asked software to remove itself and it doesn’t cleanly uninstall – I’m looking at you Symform plugin)
Unmount the volume
[~] # umount /dev/md0
Stop the array
[~] # mdadm -S /dev/md0
mdadm: stopped /dev/md0
Reassemble the volume
[~] # mdadm --assemble /dev/md0 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3 /dev/sde3 /dev/sdf3
mdadm: /dev/md0 has been started with 5 drives (out of 6).
Wait, wha? What about that other disk that I think is okay?
[~] # mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri May 22 21:05:28 2009
Raid Level : raid5
Array Size : 9759728000 (9307.60 GiB 9993.96 GB)
Used Dev Size : 1951945600 (1861.52 GiB 1998.79 GB)
Raid Devices : 6
Total Devices : 5
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Wed Dec 14 19:09:25 2011
State : clean, degraded
Active Devices : 5
Working Devices : 5
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 7c440c84:4b9110fe:dd7a3127:178f0e97
Events : 0.4311172
Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 0 0 1 removed
2 8 35 2 active sync /dev/sdc3
3 8 51 3 active sync /dev/sdd3
4 8 67 4 active sync /dev/sde3
5 8 83 5 active sync /dev/sdf3
Or in other words
[~] # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md0 : active raid5 sda3[0] sdf3[5] sde3[4] sdd3[3] sdc3[2]
9759728000 blocks level 5, 64k chunk, algorithm 2 [6/5] [U_UUUU]
md6 : active raid1 sdf2[2](S) sde2[3](S) sdd2[4](S) sdc2[1] sda2[0]
530048 blocks [2/2] [UU]
md13 : active raid1 sdb4[2] sdc4[0] sdf4[5] sde4[4] sdd4[3] sda4[1]
458880 blocks [6/6] [UUUUUU]
bitmap: 0/57 pages [0KB], 4KB chunk
md9 : active raid1 sdf1[1] sda1[0] sdc1[4] sdd1[3] sde1[2]
530048 blocks [6/5] [UUUUU_]
bitmap: 34/65 pages [136KB], 4KB chunk
unused devices: <none>
So, when you see [U_UUUU] you’ve got a disk missing, but you knew that already. You can add it back in to the array thusly.
[~] # mdadm --add /dev/md0 /dev/sdb3
mdadm: re-added /dev/sdb3
So let’s check on the progress.
[~] # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md0 : active raid5 sdb3[6] sda3[0] sdf3[5] sde3[4] sdd3[3] sdc3[2]
9759728000 blocks level 5, 64k chunk, algorithm 2 [6/5] [U_UUUU]
[>....................] recovery = 0.0% (355744/1951945600) finish=731.4min speed=44468K/sec
md6 : active raid1 sdf2[2](S) sde2[3](S) sdd2[4](S) sdc2[1] sda2[0]
530048 blocks [2/2] [UU]
md13 : active raid1 sdb4[2] sdc4[0] sdf4[5] sde4[4] sdd4[3] sda4[1]
458880 blocks [6/6] [UUUUUU]
bitmap: 0/57 pages [0KB], 4KB chunk
md9 : active raid1 sdf1[1] sda1[0] sdc1[4] sdd1[3] sde1[2]
530048 blocks [6/5] [UUUUU_]
bitmap: 34/65 pages [136KB], 4KB chunk
unused devices: <none>
[~] #
And it will rebuild. Hopefully. Unless the disk is really truly dead. You should probably order yourself a spare in any case.
Dec 12
EMC – naviseccli – how to retrieve an Analyzer archive file
This is a quick and dirty post, but it might be handy if you’re trying to get hold of a current snapshot of a VNX or CX4′s performance. I’ll try and do some more thorough documentation over the summer (that’s now for those of us south of the equator).
In the olden days, you used to have to use archiveretrieve.jar (included with Navisphere CLI) to retrieve Analyzer archive files. Now it’s built in to naviseccli. So here’s how to create and download an archive file from your VT-420.
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
C:\Documents and Settings\dan>naviseccli -h SPA -user dan -scope 2 analyzer -archiveretrieve -file test.nar -location c:\temp -v
Enter password:
Launching create archive
Creation of archive is complete.
Attempting to retrieve file from array
Retrieve is complete.
C:\Documents and Settings\dan>cd \temp
C:\temp>dir
Volume in drive C has no label.
Volume Serial Number is 74AA-B144
Directory of C:\temp
12/12/2011 07:40 AM <DIR> .
12/12/2011 07:40 AM <DIR> ..
12/12/2011 07:40 AM 1,178,304 test.nar
20/01/2010 12:17 PM 38,000 trap_eventlog.cfg
22/10/2010 10:52 AM 0 vlan.log
3 File(s) 1,216,304 bytes
0 Dir(s) 8,520,433,664 bytes free
C:\temp>
In this example I’m using -scope 2 to specify that I’m using LDAP credentials, -file to specify a file name for the archive (traditionally with a .nar extension), -location to specify the location of the downloaded file, and -v to tell me what’s going on. I hope that’s useful and like I said I’ll try and talk some more about scripted archive manipulation and stuff in the near future.
Dec 6
EMC – DIY Heatmaps
My friend Mat has developed a pretty cool script that can make pretty pictures out of Analyzer files from CLARiiON and VNX arrays. He’s decided to release it to the world, so you can download it here. I’ve also added the following instructions to a pdf document available here. Here’s a sample output file from the script. He’s after feedback as well, so send it through and I’ll make sure it gets to him.
Purpose:
The heatmap script allows you to generate heatmaps of various metrics over time from NAR files generated from EMC Clariion/VNX arrays.
Requirements/Notes:
- This script was developed and tested using Strawberry Perl (v5.12.3), but there is no reason it won’t work with other flavours or versions of Perl, but it is possible that other perl modulse other than the one listed below may need to be installed
- It requires the Text::CSV module for Perl. Available here http://search.cpan.org/CPAN/authors/id/M/MA/MAKAMAKA/Text-CSV-1.21.tar.gz , if you can get cpan working (run “cpan Text::CSV”) it will be easy to install, otherwise you’ll have to do it manually …
Unzip the files into eg C:\Text-CSV-1.21 and run the following commands
C:\Text-CSV-1.21>perl Makefile.PL
C:\Text-CSV-1.21>dmake
C:\Text-CSV-1.21>dmake test
C:\Text-CSV-1.21>dmake install
- The script uses the Microsoft tool logparser.exe to manipulate various CSV files available here http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=24659
- The script uses naviseccli to convert the NAR files into CSV files.
- At the moment the script will only run on a windows server/PC due to its reliance on the logparser tool, if people are interested I will investigate other tools available in the Linux/Unix worlds.
- The default min/max figures that I am using may be unrealistic, I am by no means an expert in analysing the performance of an array, any feedback is welcome.
Usage:
The following are the command line options available for the script
–logparser <path\filename>
–naviseccli <path\filename>
These options allow you to set the location of the various 3rd party binaries that the script relies on
–avg_interval <seconds>
The interval that the analyser stats are averaged down to, ie 1800 seconds will set the average interval to 30 minutes
–nar_file <filename>
The input NAR file(s), more than one NAR file can be specified
–out <filename>
The filename of the generated HTLM output file, the default is HEATMAP.HTML
–array_name <name>
The name of the array, this is for reporting purposes only
–summary
Generate a summary for each attribute type, displaying minimum, average and maximum figures for each metric
|
Metric |
Min |
Max |
Avg |
|
Disk Utilization (%) |
0.27 |
97.38 |
8.16 |
|
Disk Total Throughput (IO/s) |
0.72 |
309.06 |
23.03 |
|
SP Utilization (%) |
38.03 |
61.11 |
49.78 |
|
SP Total Throughput (IO/s) |
5588.70 |
25693.24 |
10088.56 |
–mash
–mashonly
This generated a mash table for each metric type (currently only Storage Processor and Disk), averaging each of the metrics for each type down into a single table, allowing you to combine multiple metrics into a single table.
The –mash option will display the mash-up table alongside the selected metrics, and the –mashonly options will only display the mash-up tables.
–get_drive_type
–array_ip <ip addresS>
This option allows you to query the array (as it is currently configured) to determine drive types (currently only SATA II, FIBRE CHANNEL, and SATA II SSD), currently this options only affects the IOPS calculations for drives.
–user_id <user id>
–pwd <password>
–scope <0|1>
These options are only used in conjunction with the –get_drive_type option, if you have cached credentials for the array configured then these options should not be necessary.
–display_drive_type
This option is only used in conjunction with the –get_drive_type option, it will display another drive table, and allow you to view the different drive type, drive size, pool and RAID Group layouts.
–disk_highlight
This option is only used in conjunction with the –get_drive_type and –display_drive_type options, it will highlight the corresponding disks in the other heatmaps, it will also allow you to select all of the drives that have the same attributes as displayed by the –display_drive_type option.
–config_file <filename>
–generate_config <filename>
These options allow you to generate a configuration file, using the –generate_config option, this will generate a config file with all of the default attributes, and to use a configuration file using the –config_file option.
–help
This option will display the following help information.
Heatmap Generator
Usage: heatmap.3.010.pl <options>
Where options can be the following:
–logparser <path\filename> – The path to the logpaser executable (c:/Program Files/Log Parser 2.2/LogParser.exe)
–naviseccli <path\filename> – The path to the naviseccli executable (c:/Program Files/EMC/Navisphere CLI/NaviSECCli.exe)
–avg_interval <seconds> – The interval in seconds that the stats are averaged at (1800 seconds)
–nar_file <filename> – NAR input file(s) this option can be specified multiple times
–out <filename> – The output filename (heatmap.html)
–array_name <name> - Set the name of the array in the report
–summary – Displays a summary of each metric
–mash – Creates a mash-up of each metric per object type, and displays alongside other metrics
–mashonly - Creates a mash-up of each metric per object type, and only displays the mash-ups
–get_drive_type – Query Array to get drive type information
–array_ip <ip addresS> – Set the IP address of the array
–user_id <user id> – Set the user ID to log into the array
–pwd <password> – Set the user password of the array
–scope <0|1> – Set the Scope of the array account
–display_drive_type – Display the drive types in the charts
–disk_highlight – Highlight drives on mouse over
–config_file <filename> – Use a configuration file to set attribute min/maxes
–generate_config <filename> – Generate a configuration file using the defined defaults
–help – This help
–attrib <attribute> – Set the attribute to graph, where attribute can be the following
d_utilization – display stats based on disk utilization (%)
d_iops – display stats based on disk Total Throughput (IOPS)
d_r_iops – display stats based on disk read IOPS
d_w_iops – display stats based on disk write IOPS
d_queue – display stats based on disk Queue Length
d_b_queue – display stats based on disk Average Busy Queue Length
d_response – display stats based on disk Response Time
d_service – display stats based on disk Service Time
d_bandwidth – display stats based on disk Total Bandwidth
d_r_bandwidth – display stats based on disk Read Bandwidth
d_w_bandwidth – display stats based on disk Write Bandwidth
d_r_size – display stats based on disk Read Size
d_w_size – display stats based on disk Write Size
d_seek – display stats based on disk Average Seek Distance
s_utilization – display stats based on SP utilization
s_response – display stats based on SP Response Time
s_bandwidth – display stats based on SP Total Bandwidth
s_iops – display stats based on SP Total Throughput (IOPs)
s_b_queue – display stats based on SP Average Busy Queue Length
s_service – display stats based on SP Service Time
s_c_dirty – display stats based on SP Cache Dirty Pages (%)
s_c_flush - display stats based on SP Cache Flush Ratio
s_c_flush_mb – display stats based on SP Cache MBs Flushed (MB/s)
s_c_hw_flush – display stats based on SP Cache High Water Flush On
s_c_i_flush – display stats based on SP Cache Idle Flush On
s_c_lw_flush – display stats based on SP Cache Low Water Flush Off
s_wc_flush – display stats based on SP Write Cache Flushes/s
s_fc_dirty – display stats based on FAST Cache Dirty Pages (%)
s_fc_flush_mb – display stats based on FAST Cache MBs Flushed (MB/s)
Running the script without any –nar_file options will result in the script prompting the user to supply NAR file(s)
–attrib <attribute>
Allows you to select which attributes you want to display on the heatmap.

