DRBD performance
As you'd expect, DRBD does impose a performance penalty, but you can make tradeoffs between performance and data integrity. As I've configured it here, DRBD is extremely paranoid - it doesn't report a write operation as complete until the data is physically on disk on both the primary and secondary servers. This ensures data integrity even in the very unlikely case that both servers crash or lose power at the same time, and one of them is completely destroyed in the process.
For typical home or office work, where you can deal with a small data loss under such unlikely scenarios, you can enable write caching by adding the following lines inside the "resource" section of your "/etc/drbd.conf" file:
disk {
no-disk-flushes;
no-md-flushes;
}
Even in this mode, you won't lose data if one server dies - you'll only lose data if you lose power on both servers simultaneously, and even then it's limited to the few writes that were cached in RAM but hadn't yet been saved to disk.
It's also worth remembering that DRBD only affects write performance. Data reads hit the local disks only, just like they would normally, so their performance is unaffected, no matter how paranoid your DRBD configuration is.