Online resizing of multipath devices in Linux dm-multipath

Linux doesn’t automatically re-size multipath devices, so this procedure must be used to have online re-sizing of multipath. (Offline re-size is automatic, just remove the mapping and reload)

  • this example will use multipath device /dev/mpath/testdisk, with scsi disks /dev/sdx and /dev/sdy

  • Resize the lun on the underlying storage layer (iscsi / san)

  • Check which sd? devices are relevant, and re-scan these:

    • multipath -ll testdisk

    • blockdev –rereadpt /dev/sdx

    • blockdev –rereadpt /dev/sdy

    • blockdev –getsz /dev/sdx

    • blockdev –getsz /dev/sdy

  • Take note of the new size returned by getsz.

  • Dump the dmsetup table to a file (and a backup)

    • dmsetup table testdisk | tee mapping.bak mapping.cur

  • Edit the table stored in ‘mapping.cur’

    • vi mapping.cur, replace field 2 (size) with the new size from getsz

  • Suspend I/O, reread the table, and resume I/O

    • dmsetup suspend testdisk; dmsetup reload testdisk mapping.cur; dmsetup resume testdisk

  • The multipath device should now be resized:

  • multipath -ll

You can now resize the filesystem on the multipath device, or the LVM-PV if you use LVM on the LUN.