Saltar al contenido

DRBD terrible rendimiento de sincronización en 10GigE

Este grupo de especialistas despúes de muchos días de investigación y de juntar de datos, dieron con la respuesta, deseamos que resulte de utilidad en tu plan.

Solución:

Solución 1:

En las versiones más recientes de DRBD (8.3.9 y posteriores) hay un controlador de resincronización dinámica que necesita ajuste. En versiones anteriores de DRBD configurando el syncer rate; fue suficiente; ahora se usa más como un punto de partida ligeramente sugerido para la velocidad de resincronización dinámica.

El controlador de sincronización dinámica se sintoniza con la “configuración c” en la sección de disco de la configuración de DRBD (ver $ man drbd.conf para obtener detalles sobre cada una de estas configuraciones).

Con 10 Gbe entre estos nodos y suponiendo una latencia baja ya que se usa el protocolo C, la siguiente configuración debería hacer que las cosas se muevan más rápido:

resource rd0 
        protocol C;
        disk 
                c-fill-target 10M;
                c-max-rate   700M;
                c-plan-ahead    7;
                c-min-rate     4M;
        
        on cl1 
                device /dev/drbd0;
                disk /dev/sda4;
                address 192.168.42.1:7788;
                meta-disk internal;
        

        on cl2 
                device /dev/drbd0;
                disk /dev/sda4;
                address 192.168.42.2:7788;
                meta-disk internal;
        

Si aún no está satisfecho, intente convertir max-buffers hasta 12k. Si aún no estás feliz, puedes intentar aparecer c-fill-target en incrementos de 2M.

Solución 2:

Alguien en otro lugar sugirió que use esta configuración:

        disk 
                on-io-error             detach;
                c-plan-ahead 0;
        
        net 
                max-epoch-size          20000;
                max-buffers             131072;
        

Y el rendimiento es excelente.

Editar:
Según @Matt Kereczman y otras sugerencias, finalmente cambié a esto:

disk 
        on-io-error             detach;
        no-disk-flushes ;
        no-disk-barrier;
        c-plan-ahead 0;
        c-fill-target 24M;
        c-min-rate 80M;
        c-max-rate 720M;
 
net 
        # max-epoch-size          20000;
        max-buffers             36k;
        sndbuf-size            1024k ;
        rcvbuf-size            2048k;

La velocidad de resincronización es alta:

cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
srcversion: EDE19BAA3D4D4A0BEFD8CDE
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-
    ns:133246146 nr:0 dw:2087494 dr:131187797 al:530 bm:0 lo:0 pe:5 ua:106 ap:0 ep:1 wo:d oos:4602377004
        [>....................] sync'ed:  2.8% (4494508/4622592)M
        finish: 1:52:27 speed: 682,064 (646,096) K/sec

La velocidad de escritura es excelente durante la resincronización con esta configuración (80 % de la velocidad de escritura local, velocidad máxima del cable):

# dd if=/dev/zero of=./testdd bs=1M count=20k
20480+0 enregistrements lus
20480+0 enregistrements écrits
21474836480 octets (21 GB) copiés, 29,3731 s, 731 MB/s

La velocidad de lectura está bien:

# dd if=testdd bs=1M count=20k of=/dev/null
20480+0 enregistrements lus
20480+0 enregistrements écrits
21474836480 octets (21 GB) copiés, 29,4538 s, 729 MB/s

Edición posterior:

Después de una resincronización completa, el rendimiento es muy bueno (escritura a velocidad de cable, lectura a velocidad local). La resincronización es rápida (5/6 horas) y no daña demasiado el rendimiento (lectura a velocidad de cable, escritura a velocidad de cable). Definitivamente me quedaré con c-plan-ahead en cero. Con valores distintos de cero, la resincronización es demasiado larga.


Solución 3:

c-plan-ahead tiene que establecer un valor positivo para habilitar el controlador de velocidad de sincronización dinámica. disco
c-plan-ahead 15; // 5 * RTT / 0.1s unit,in my case is 15
c-fill-target 24;
c-max-rate 720M;

valoraciones y comentarios

No se te olvide dar difusión a esta división si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *