← All field notes

AWK TO THE RESCUE 3 – match ASMLib with multipath

This will be just short article with very simple trick, showing how to match the ASMLib devices with actual multipath devices.
I’m sure there is a simpler way… but I just love using AWK πŸ™‚ If you know a simpler or more elegant solution – please post it in the comments section.

My solution looks like this:

ora600@lab ~ / text#01
[root@rac-2 ~]# ls -al /dev/oracleasm/disks/ | awk '/^brw/ {printf($NF": ") ; system("ls -al /dev/dm-* | egrep \"" $5"[ ]+"$6"\"")}' | awk '{printf($1" "); system("cat /sys/block/"substr($NF,6)"/dm/name")}' | awk '{printf($1); system("multipath -ll " $2)}'
DATA01:360002ac0000000000000002a0001a94f dm-5 3PARdata,VV
size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:13 sde  8:64   active ready running
  |- 2:0:0:13 sdac 65:192 active ready running
  |- 1:0:1:13 sdq  65:0   active ready running
  `- 2:0:1:13 sdao 66:128 active ready running
DATA02:360002ac0000000000000002b0001a94f dm-6 3PARdata,VV
size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:14 sdf  8:80   active ready running
  |- 2:0:0:14 sdad 65:208 active ready running
  |- 1:0:1:14 sdr  65:16  active ready running
  `- 2:0:1:14 sdap 66:144 active ready running
DATA03:360002ac0000000000000002c0001a94f dm-7 3PARdata,VV
size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:15 sdg  8:96   active ready running
  |- 2:0:0:15 sdae 65:224 active ready running
  |- 1:0:1:15 sds  65:32  active ready running
  `- 2:0:1:15 sdaq 66:160 active ready running
DATA04:360002ac0000000000000002d0001a94f dm-8 3PARdata,VV
size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:16 sdh  8:112  active ready running
  |- 2:0:0:16 sdaf 65:240 active ready running
  |- 1:0:1:16 sdt  65:48  active ready running
  `- 2:0:1:16 sdar 66:176 active ready running
GRID01:360002ac000000000000000190001a94f dm-2 3PARdata,VV
size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:10 sdb  8:16   active ready running
  |- 2:0:0:10 sdy  65:128 active ready running
  |- 1:0:1:10 sdn  8:208  active ready running
  `- 2:0:1:10 sdal 66:80  active ready running
INDEX01:360002ac0000000000000001f0001a94f dm-3 3PARdata,VV
size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:11 sdc  8:32   active ready running
  |- 2:0:0:11 sdaa 65:160 active ready running
  |- 1:0:1:11 sdo  8:224  active ready running
  `- 2:0:1:11 sdam 66:96  active ready running
INDEX02:360002ac000000000000000200001a94f dm-9 3PARdata,VV
size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:17 sdi  8:128  active ready running
  |- 2:0:0:17 sdag 66:0   active ready running
  |- 1:0:1:17 sdu  65:64  active ready running
  `- 2:0:1:17 sdas 66:192 active ready running
INDEX03:360002ac000000000000000210001a94f dm-10 3PARdata,VV
size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:18 sdj  8:144  active ready running
  |- 2:0:0:18 sdah 66:16  active ready running
  |- 1:0:1:18 sdv  65:80  active ready running
  `- 2:0:1:18 sdat 66:208 active ready running
INDEX04:360002ac000000000000000220001a94f dm-11 3PARdata,VV
size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:19 sdk  8:160  active ready running
  |- 2:0:0:19 sdai 66:32  active ready running
  |- 1:0:1:19 sdw  65:96  active ready running
  `- 2:0:1:19 sdau 66:224 active ready running
INDEX05:360002ac000000000000000230001a94f dm-12 3PARdata,VV
size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:20 sdl  8:176  active ready running
  |- 2:0:0:20 sdaj 66:48  active ready running
  |- 1:0:1:20 sdx  65:112 active ready running
  `- 2:0:1:20 sdav 66:240 active ready running
REDO01:360002ac000000000000000240001a94f dm-4 3PARdata,VV
size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:12 sdd  8:48   active ready running
  |- 2:0:0:12 sdab 65:176 active ready running
  |- 1:0:1:12 sdp  8:240  active ready running
  `- 2:0:1:12 sdan 66:112 active ready running
REDO02:360002ac000000000000000250001a94f dm-13 3PARdata,VV
size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 1:0:0:21 sdm  8:192  active ready running
  |- 2:0:0:21 sdak 66:64  active ready running
  |- 1:0:1:21 sdz  65:144 active ready running
  `- 2:0:1:21 sdaw 67:0   active ready running
86 LINESTEXT / UTF-8

Code listings

#01 text 86 lines
END OF FIELD NOTE / 2016-07-27

Keep asking why. Keep looking deeper.

← Back to the blog