I'm setting up a dedicated postgresql server on ubuntu, using 500GB RAID 1. I'm wondering if someone might share a simple, yet effective partitioning schema that I can use, since I'm pretty new to all this.
You won't get much performance benefit from partitioning with a single big RAID (though you will avoid major headaches from / filling up).
Generally I would just use the OS defaults unless you're really comfortable sizing things yourself and just make sure you have a good sized chunk of space where you intend to create the PGDATA directory. The OS partitioning suggestions below are what I use on FreeBSD systems, it's probably OK for Ubuntu too.
(Ubuntu may not make use of /usr/local, if not you can fold some of that into /usr)
Re: Postgres-specific partitioning, if you're doing this on a single RAID-1 just make [PGDATA] big enough to hold your DB and transaction logs, plus some growth room.
If this is a production box and you're expecting a lot of DB activity what you want to do is separate this out onto a bunch of RAID-1s to separate disk activity (super-high-volume you may even consider splitting it across controllers).
Oracle has lots of great whitepapers on this and I highly recommend stealing their designs: They aren't simple, but they are effective. The partitioning scheme I use (each on their own pair of disks) is:
I've a postgresql server with some interesting activity between 600-1000 transactions per second and my partitioning is something like this:
According with your data, would be interesting if you dive into table partitioning, to avoid scanning a huge table in the case you need a small part of data. For example, I use partitioned tables to store logs so I have a master table called logs and monthly tables called YYYYMM_logs inherited from the master. Then I use a trigger function to put each log on the corresponding partitioned table.