Я вижу, что 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%. В моем случае сеть и ввод / вывод кажутся довольно одинаковыми. Похоже, я смогу получить около 100 МБ / с.
Итак, с устройством raw 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;
}
}
По железу у меня две одинаковые машины:
Сеть 1Гб подключена через свитч. Я знаю, что рекомендуется прямое соединение, но может ли это иметь такое большое значение?
Отредактировано
Я просто попытался отслеживать используемую полосу пропускания, чтобы понять, что происходит. я использовал ibmonitor и измерил среднюю пропускную способность, пока я запускал тест dd 10 раз. Я получил:
Похоже, что с ext4 drbd использует примерно половину полосы пропускания, которую он использует с необработанным устройством, поэтому узким местом является не сеть.
Почему вы ограничиваете полосу пропускания «rate = 33M»? Почему вы используете синхронный протокол "C"?
Обычно я использую протокол «А» и буфер размером 8 МБ. Для гигабитной линии и интенсивного трафика я ограничиваю "rate = 90M".