How to use pvlinks for manual load balancing

From Wiki-UX.info
Jump to: navigation, search

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.

Authors