[linux-lvm] LVM for a Database

Steven Lembark lembark at wrkhors.com
Wed Nov 27 11:21:53 UTC 2002

-- Joseph Kezar <jkezar at doc.state.vt.us>

> We are in the process of building a database on a 4 processor 1.8GHz, 4GB
> RAM Dell 6650.
> I am trying to figure out the most efficient way to use LVM for our raw
> data storage.  We have a RAID array with 8x36GB drives in it.  Should I
> do a raid 1+0(mirror 4 disks, and span them to get one logical volume)?
> If so this leaves me a /dev/sdb.  Or would I get better performance if I
> mirror 1 + 5, 2 + 6, 3 + 7, 4+ 8 to give me /dev/sd[b-e].  Is it possible
> to figure out where the center of our spindles are?  So I can arrange for
> the heads to spend little time seeking?
> Any perfomance hints would be greatly appreciated.

(1)	Use hardware RAID.

(2)	RAID5 with a stripe == O/S I/O page size will avoid the
	write penalty. This normally means using 4 drives with
	1K chunk size or 8 with 1-page chunk.

(3) Striping across RAID5 stripes using a stripe size equal
	to the page (which is equal to the stripe) gives good
	performance by avoids write penalty and spreading the
	data over more devices and controllers (or SCSI at least
	chains). High-end RAID controllers (e.g., from Mylex)
	have multiple SCSI chains, which makes striping across
	the SCSI controllers a rather nice alternative.

RAID5 avoids loosing data; its performance if a drive fails
will be pretty dismal even with hot spares. RAID1 avoids
the performance penalty during failures and has the additional
advantage of making "cold" backups from a split mirror. Price
is doubling the storage cost.

For the best uptime results use RAID0+5 (mirrored drives
grouped into RAID5 stripes). This allows up to 1/2 the
drives to fail without any serious performance penalty
(if you have lots of spare cash for drives).

Once the hardware RAID5 has been set up to spread the
I/O out and avoid downtime, LVM is a rather nice choice
for managing the space. At this point the RAID system
is doing considerable work to spread out the I/O and
buffer the data at multiple levels. This saves you from
having to play games with cyl numbers for speed: just
use the space and be done with it.

Steven Lembark                               2930 W. Palmer
Workhorse Computing                       Chicago, IL 60647
                                            +1 800 762 1582

More information about the linux-lvm mailing list