Jan 20

EMC – DIY Heatmaps – Updated Version

Category: CLARiiON,EMC,Storage,VNX

Mat has done an updated version of the heatmaps script for CLARiiON with LUN info and good things like that. You can download it here. Updated release notes can be found here. A sample of the output is here. Enjoy, and feel free to send requests for enhancements.

1 comment

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?

 

No comments

Jan 11

EMC – FAST Cache and LUN expansion or shrink operations

Category: CLARiiON,EMC,Storage,VNX

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 :)]

No comments

Jan 6

IBM SVC – svcinfo Basics – Part 2

Category: IBM,Storage,SVC

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>
No comments

Jan 5

IBM SVC – svcinfo Basics – Part 1

Category: IBM,Storage,SVC

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>

 

No comments

Jan 5

Brocade – 2 simple, yet useful commands

Category: Brocade,Storage

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>
 
No comments

Dec 20

Updated Article – Storage Design Principles

Category: CLARiiON,EMC,Storage,VNX

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.

No comments

Dec 15

QNAP – How to repair RAID brokenness – Redux

Category: QNAP,Storage

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.

No comments

Dec 12

EMC – naviseccli – how to retrieve an Analyzer archive file

Category: CLARiiON,EMC,Storage,VNX

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.

No comments

Dec 6

EMC – DIY Heatmaps

Category: CLARiiON,EMC,Storage,VNX

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.

7 comments

Next Page »