DRBD mergulhos de velocidade estranhos

3

Algumas semanas atrás eu fiz uma configuração de teste para o DRBD em alguns servidores. A velocidade foi fixada em 90MB / 800Mb conforme minha configuração para sincronização inicial. Agora eu tenho reinstalado o sistema operacional (CentOS 7.4) para fazer a instalação final nos servidores e estou vendo o problema de velocidade (como mostrado abaixo). A única diferença que posso pensar agora é a instalação do pacemaker + corosync, ambos desativados para sincronização inicial. Eu reinstalei o sistema operacional algumas vezes e tentei alterar os parâmetros de velocidade, etc. na configuração, mas nada mudou. Aqui está minha configuração:

[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;
    }
}

    
por bakasan 05.03.2018 / 06:26

2 respostas

1

Ok, fiz algumas alterações na configuração e fiz diferença dessa vez. Embora não seja exatamente como era antes (ainda tem mergulhos) e se sente um pouco forçado, mas o desempenho melhorou.
Nova configuração:

[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;
        ...

}

    
por 05.03.2018 / 07:41
0

Versões recentes do DRBD, maiores que 8.3.9, ajustam dinamicamente as taxas de ressincronização por padrão. Se você agora tem algo sentado nos dados de gravação do DRBD e, portanto, replicando os dados, ou qualquer outra coisa (Corosync & Pacemaker) utilizando o link de replicação, as velocidades de ressincronização ajustam-se rapidamente.

Eu vejo as alterações que você fez na sua "resposta", e é provável que o aumento de c-fill-target que fez sua ressincronização saturar melhor a linha.

Tente definir seu c-plan-ahead para 0 e veja se ele é nivelado. Isso deve efetivamente desativar o controlador dinâmico e deixar você sincronizando a uma taxa estática.

    
por 05.03.2018 / 16:58