idiots guide to striping?

idiots guide to striping?

Post by John Dun » Mon, 19 Jun 2000 04:00:00



How can I ensure that a single process, writing a large file spreads the
file over more than one disk. I have a volume group with six disks, but only
one disk is being used by this process, which is suffering from i-o waits.

Inter policy is set to maximum.

Is there any thing else I can do?

John

 
 
 

idiots guide to striping?

Post by artu » Tue, 20 Jun 2000 04:00:00


Yep, configure striping on these six disks.Rememeber to give stripe size not too
small if you have large files on your filesystem.

Artur


> How can I ensure that a single process, writing a large file spreads the
> file over more than one disk. I have a volume group with six disks, but only
> one disk is being used by this process, which is suffering from i-o waits.

> Inter policy is set to maximum.

> Is there any thing else I can do?

> John


 
 
 

idiots guide to striping?

Post by Austin Gresha » Wed, 21 Jun 2000 04:00:00


John:

You have two options in this case:

1)  Use AIX "true" striping when creating the LV that this file will reside
on.  This splits the LV into chunks of "stripe size" across multiple hdisks.
This is good for a process with a lot of random i/o.  As an example:

    # mklv -y stripelv -S4K datavg 3 hdiskx hdisky hdiskz...

2) For sequential i/o (which it sounds like you're using) it may be better
to use "spreading" which is creating an LV across multiple hdisks, but not
using the "stripe size" parameter.  Some people also call this striping, or
pseudo-striping.  This will allocate the LV across multiple hdisks, but
doesn't require each block to be allocated on a separate PV, instead it
"stripes" in units of PP.  An example of this would be:

    # mklv -y spreadlv -e x datavg 3 hdiskx hdisky hdiskz...

The key here is the "-e x" parameter, which you referenced below, and
specifying which hdisks to spread the LV across.

If you've already created an LV, but it doesn't span multiple hdisks, then
neither will the file, regardless of the Inter-Physical policy.  Also, AIX
will allocate space in the file from the first block to the last block, so
if the LV is 3MB in size, and the file is 3MB in size, (and we'll pretend
your PP size is 1MB) then the first 1MB would reside on the first hdisk,
when that is "full", then it will span to the next hdisk and so on.  If the
file was only 1MB, and the LV was 3MB, then only the first 1MB of the LV
would be used, and it may all reside on the first disk.  Again, for
sequential file access, this method is preferred.  For random access, use
the first method to prevent hot spots.

Hopefully I didn't leave anything out. I was multitasking while writing this
:)

Good Luck

-Austin


Quote:> How can I ensure that a single process, writing a large file spreads the
> file over more than one disk. I have a volume group with six disks, but
only
> one disk is being used by this process, which is suffering from i-o waits.

> Inter policy is set to maximum.

> Is there any thing else I can do?

> John

 
 
 

idiots guide to striping?

Post by Norman Levi » Wed, 21 Jun 2000 04:00:00



> John:

> You have two options in this case:

> 1)  Use AIX "true" striping when creating the LV that this file will reside
> on.  This splits the LV into chunks of "stripe size" across multiple hdisks.
> This is good for a process with a lot of random i/o.  

** I don't think this is true.  Striping is a way of phsyically splitting data
across drives that would normally be contiguous.  That way, sequential operations which
would hit a single drive can now be split across several drives.

As an example:

Quote:

>     # mklv -y stripelv -S4K datavg 3 hdiskx hdisky hdiskz...

> 2) For sequential i/o (which it sounds like you're using) it may be better

** again, I don't think this is true.  If I have an old world volume that I am randomly
accessing, then I have as many random requests for the upper 1/4 of the physical disk as
the lower 1/4 of the disk.  However, since all the data is in one drive, I am serialized
on the drive.  However, if I create a logical volume with the logical partitions allocated
across 4 real drives, then the random requests have just as good a chance as hitting the
upper 1/4 of the lv (now on one physical drive) as it does for the lower 1/4 of the drive.
Again, this has the potential of having overlapped I/O instead of single thread on
a single physical dirve.

Quote:> to use "spreading" which is creating an LV across multiple hdisks, but not
> using the "stripe size" parameter.  Some people also call this striping, or
> pseudo-striping.

** some people call this "poor mans striping"

  This will allocate the LV across multiple hdisks, but

> doesn't require each block to be allocated on a separate PV, instead it
> "stripes" in units of PP.  An example of this would be:

>     # mklv -y spreadlv -e x datavg 3 hdiskx hdisky hdiskz...

> The key here is the "-e x" parameter, which you referenced below, and
> specifying which hdisks to spread the LV across.

> If you've already created an LV, but it doesn't span multiple hdisks, then
> neither will the file, regardless of the Inter-Physical policy.  Also, AIX
> will allocate space in the file from the first block to the last block, so
> if the LV is 3MB in size, and the file is 3MB in size, (and we'll pretend
> your PP size is 1MB) then the first 1MB would reside on the first hdisk,
> when that is "full", then it will span to the next hdisk and so on.  If the
> file was only 1MB, and the LV was 3MB, then only the first 1MB of the LV
> would be used, and it may all reside on the first disk.  Again, for
> sequential file access, this method is preferred.  For random access, use
> the first method to prevent hot spots.

> Hopefully I didn't leave anything out. I was multitasking while writing this
> :)

