Showing posts with label Multipath. Show all posts
Showing posts with label Multipath. Show all posts

Friday, March 6, 2015

Python script for multipath configuration creation

import os
A = []
B = []
C = 0
LUNPATH = set()
M_LUNPATH = set()
HOST_DEVICE = set()
HOST_DEVICE_LIST = []
HOST_STRING = "Host Device:"
HOST_LUN = {}
p = os.popen('sanlun lun show all', "r")
while 1:
        line = p.readline()
        if not line: break
        #print line
        A = line.split()
        #print len(A)
        if len(A) > 2 :
                controller = A[0]
                lunpathname = A[1]
                print lunpathname, controller
                if lunpathname == "device": continue
                if lunpathname == "lun-pathname": continue
                LUNPATH.add(lunpathname)

                p2 = os.popen('sanlun lun show -p '+controller+":"+lunpathname, "r")
                while 1:
                        line2 = p2.readline()
                        if not line2: break
                        if line2.find(HOST_STRING) != -1 :
                                print line2
                                B = line2.split()
                                print len(B)
                                C = len(B)-1
                                print B[C]
                                HOST_DEVICE.add(B[C])
                                #HOST_DEVICE_LIST.append(B[C])
                                HOST_LUN.update( {B[C]:lunpathname} )



print LUNPATH
for i in LUNPATH:
        # print i
        i = i.replace("/vol/","") # get rid of /vol/
        i = i.replace("/","_") # replace / with _
        M_LUNPATH.add(i)

for i in M_LUNPATH:
        print i

#HOST_DEVICE_LIST.sort()

#for i in HOST_DEVICE_LIST:
#       print i
#       HOST_DEVICE.add(i)

for i in HOST_DEVICE:
        print i

print HOST_LUN

print "mpathconf --enable --with_multipathd y"
print "multipaths {"
for i in HOST_DEVICE:
        #print i
        #print HOST_LUN.get(i)
        j = HOST_LUN.get(i)
        j = j.replace("/vol/","") # get rid of /vol/
        j = j.replace("/","_") # replace / with _
        print "         multipath {"
        print "                 wwid    " + i
        print "                 alias   " + j
        print "         }"

print "}"

print "service multipathd reload"

Tuesday, September 30, 2014

Linux : Multipath

Server A :

# multipath -ll
3600a098044316b37365d436b476e564f dm-2 NETAPP,LUN C-Mode
size=15G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:0:2 sdd 8:48   active ready running
| |- 1:0:1:2 sdg 8:96   active ready running
| |- 2:0:0:2 sdp 8:240  active ready running
| `- 2:0:1:2 sds 65:32  active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 1:0:2:2 sdj 8:144  active ready running
  |- 1:0:3:2 sdm 8:192  active ready running
  |- 2:0:2:2 sdv 65:80  active ready running
  `- 2:0:3:2 sdy 65:128 active ready running
3600a098044316b37305d44353075674e dm-1 NETAPP,LUN C-Mode
size=500G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:2:1 sdi 8:128  active ready running
| |- 1:0:3:1 sdl 8:176  active ready running
| |- 2:0:2:1 sdu 65:64  active ready running
| `- 2:0:3:1 sdx 65:112 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 1:0:0:1 sdc 8:32   active ready running
  |- 1:0:1:1 sdf 8:80   active ready running
  |- 2:0:0:1 sdo 8:224  active ready running
  `- 2:0:1:1 sdr 65:16  active ready running
3600a098044316b37305d44353075674d dm-0 NETAPP,LUN C-Mode
size=500G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:2:0 sdh 8:112  active ready running
| |- 1:0:3:0 sdk 8:160  active ready running
| |- 2:0:2:0 sdt 65:48  active ready running
| `- 2:0:3:0 sdw 65:96  active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 1:0:0:0 sdb 8:16   active ready running
  |- 1:0:1:0 sde 8:64   active ready running
  |- 2:0:0:0 sdn 8:208  active ready running
  `- 2:0:1:0 sdq 65:0   active ready running

Server B:
# multipath -ll
3600a098044316b37365d436b476e564f dm-2 NETAPP,LUN C-Mode
size=15G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:0:2 sdd 8:48   active ready running
| |- 1:0:1:2 sdg 8:96   active ready running
| |- 2:0:0:2 sdp 8:240  active ready running
| `- 2:0:1:2 sds 65:32  active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 1:0:2:2 sdj 8:144  active ready running
  |- 1:0:3:2 sdm 8:192  active ready running
  |- 2:0:2:2 sdv 65:80  active ready running
  `- 2:0:3:2 sdy 65:128 active ready running
3600a098044316b37305d44353075674e dm-1 NETAPP,LUN C-Mode
size=500G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:2:1 sdi 8:128  active ready running
| |- 1:0:3:1 sdl 8:176  active ready running
| |- 2:0:2:1 sdu 65:64  active ready running
| `- 2:0:3:1 sdx 65:112 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 1:0:0:1 sdc 8:32   active ready running
  |- 1:0:1:1 sdf 8:80   active ready running
  |- 2:0:0:1 sdo 8:224  active ready running
  `- 2:0:1:1 sdr 65:16  active ready running
3600a098044316b37305d44353075674d dm-0 NETAPP,LUN C-Mode
size=500G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 1:0:2:0 sdh 8:112  active ready running
| |- 1:0:3:0 sdk 8:160  active ready running
| |- 2:0:2:0 sdt 65:48  active ready running
| `- 2:0:3:0 sdw 65:96  active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 1:0:0:0 sdb 8:16   active ready running
  |- 1:0:1:0 sde 8:64   active ready running
  |- 2:0:0:0 sdn 8:208  active ready running
  `- 2:0:1:0 sdq 65:0   active ready running