Пару недель назад я сделал тестовую настройку DRBD на паре серверов. Скорость была фиксированной 90 МБ / 800 МБ в соответствии с моей конфигурацией для начальной синхронизации. Теперь я переустановил ОС (CentOS 7.4), чтобы выполнить окончательную установку на серверах, и вижу проблему со скоростью (как показано ниже). Единственное отличие, о котором я могу думать прямо сейчас, - это установка кардиостимулятора + corosync, оба из которых отключены для начальной синхронизации. Я несколько раз переустанавливал ОС и пытался изменить параметры скорости и т. Д. В конфигурации, но ничего не изменилось. Вот мой конфиг:
[root@storage2 ~]# cat /etc/drbd.d/global_common.conf
global {
usage-count yes;
udev-always-use-vnr;
}
common {
net {
protocol C;
}
}
[root@storage2 ~]# cat /etc/drbd.d/nfs.res
resource r0 {
syncer {
c-plan-ahead 20;
c-fill-target 50k;
c-min-rate 25M;
al-extents 3833;
rate 90M;
}
disk {
no-md-flushes;
#fencing resource-only;
}
handlers {
fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
}
net {
sndbuf-size 512k;
max-buffers 8000;
max-epoch-size 8000;
after-sb-0pri discard-least-changes;
after-sb-1pri consensus;
after-sb-2pri call-pri-lost-after-sb;
}
device /dev/drbd0;
disk /dev/sda4;
meta-disk internal;
on storage1 {
address 172.30.1.11:7790;
}
on storage2 {
address 172.30.1.12:7790;
}
}
Хорошо, я внес некоторые изменения в конфигурацию, и на этот раз все изменилось. Хотя это не совсем так, как было раньше (все еще есть провалы), и кажется немного вынужденным, но производительность улучшилась.
Новый конфиг:
[root@storage1 ~]# cat /etc/drbd.d/nfs.res
resource r0 {
...
c-plan-ahead 2;
c-fill-target 2M;
c-min-rate 25M;
c-max-rate 100M;
al-extents 3833;
rate 100M;
...
sndbuf-size 0;
...
}
В последних версиях DRBD выше 8.3.9 скорость повторной синхронизации по умолчанию настраивается динамически. Если теперь у вас есть что-то, что сидит на DRBD, записывающее данные и, следовательно, реплицирующее данные, или что-то еще (Corosync & Pacemaker), использующее ссылку репликации, скорости повторной синхронизации будут регулироваться на лету.
Я вижу изменения, которые вы внесли в свой «ответ», и, вероятно, увеличилось c-fill-target
это сделало вашу ресинхронизацию более насыщенной.
Попробуйте настроить свой c-plan-ahead
к 0
и посмотрите, выровняется ли он. Это должно эффективно отключить динамический контроллер и оставить синхронизацию со статической скоростью.