DRBDのマスターとスレーブの通信方式は、3つの中から選べる。
drbd-8.3.0.tar.gzのサンプルのdrbd.confより
C: write IO is reported as completed, if we know it has reached _both_ local and remote DISK.
* for critical transactional data.
B: write IO is reported as completed, if it has reached local DISK and remote buffer cache.
* for most cases.
A: write IO is reported as completed, if it has reached local DISK and local tcp send buffer. (see also sndbuf-size)
*for high latency networks
DRBDを扱ったblogとかに載ってるdrbd.confを見ると、「C」になってることが多いけど、このサンプルファイルでは、「B」が「for most cases」となっている。サンプルのdrbd.confの続きにはこうも書いてあった。
uhm, benchmarks have shown that C is actually better than B. this note shall disappear, when we are convinced that B is the right choice “for most cases”. Until then, always use C unless you have a reason not to.
ベンチマーク的には「B」よりも「C」が優れているらしい。しかし、「B」の「remote buffer cache」って何を指しているんだろうか。Aがわざわざ「tcp」send bufferって書いてあるわけだから、tcpが付いてない=ネットワーク関連じゃないキャッシュなんだろう。そうなると、ディスクの書き込みキャッシュが思いついたりするが…そうなのか(汗)
でも、なんとなーく「C」の方が安心なプロトコルで、それって性能を犠牲にして実現されている方が、なんとなーく納得いくんだけどなぁ。まして、drbd.confを書いた人が、多くの場合、「B」が正しい選択って言う理由も気になるけども、、、書いてないか。
…でも、まぁ、とりあえず、「C」にしとく(汗)
コメントを残す