Mailing List Archive

LVM2 stripes and mirrors
Hi!

I've got two questions concerning LVM2.

Number one: What stripesize parameter would you use? The manual of my
mainboard advises to use 64k for a RAID-0. Would that be useful for my
portage tree or a more conventional partition like /usr and /var?

Number two is not really a performance issue but it's LVM2-related:
LVM2-mirrors need an extra log device but the man pages don't tell anything
about how large it has to be or if it can be a partition or loop device on
the same hdd as one of the mirrors.

Thanks in advance!

Florian Philipp
Re: LVM2 stripes and mirrors [ In reply to ]
Florian Philipp wrote:
> Hi!
>
> I've got two questions concerning LVM2.
>
> Number one: What stripesize parameter would you use? The manual of my
> mainboard advises to use 64k for a RAID-0. Would that be useful for my
> portage tree or a more conventional partition like /usr and /var?
>
> Number two is not really a performance issue but it's LVM2-related:
> LVM2-mirrors need an extra log device but the man pages don't tell anything
> about how large it has to be or if it can be a partition or loop device on
> the same hdd as one of the mirrors.
>
> Thanks in advance!
>
> Florian Philipp

Sizing I/O subsystems is highly workload and filesystem dependent, and
there's really no such thing as a one-size-fits-all quick answer. There
are models and there are some really good I/O subsystem benchmarks you
can use once you know what your workload characteristics are.

I highly recommend the book "Storage Network Performance Analysis"
http://www.amazon.com/Storage-Network-Performance-Analysis-Huseyin/dp/076451685X/
for the tools to do this. But one thing you can do first is to run your
workload on a system and capture data with "iostat". If you don't have
"iostat", you'll need to emerge "sysstat". The "iozone" benchmark is in
Portage, as is bonnie++. The I/O benchmark I like most is IOMeter, but
that requires a Windows system to run the control console and
downloading a Linux agent from their web site.
--
gentoo-performance@gentoo.org mailing list
Re: LVM2 stripes and mirrors [ In reply to ]
Am Donnerstag 12 Juli 2007 16:14 schrieb M. Edward (Ed) Borasky:
> Florian Philipp wrote:
> > Hi!
> >
> > I've got two questions concerning LVM2.
> >
> > Number one: What stripesize parameter would you use? The manual of my
> > mainboard advises to use 64k for a RAID-0. Would that be useful for my
> > portage tree or a more conventional partition like /usr and /var?
> >
> > Number two is not really a performance issue but it's LVM2-related:
> > LVM2-mirrors need an extra log device but the man pages don't tell
> > anything about how large it has to be or if it can be a partition or loop
> > device on the same hdd as one of the mirrors.
> >
> > Thanks in advance!
> >
> > Florian Philipp
>
> Sizing I/O subsystems is highly workload and filesystem dependent, and
> there's really no such thing as a one-size-fits-all quick answer. There
> are models and there are some really good I/O subsystem benchmarks you
> can use once you know what your workload characteristics are.
>
> I highly recommend the book "Storage Network Performance Analysis"
> http://www.amazon.com/Storage-Network-Performance-Analysis-Huseyin/dp/07645
>1685X/ for the tools to do this. But one thing you can do first is to run
> your workload on a system and capture data with "iostat". If you don't have
> "iostat", you'll need to emerge "sysstat". The "iozone" benchmark is in
> Portage, as is bonnie++. The I/O benchmark I like most is IOMeter, but that
> requires a Windows system to run the control console and
> downloading a Linux agent from their web site.

Thanks for the tips!

Just for the record:

I've solved problem number two: The log is not bigger than a few MB for 20GB
of storage space. To create it you have to use two commands:

At first, you create the mirror without log device:
lvcreate -n $Name -L $Size -m $Number_of_mirrors --corelog $Volume_group

Then you use lvconvert to attach a log and to create it anywhere:
lvconvert $Volume_group/$Logical_volume -m $Number_of_mirrors --alloc anywhere

Using "--alloc anywhere" with lvcreate is not wise because lvcreate tries to
create all volumes on one device, then.

Regards,

Florian Philipp