Duplicity is very good and can use rsync as a backend. What I like most about it is the ability to configure filters, so if there are huge files or files of certain extension you don't want backed up in that directory it's easy to make those adjustments. Note that deja-dup uses duplicity as it's backend and is a real easy way to get started, even creates sensible exclusion filters by default.
I recommend to cron this nightly. Start with a full backup once a week and then do an incremental nightly. See http://www.rsync.net/resources/howto/duplicity.html
for good examples.
If you want true real time mirroring then DRBD is the way to go but it's not without risk or complexity. You must create a "block stack" in which drbd is backed by your data store and mount that. It has several protocols that trade off between data integrity and speed e.g. sync vs async. It also has the complexity of "split brain" where if the source and/or target have moved forward and are not talking to each other, DRBD has to figure out which one is the one source of truth, makes that the primary and forces the secondary to resync to that, get it wrong and you've lost your data.
So you have to ask yourself, do you really need a down instant a block IO is written mirror, and all the complexity and risk that goes with it, or will a periodic rsync (every 5m etc) be good enough?
Finally, data integrity is best down with a layered approached. Ideally your primary and secondary would both be backed by RAID 1 or similar then you would setup your sync with using the options provided that have a large spread in terms of trade offs between easy of use, data integrity, complexity, and risk.