How to use pvlinks for manual load balancing
This article explains how to distribute the alternate paths of a LVM Volume Group round-robin style, to obtain some level of I/O load balancing when not multipathing software is available.
Abstract
This article explains how to distribute the alternate paths of a LVM Volume Group round-robin style, to obtain some level of I/O load balancing when not multipathing software is available.
Work in progress
Procedure
I checked the sar -d. The that sar is reporting looks like to be on the /dev/vg00 disks:
/dev/vg00 /dev/dsk/c0t6d0 /dev/dsk/c4t6d0
Normally that may be due to swap pagging.
I would like to the output of the following command to check the state of the swap:
# swapinfo -tam
# kmtune
On the other side of the problem, looking on your lvmtab, looks like that indeed it may be posible to balance the IO alternating the primary | alternate links. Let's looks as an example, the "/dev/vg_psoft_t"
/dev/vg_psoft_t
Looks to me that you have 16 physical volumes, with 2 alternate paths. You will need a vgdisplay -v /dev/vg_psoft_t to verify that.
Primary ------------------ /dev/dsk/c81t7d0 /dev/dsk/c81t7d1 <--- vgreduce | vgextend /dev/dsk/c81t7d3 /dev/dsk/c81t8d1 <--- vgreduce | vgextend /dev/dsk/c81t9d5 /dev/dsk/c81t9d6 <--- vgreduce | vgextend /dev/dsk/c81t10d3 /dev/dsk/c81t11d1 <--- vgreduce | vgextend /dev/dsk/c81t11d2 /dev/dsk/c81t11d7 <--- vgreduce | vgextend /dev/dsk/c81t12d5 /dev/dsk/c81t12d6 <--- vgreduce | vgextend /dev/dsk/c82t14d1 /dev/dsk/c82t14d2 <--- vgreduce | vgextend /dev/dsk/c82t14d5 /dev/dsk/c82t14d6 <--- vgreduce | vgextend Alternate ------------------ /dev/dsk/c87t7d0 /dev/dsk/c87t7d1 /dev/dsk/c87t7d3 /dev/dsk/c87t8d1 /dev/dsk/c87t9d5 /dev/dsk/c87t9d6 /dev/dsk/c87t10d3 /dev/dsk/c87t11d1 /dev/dsk/c87t11d2 /dev/dsk/c87t11d7 /dev/dsk/c87t12d5 /dev/dsk/c87t12d6 /dev/dsk/c88t14d1 /dev/dsk/c88t14d2 /dev/dsk/c88t14d5 /dev/dsk/c88t14d6
So the plan will be to vgreduce & vgextend every "even" current primary path. That way, the second controller will handle half the I/O of the system.
It will be a good idea to keep a document with a table of the controller paths vs the LVM distribution. That way you will always know which dsf belongs to on fc controller and witch to the other
And ioscan -fnkC and the vgdisplay will help you to handle that.