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)}' |
2 | DATA01:360002ac0000000000000002a0001a94f dm-5 3PARdata,VV |
3 | size=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 |
9 | DATA02:360002ac0000000000000002b0001a94f dm-6 3PARdata,VV |
10 | size=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 |
16 | DATA03:360002ac0000000000000002c0001a94f dm-7 3PARdata,VV |
17 | size=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 |
23 | DATA04:360002ac0000000000000002d0001a94f dm-8 3PARdata,VV |
24 | size=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 |
30 | GRID01:360002ac000000000000000190001a94f dm-2 3PARdata,VV |
31 | size=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 |
37 | INDEX01:360002ac0000000000000001f0001a94f dm-3 3PARdata,VV |
38 | size=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 |
44 | INDEX02:360002ac000000000000000200001a94f dm-9 3PARdata,VV |
45 | size=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 |
51 | INDEX03:360002ac000000000000000210001a94f dm-10 3PARdata,VV |
52 | size=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 |
58 | INDEX04:360002ac000000000000000220001a94f dm-11 3PARdata,VV |
59 | size=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 |
65 | INDEX05:360002ac000000000000000230001a94f dm-12 3PARdata,VV |
66 | size=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 |
72 | REDO01:360002ac000000000000000240001a94f dm-4 3PARdata,VV |
73 | size=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 |
79 | REDO02:360002ac000000000000000250001a94f dm-13 3PARdata,VV |
80 | size=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 |