1833178 Members
3542 Online
110051 Solutions
New Discussion

DS2300 and LVM

 
Maciej Kluk
Occasional Contributor

DS2300 and LVM

Hi


I use L1000 (rp5400) server with HPUX 11.0.
I want to attach DS2300 to it with SCSI controllers. I woul like to make VG on 3 disks and create LV which is stripped across them with 16k stripe. (lvcrate -i -I).And next I want to mirror that with HPUX/MirrorDisk. Some consultant told me that this is not possible.
The only "stripping" is possible with extent allocation (lvcrate -D).

Is it true?


regards
Maciek
8 REPLIES 8
Sridhar Bhaskarla
Honored Contributor

Re: DS2300 and LVM

Hi Maciek,

It is not possible to do both striping and mirroring.

The best you can do is extent level striping/mirroring (lvcreate -D y -s g) but the stripe size of it would be equal to the extent size which is 4 MB atleast. So, it may not give good boost in the performance.

Only VxVM can do what you wanted to do.

-Sri
You may be disappointed if you fail, but you are doomed if you don't try
Sridhar Bhaskarla
Honored Contributor

Re: DS2300 and LVM

Hi Maciek,

This isn't about points but 2 points indicate that my answer didn't provide any solution.

Let us know what exactly you are looking for.

-Sri
You may be disappointed if you fail, but you are doomed if you don't try
Joe Short
Super Advisor

Re: DS2300 and LVM

Actually it is possible to stripe and mirror using only LVM commands. To do it, you need to use PVGs (physical volume groups). You group the drives into 2 striped PVGs that contain 3 drives each. You make the volume group on one PVG. Then add the second PVG to the volume group, and mirror to it. The attached script shows how it can be done
Joe Short
Super Advisor

Re: DS2300 and LVM

Oh, I am a consultant, and I have done it.
Maciej Kluk
Occasional Contributor

Re: DS2300 and LVM

Hi

That's true. I have made that this way.
But this stripe made by extent allocation is 4M wide, not as I would like it to be 16k.
That's the problem.




regards
Maciek
Joe Short
Super Advisor

Re: DS2300 and LVM

Did you try the -s parameter for the vgcreate command? For example:

vgcreate -s 8 -g pv0 /dev/vg01 /dev/dsk/c4t0d0 /dev/dsk/c4t1d0 /dev/dsk/c4t2d0 /dev/dsk/c4t3d0
Steve Lewis
Honored Contributor

Re: DS2300 and LVM

vgcreate -s [size in Mb] - not kb
That example produces extent-based striping. If you are using Oracle, you can read their 'SAME' document on Metalink and use extent based striping as you have already implemented - but don't necessarily apply it to everything.

16k stripes seem very small to me, especially as modern disks have buffers of 4-8Mb. You will end up with more device bus-contention than load balance. That is, it is better to write larger amounts of data in one operation down the bus, than lots of small i/os going to different devices near-simutaneously. This is more relevent to modern fast buses.

For this reason, the best stripe size is going to be somewhere between 32k and 128k, 64k is a reasonable.

Interestingly, If you are writing a lot of small files, then you have to be careful about 'stripe-overlap' where one large file write always goes over 2 disks. Making the stripe size too small increases the risk of this, whereas making it too large reduces the balance.

If you really want to use small stripes (i.e. kb not mb) then you will have three options:
1. buy an external disk array controller which sits inbetween your server and the disks.
2. Use VXVM instead of LVM (I am not an expert in this, but it may be possible).
3. If it is database storage, not files, then stripe with lvcreate -i .. -I .. and mirror using your database software instead. This is likely to be the slowest option.
Sridhar Bhaskarla
Honored Contributor

Re: DS2300 and LVM

Hi,

Note that 'extent' level striping/mirroring is not the 'actual' striping/mirroring as the stripe size is equal to the extent size which is a minimum of 4 MB. Larger the extent size means larger the stripe size and the benefits will be low.

With the testing, I have found out that the best stripe size is either 128k or 256k (depending on the backend storage I have). In any case, I wouldn't go less than 64k.

-Sri
You may be disappointed if you fail, but you are doomed if you don't try