> Good Luck

> -Austin



> > How can I ensure that a single process, writing a large file spreads the
> > file over more than one disk. I have a volume group with six disks, but
> only
> > one disk is being used by this process, which is suffering from i-o waits.

> > Inter policy is set to maximum.

> > Is there any thing else I can do?

> > John

--
Norman Levin
 
 
 

idiots guide to striping?

Post by Urban A. Haa » Tue, 27 Jun 2000 04:00:00




> > John:

> > You have two options in this case:

> > 1)  Use AIX "true" striping when creating the LV that this file will reside
> > on.  This splits the LV into chunks of "stripe size" across multiple hdisks.
> > This is good for a process with a lot of random i/o.

> ** I don't think this is true.  Striping is a way of phsyically splitting data
> across drives that would normally be contiguous.  That way, sequential operations which
> would hit a single drive can now be split across several drives.

> As an example:

> >     # mklv -y stripelv -S4K datavg 3 hdiskx hdisky hdiskz...

> > 2) For sequential i/o (which it sounds like you're using) it may be better

> ** again, I don't think this is true.  If I have an old world volume that I am randomly
> accessing, then I have as many random requests for the upper 1/4 of the physical disk as
> the lower 1/4 of the disk.  However, since all the data is in one drive, I am serialized
> on the drive.  However, if I create a logical volume with the logical partitions allocated
> across 4 real drives, then the random requests have just as good a chance as hitting the
> upper 1/4 of the lv (now on one physical drive) as it does for the lower 1/4 of the drive.
> Again, this has the potential of having overlapped I/O instead of single thread on
> a single physical dirve.

> > to use "spreading" which is creating an LV across multiple hdisks, but not
> > using the "stripe size" parameter.  Some people also call this striping, or
> > pseudo-striping.

> ** some people call this "poor mans striping"

>   This will allocate the LV across multiple hdisks, but
> > doesn't require each block to be allocated on a separate PV, instead it
> > "stripes" in units of PP.  An example of this would be:

> >     # mklv -y spreadlv -e x datavg 3 hdiskx hdisky hdiskz...

> > The key here is the "-e x" parameter, which you referenced below, and
> > specifying which hdisks to spread the LV across.

> > If you've already created an LV, but it doesn't span multiple hdisks, then
> > neither will the file, regardless of the Inter-Physical policy.

However, reorgvg should fix this. But it's still poor compared to "true" striping.

- Show quoted text -

> Also, AIX
> > will allocate space in the file from the first block to the last block, so
> > if the LV is 3MB in size, and the file is 3MB in size, (and we'll pretend
> > your PP size is 1MB) then the first 1MB would reside on the first hdisk,
> > when that is "full", then it will span to the next hdisk and so on.  If the
> > file was only 1MB, and the LV was 3MB, then only the first 1MB of the LV
> > would be used, and it may all reside on the first disk.  Again, for
> > sequential file access, this method is preferred.  For random access, use
> > the first method to prevent hot spots.

> > Hopefully I didn't leave anything out. I was multitasking while writing this
> > :)

> > Good Luck

> > -Austin



> > > How can I ensure that a single process, writing a large file spreads the
> > > file over more than one disk. I have a volume group with six disks, but
> > only
> > > one disk is being used by this process, which is suffering from i-o waits.

> > > Inter policy is set to maximum.

> > > Is there any thing else I can do?

> > > John

> --
> Norman Levin

--
Urban A. Haas
CEO - Urban Technology, Inc.
Minneapolis, MN  USA
Phone: (952) 595-8810    Fax: (952) 595-8710

Web: http://www.urbantechnology.com

This e-mail was composed of 100% recycled bits.