DRBDを使用すると、ユーザーマニュアルに記載されているよりもはるかに大きなパフォーマンスの低下が見られます。 DRBD 8.3.7(Fedora 13 RPM)を使用しています。
DRBDテストをセットアップし、DRBDなしでディスクとネットワークのスループットを測定しました。
dd if=/dev/zero of=/data.tmp bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied, 4.62985 s, 116 MB/s
/は、私がテストしているディスク上の論理ボリュームであり、DRBDなしでマウントされています
iperf:
[ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec
スループットオーバーヘッドの期待値 によると、ボトルネックはどちらか遅い方であり、ネットワークまたはディスクとDRBDのオーバーヘッドは3%である必要があります。私の場合、ネットワークとI/Oはかなり均等に一致しているようです。約100MB /秒を取得できるはずです。
だから、生のdrbdデバイスで、私は
dd if=/dev/zero of=/dev/drbd2 bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied, 6.61362 s, 81.2 MB/s
これは私が予想するよりも遅いです。次に、デバイスをext4でフォーマットすると、次のようになります。
dd if=/dev/zero of=/mnt/data.tmp bs=512M count=1 oflag=direct
536870912 bytes (537 MB) copied, 9.60918 s, 55.9 MB/s
これは正しくないようです。これには、私が気付いていない他の要因が関係しているに違いありません。
global_common.conf
global {
usage-count yes;
}
common {
protocol C;
}
syncer {
al-extents 1801;
rate 33M;
}
data_mirror.res
resource data_mirror {
device /dev/drbd1;
disk /dev/sdb1;
meta-disk internal;
on cluster1 {
address 192.168.33.10:7789;
}
on cluster2 {
address 192.168.33.12:7789;
}
}
ハードウェアについては、2つの同一のマシンがあります。
ネットワークはスイッチを介して接続された1Gbです。直接接続が推奨されることは知っていますが、これで大きな違いが生じる可能性はありますか?
編集済み
何が起こっているかを確認するために使用される帯域幅を監視しようとしました。 ibmonitor を使用し、ddテストを10回実行しながら平均帯域幅を測定しました。私が得た:
Ext4のように見えますが、drbdはrawデバイスで使用する帯域幅の約半分を使用しているため、ネットワークではないボトルネックがあります。
「rate = 33M」で帯域幅を制限しているのはなぜですか?同期プロトコル「C」を使用しているのはなぜですか?
私は通常、プロトコル「A」と8MBのバッファーを使用します。ギガビット回線と大量のトラフィックの場合、「rate = 90M」に制限します。