Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
We are investigating the possibility of using DRBD to perform synchronous replication of our PostgreSQL database server. After reading the Replication modes section of the DRBD features documentation we concluded that we would need to use protocol C, which is describes writes to be considered complete only after both the local and the remote disk writes have been confirmed. However, during our testing we were able to continuously write to the primary device after disabling network traffic on the secondary. We also noticed that during high write loads on the primary the number of kilobytes out of sync would grow, but eventually the secondary would catch up. After reading the documentation, we were surprised at the testing results. Is this expected and/or correct behavior, or have we incorrectly configured something for the DRBD device? Here are the configuration files if it helps. cat drbd.conf # You can find an example in /usr/share/doc/drbd.../drbd.conf.example include "drbd.d/global_common.conf"; include "drbd.d/*.res"; cat drbd.d/global_common.conf global { usage-count yes; } common { handlers { pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f"; } startup { } options { } disk { } net { protocol C; } } cat drbd.d/*.res resource r0 { on drbd-primary { device /dev/drbd1; disk /dev/sda1; address XXX.XXX.XXX.XXX:7789; meta-disk internal; } on drbd-secondary { device /dev/drbd1; disk /dev/sda1; address XXX.XXX.XXX.XXX:7789; meta-disk internal; } } Thanks, Nathan.