Grow a Netapp LUN managed by Device Mapper and LVM
Keep in mind all the different levels of storage abstraction we'll be working with
- Ext3 filesystem
- LVM logical volume
- LVM physical volume
- Multipath device
- Block devices
- Netapp lun
Take note of current configuration on netapp:
lun show
on linux host:
fdisk -l multipath -ll pvdisplay vgdisplay lvdisplay
Grow lun on netapp:
lun resize <volname> <newsize> lun resize /vol/db/db4_data 500g
Rescan devices:
echo 1 > /sys/block/sda/device/rescan echo 1 > /sys/block/sdb/device/rescan echo 1 > /sys/block/sdc/device/rescan echo 1 > /sys/block/sdd/device/rescan
You should see the new size in fdisk for /dev/sda - /dev/sdd:
fdisk -l
Drop into multipath shell to resize multipath device (control-d to exit):
multipathd -k multipathd> show paths multipathd> show maps multipathd> del path sda multipathd> add path sda multipathd> del path sdb multipathd> add path sdb multipathd> del path sdc multipathd> add path sdc multipathd> del path sdd multipathd> add path sdd multipathd> show paths multipathd> show maps multipathd> resize map <mapname from show maps earlier>
multipath should now show new size of multipath device:
multipath -ll
resize LVM physical volume (the argument will have been the sysfs column from show maps):
pvresize /dev/dm-4
vgdisplay should now show free space in the volume group:
vgdisplay
resize LVM logical volume:
lvextend -L+50G /dev/vg-analysis/analysis1-data
grow filesystem:
resize2fs /dev/vg1/db4-data
restart multipathd:
/etc/init.d/multipathd restart