AWK TO THE RESCUE 3 – match ASMLib with multipath


27.07.2016
by Kamil Stawiarski

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:

1[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)}'
2DATA01:360002ac0000000000000002a0001a94f dm-5 3PARdata,VV
3size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
4`-+- policy='round-robin 0' prio=50 status=active
5  |- 1:0:0:13 sde  8:64   active ready running
6  |- 2:0:0:13 sdac 65:192 active ready running
7  |- 1:0:1:13 sdq  65:0   active ready running
8  `- 2:0:1:13 sdao 66:128 active ready running
9DATA02:360002ac0000000000000002b0001a94f dm-6 3PARdata,VV
10size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
11`-+- policy='round-robin 0' prio=50 status=active
12  |- 1:0:0:14 sdf  8:80   active ready running
13  |- 2:0:0:14 sdad 65:208 active ready running
14  |- 1:0:1:14 sdr  65:16  active ready running
15  `- 2:0:1:14 sdap 66:144 active ready running
16DATA03:360002ac0000000000000002c0001a94f dm-7 3PARdata,VV
17size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
18`-+- policy='round-robin 0' prio=50 status=active
19  |- 1:0:0:15 sdg  8:96   active ready running
20  |- 2:0:0:15 sdae 65:224 active ready running
21  |- 1:0:1:15 sds  65:32  active ready running
22  `- 2:0:1:15 sdaq 66:160 active ready running
23DATA04:360002ac0000000000000002d0001a94f dm-8 3PARdata,VV
24size=300G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
25`-+- policy='round-robin 0' prio=50 status=active
26  |- 1:0:0:16 sdh  8:112  active ready running
27  |- 2:0:0:16 sdaf 65:240 active ready running
28  |- 1:0:1:16 sdt  65:48  active ready running
29  `- 2:0:1:16 sdar 66:176 active ready running
30GRID01:360002ac000000000000000190001a94f dm-2 3PARdata,VV
31size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
32`-+- policy='round-robin 0' prio=50 status=active
33  |- 1:0:0:10 sdb  8:16   active ready running
34  |- 2:0:0:10 sdy  65:128 active ready running
35  |- 1:0:1:10 sdn  8:208  active ready running
36  `- 2:0:1:10 sdal 66:80  active ready running
37INDEX01:360002ac0000000000000001f0001a94f dm-3 3PARdata,VV
38size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
39`-+- policy='round-robin 0' prio=50 status=active
40  |- 1:0:0:11 sdc  8:32   active ready running
41  |- 2:0:0:11 sdaa 65:160 active ready running
42  |- 1:0:1:11 sdo  8:224  active ready running
43  `- 2:0:1:11 sdam 66:96  active ready running
44INDEX02:360002ac000000000000000200001a94f dm-9 3PARdata,VV
45size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
46`-+- policy='round-robin 0' prio=50 status=active
47  |- 1:0:0:17 sdi  8:128  active ready running
48  |- 2:0:0:17 sdag 66:0   active ready running
49  |- 1:0:1:17 sdu  65:64  active ready running
50  `- 2:0:1:17 sdas 66:192 active ready running
51INDEX03:360002ac000000000000000210001a94f dm-10 3PARdata,VV
52size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
53`-+- policy='round-robin 0' prio=50 status=active
54  |- 1:0:0:18 sdj  8:144  active ready running
55  |- 2:0:0:18 sdah 66:16  active ready running
56  |- 1:0:1:18 sdv  65:80  active ready running
57  `- 2:0:1:18 sdat 66:208 active ready running
58INDEX04:360002ac000000000000000220001a94f dm-11 3PARdata,VV
59size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
60`-+- policy='round-robin 0' prio=50 status=active
61  |- 1:0:0:19 sdk  8:160  active ready running
62  |- 2:0:0:19 sdai 66:32  active ready running
63  |- 1:0:1:19 sdw  65:96  active ready running
64  `- 2:0:1:19 sdau 66:224 active ready running
65INDEX05:360002ac000000000000000230001a94f dm-12 3PARdata,VV
66size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
67`-+- policy='round-robin 0' prio=50 status=active
68  |- 1:0:0:20 sdl  8:176  active ready running
69  |- 2:0:0:20 sdaj 66:48  active ready running
70  |- 1:0:1:20 sdx  65:112 active ready running
71  `- 2:0:1:20 sdav 66:240 active ready running
72REDO01:360002ac000000000000000240001a94f dm-4 3PARdata,VV
73size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
74`-+- policy='round-robin 0' prio=50 status=active
75  |- 1:0:0:12 sdd  8:48   active ready running
76  |- 2:0:0:12 sdab 65:176 active ready running
77  |- 1:0:1:12 sdp  8:240  active ready running
78  `- 2:0:1:12 sdan 66:112 active ready running
79REDO02:360002ac000000000000000250001a94f dm-13 3PARdata,VV
80size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
81`-+- policy='round-robin 0' prio=50 status=active
82  |- 1:0:0:21 sdm  8:192  active ready running
83  |- 2:0:0:21 sdak 66:64  active ready running
84  |- 1:0:1:21 sdz  65:144 active ready running
85  `- 2:0:1:21 sdaw 67:0   active ready running

Contact us

Database Whisperers sp. z o. o. sp. k.
al. Jerozolimskie 200, 3rd floor, room 342
02-486 Warszawa
NIP: 5272744987
REGON:362524978
+48 508 943 051
+48 661 966 009
info@ora-600.pl

Newsletter Sign up to be updated