Protocolo de terminación

En un entorno distribuido, pueden producirse diversas situaciones en cualquier momento, como fallos de hardware, una caída de la conectividad entre nodos, la retirada intempestiva de uno de los nodos para realizar tareas de mantenimiento correctivo, y muchas otras. La mayoría de las veces, el mecanismo de replicación del HSM puede recuperarse automáticamente y mantener el pool en funcionamiento. En algunas situaciones, sin embargo, es necesaria la intervención del operador, pero incluso en estos casos, las rutinas implementadas por el HSM mantienen el procedimiento para el operador bastante simple, sin incurrir en grandes costes administrativos. Un procedimiento de este tipo puede ser tan sencillo como informar a distancia a la consola de gestión del HSM de la dirección IP de un nodo que ha dejado de funcionar por mantenimiento; el nodo al que está conectada la consola de gestión recibe la información y la replica a los demás nodos, reduciendo así cualquier tiempo de inactividad del servicio. Esta comunicación remota de fallos utiliza un protocolo denominado Protocolo de Terminación(TP).

---
title: Pool bloqueado por falha em um nó
---

%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%

flowchart TD

    classDef red_s stroke:#f00
    hsm1[HSM 1]
    hsm2[HSM 2]
    hsm3[HSM 3]
    hsmn[HSM n]
    db[(repl)]:::red_s
    u1((1))

    hsm1 -.read only..- db
    hsm2 -.read only..- db
    hsm3 -.X..- db
    hsmn -.read only..- db

    u1 --Notify node 3 down--> hsm1

    linkStyle 0,1,2,3,4 stroke-width:1px;
    style db stroke:#f66,stroke-width:1px,stroke-dasharray: 2 2
    style hsm3 stroke:#f66,stroke-width:2px
---
title: Notificação de terminação
---

%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%

flowchart TD

    classDef red_s stroke:#f00
    hsm1[HSM 1]
    hsm2[HSM 2]
    hsm3[HSM 3]
    hsmn[HSM n]

    hsm1 --HSM 3 is down--> hsm2
    hsm1 ~~~ hsm3
    hsm1 --HSM 3 is down--> hsmn

    linkStyle 0,2 stroke-width:1px;
    style hsm3 stroke:#f66,stroke-width:2px
---
title: Pool liberado após um Node Down
---

%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%

flowchart TD

    classDef red_s stroke:#f00
    hsm1[HSM 1]
    hsm2[HSM 2]
    hsmn[HSM n]
    db[(repl)]:::red_s

    hsm1 -..- db
    hsm2 -..- db
    hsmn -..- db

    linkStyle 0,1,2 stroke-width:1px;
    style db stroke:#f66,stroke-width:1px,stroke-dasharray: 2 2

Un caso para utilizar el Protocolo de Terminación es un fallo durante el protocolo de replicación Two Phase Commit, dejando el pool a la espera de que se recupere un nodo que se sabe que no va a volver.

El servicio de Protocolo de Terminación no aceptará una notificación de Nodo caído para una IP que esté operativa.

Para tiempos de inactividad programados o mantenimiento preventivo, se puede eliminar un nodo del pool a través de la Consola Local, también de forma muy sencilla y sin tiempo de inactividad.

Las funciones del protocolo determinación, como la notificación de nodo caído, se realizan en la consola remota del HSM.