> Has anyone ran Postgres with software RAID or LVM on a production box?
> What have been your experience?
Yes, we have run for a couple years Pg with software LVM (mirroring)
against two hardware RAID5 arrays. We host a production Sun box that
runs 24/7.
My experience:
* Software RAID (other than mirroring) is a disaster waiting to happen.
If the metadata for the RAID set gives out for any reason (CMOS
scrambles, card dies, power spike, etc.) then you are hosed beyond
belief. In most cases it is almost impossible to recover. With
mirroring, however, you can always boot and operate on a single mirror,
pretending that no LVM/RAID is underway. In other words, each mirror is
a fully functional copy of the data which will operate your server.
* Hardware RAID5 is a terrific way to boost performance via write
caching and spreading I/O across multiple spindles. Each of our
external arrays operates 14 drives (12 data, 1 parity and 1 hot spare).
While RAID5 protects against single spindle failure, it will not hedge
against multiple failures in a short time period, SCSI contoller
failure, SCSI cable problems or even wholesale failure of the RAID
controller. All of these things happen in a 24/7 operation. Using
software RAID1 against the hardware RAID5 arrays hedges against any
single failure.
* Software mirroring gives you tremendous ability to change the system
while it is running, by taking offline the mirror you wish to change and
then synchronizing it after the change.
On a fully operational production server, we have:
* restriped the RAID5 array
* replaced all RAID5 media with higher capacity drives
* upgraded RAID5 controller
* moved all data from an old RAID5 array to a newer one
* replaced host SCSI controller
* uncabled and physically moved storage to a different part of data center
Again, all of this has taken place (over the years) while our machine
was fully operational.