[dm-devel] resizing multipathed luns attached to EMC cx500

Sharif Nassar lists-dmdevel at mrwacky.com
Wed Mar 29 01:36:58 UTC 2006


Hi,

I'm running latest greatest RHEL 4 kernel, device-mapper tools, etc on a 
Sun V40z, using dual Qlogic 2340 HBA attached to Brocade SAN (EMC badged 
3850), tied to our EMC CX500.

I'm trying to determine if it's possible to resize a multipathed LUN while 
there are active LVM2 volume groups.

Lots of searching, and list archive trawling has told me that I should be 
able to just invoke multipath from the command line, and it will see the 
new size, and I run merrily along with pvresize and lvresize..

After expanding the lun in navisphere, however, i can't see the new size 
of the block device without deactivating all VG on the multipathed 
device-mapped device.

Here is the test LUN, that the OS sees as 8GB, even though it's been grown 
on EMC to 19GB:

# multipath -l mpath3
mpath3 (3600601608a9112009cd9fafafebdda11)
[size=8 GB][features="1 queue_if_no_path"][hwhandler="1 emc"]
\_ round-robin 0 [active]
  \_ 1:0:1:2 sdf 8:80  [active][ready]
  \_ 2:0:1:2 sdj 8:144 [active][ready]
\_ round-robin 0 [enabled]
  \_ 1:0:0:2 sdd 8:48  [active][ready]
  \_ 2:0:0:2 sdh 8:112 [active][ready]

  vgchange -an test3
   0 logical volume(s) in volume group "test3" now active
[root at halfoat.ds ~]# multipath -l mpath3
mpath3 (3600601608a9112009cd9fafafebdda11)
[size=8 GB][features="1 queue_if_no_path"][hwhandler="1 emc"]
\_ round-robin 0 [active]
  \_ 1:0:1:2 sdf 8:80  [active][ready]
  \_ 2:0:1:2 sdj 8:144 [active][ready]
\_ round-robin 0 [enabled]
  \_ 1:0:0:2 sdd 8:48  [active][ready]
  \_ 2:0:0:2 sdh 8:112 [active][ready]

Next, turn off the VG, and flush multipath table
# vgchange -an test3
   0 logical volume(s) in volume group "test3" now active
# multipath -f mpath3

# for i in f j d h ; do blockdev --getsize /dev/sd$i ; done
39845888
39845888
39845888
39845888

BANG, it's got the new size:
# multipath
create: mpath3 (3600601608a9112009cd9fafafebdda11)
[size=19 GB][features="1 queue_if_no_path"][hwhandler="1 emc"]
\_ round-robin 0 [prio=2]
  \_ 1:0:1:2 sdf 8:80  [ready]
  \_ 2:0:1:2 sdj 8:144 [ready]
\_ round-robin 0
  \_ 1:0:0:2 sdd 8:48  [ready]
  \_ 2:0:0:2 sdh 8:112 [ready]

Next, I grow the LUN again on EMC, and try to skip some steps..

# for i in f j d h ; do blockdev --rereadpt /dev/sd$i ; done
# multipath
device-mapper: dm-emc: long trespass command will be send
device-mapper: dm-emc: honor reservation bit will not be set (default)
device-mapper: device 8:80 too small for target
device-mapper: dm-multipath: error getting device
device-mapper: error adding target to table
device-mapper ioctl cmd 9 failed: Invalid argument


So, yeah, is there a way to get dm to see the new size of the block device 
without:  un mounting all fs, and vgchange all volgroups on the device ?

thanks

-sharif




More information about the dm-devel mailing list