Termination Protocol

Num ambiente distribuído a qualquer momento podem ocorrer diversas situações, como falhas de hardware, queda de conectividade entre os nós, retirada intempestiva de algum dos nós para manutenção corretiva, e vários outras. Na maioria das vezes o mecanismo de replicação dos HSMs pode se recuperar de forma automática e manter o pool operando. Em algumas situações entretanto é necessário a intervenção do operador, mas mesmo nestes casos, as rotinas implementados pelo HSM mantém o procedimento por parte do operador bastante simples, sem incorrer maiores custos administrativos. Tal procedimento para pode ser tão simples quanto informar remotamente, via console de gerência de HSM, o endereço IP de um nó que foi retirado para manutenção; o nó ao qual a console de gerência está conectado recebe a informação e se encarrega de replicar aos demais nós, diminuindo assim eventuais downtimes no serviço. Esta comunicação de falha remota utiliza um protocolo denominado Termination Protocol. (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

Um caso para a utilização do Termination Protocol é uma falha durante o protocolo Two Phase Commit de replicação, deixando o pool aguardando a recuperação de nó que sabidamente não mais retornará.

O serviço de Termination Protocol não irá aceitar uma notificação de Node Down para um IP que esteja operacional.

Para as situações de parada programada ou manutenção preventiva, um nó pode ser removido do pool via a Console Local, de forma também bastante simples e sem downtime.

As funções do Protocolo de Resolução (Termination Protocol), como a notificação de Node Down são feitas na Console Remota do HSM.