Clustering de Alta Disponibilidade

Com as instâncias do Oracle Linux em execução na Oracle Cloud Infrastructure (OCI), você pode criar clusters de alta disponibilidade (HA) que oferecem acesso contínuo a aplicativos e serviços em execução em vários nós. A clusterização HA minimiza o tempo de inatividade e fornece serviço contínuo se e quando os componentes do sistema falharem.

Você pode criar clusters HA com instâncias do OCI instalando e usando o Pacemaker, um gerenciador de recursos de alta disponibilidade de código-fonte aberto, e o Corosync, um mecanismo de cluster de código-fonte aberto. Para obter mais informações sobre clustering HA e as tecnologias Pacemaker e Corosync, consulte as seguintes fontes:

Pré-requisito

Antes de começar, configure um dispositivo de armazenamento compartilhado para ser acessível de todos os nós desejados no cluster HA. Um dispositivo de armazenamento compartilhado é necessário para o serviço de cluster e as mensagens do aplicativo e para o esgrima SBD do cluster. Para obter mais informações sobre como configurar um dispositivo de armazenamento compartilhado, consulte as seguintes fontes:

Configurando o Clustering de Alta Disponibilidade com Instâncias do OCI

Para configurar a clusterização de alta disponibilidade com instâncias do OCI:

  1. Instalar o software Pacemaker
  2. Criar um cluster HA
  3. Configurar cercas

Instalação do Pacemaker

Para criar um cluster de alta disponibilidade (HA) com instâncias do Oracle Cloud Infrastructure (OCI), primeiro instale os pacotes Pacemaker e Corosync em cada instância, ou nó, que você deseja no cluster. Em seguida, você pode configurar cada nó do cluster e garantir que o serviço Pacemaker seja iniciado e executado automaticamente em cada nó no momento da inicialização.

Observação

A instância, o nó e o nó do cluster da OCI são usados de forma intercambiável com a clusterização HA para OCI.

Melhores práticas

Para cada instância do OCI que você deseja no cluster, abra uma janela de terminal e conecte-se à instância.

Por exemplo, se você quiser que duas instâncias do OCI sejam nós no cluster, abra duas janelas de terminal e conecte-se a cada instância usando ssh:
ssh instance-IP-address

Abrir uma janela de terminal para cada nó evita a necessidade de fazer log-in e log-out repetidamente dos nós ao configurar o cluster HA.

Instalação do marca-passo e do Corosync

Para instalar os pacotes Pacemaker e Corosync e configurar os nós do cluster HA:

  1. Conclua o pré-requisito no Clustering de Alta Disponibilidade.
  2. Ative o repositório no servidor yum do Oracle Linux em que residem os pacotes Pacemaker e Corosync.

    Oracle Linux 10:
    sudo dnf config-manager --enable ol10_addons

    Oracle Linux 9:

    sudo dnf config-manager --enable ol9_addons

    Oracle Linux 8:

    sudo dnf config-manager --enable ol8_addons
  3. Em cada nó, instale o shell de comando pcs do Pacemaker, os pacotes de software e todos os agentes de recurso e cerca disponíveis:

    sudo dnf install pcs pacemaker resource-agents fence-agents-sbd
  4. Configure o firewall para que os componentes de serviço possam se comunicar pela rede:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --add-service=high-availability
  5. Em cada nó, defina uma senha para o usuário hacluster:

    sudo passwd hacluster
    Dica

    Defina a mesma senha em cada nó para evitar problemas de autorização ao executar comandos pcs em nós diferentes dentro do mesmo cluster.

  6. Em cada nó, defina o serviço pcsd para ser executado e iniciado na inicialização:

    sudo systemctl enable --now pcsd.service
  7. Crie um cluster HA usando os nós que você configurou. Consulte Criando um Cluster HA.

Criando um Cluster HA

Com o software Pacemaker e Corosync, você pode criar um cluster de alta disponibilidade (HA) com instâncias do Linux em execução na Oracle Cloud Infrastructure (OCI).

Para criar um cluster HA:

  1. Instale os pacotes de software Pacemaker e Corosync em cada nó desejado no cluster. Consulte Instalação de marcapasso.
  2. Em um dos nós, autentique a ferramenta de configuração de cluster pcs para o usuário hacluster de cada nó do cluster.

    Por exemplo, se você quiser que dois nós constituam o cluster HA, execute o seguinte comando em um dos nós do cluster:

    sudo pcs host auth node1 node2 -u hacluster

    Substitua node1 e node2 pelos nomes de host resolvíveis dos nós que serão formados no cluster.

    Como alternativa, se os nomes de host não puderem ser resolvidos, especifique o endereço IP para cada nó, conforme mostrado no seguinte exemplo:

    sudo pcs host auth node1 addr=192.0.2.1 node2 addr=192.0.2.2 -u hacluster

    Substitua 192.0.2.1 e 192.0.2.2 pelo endereço IP de cada um dos respectivos hosts no cluster.

  3. Quando solicitado, informe a senha definida para o usuário hacluster quando você instalou e configurou o software Pacemaker em cada nó.

  4. Crie o cluster HA usando o comando pcs cluster setup e especificando o seguinte:

    • Nome do cluster
    • O nome do host e endereço IP de cada nó que você deseja no cluster

    Por exemplo, para criar um cluster HA com dois nós:

    sudo pcs cluster setup cluster-name node1 addr=192.0.2.1 node2 addr=192.0.2.2

    Substitua 192.0.2.1 e 192.0.2.2 pelo endereço IP de cada um dos respectivos hosts no cluster.

  5. Em um dos nós, inicie o cluster em todos os nós:

    sudo pcs cluster start --all
  6. Opcionalmente, você pode ativar esses serviços para iniciar no momento da inicialização para que, se um nó for reinicializado, ele se reintegre automaticamente ao cluster. Para fazer isso, execute o seguinte comando em um dos nós:

    sudo pcs cluster enable --all
    Observação

    Alguns usuários preferem não ativar esses serviços para que uma falha de nó que resulta em uma reinicialização completa do sistema possa ser corretamente depurada antes de voltar ao cluster.

  7. Configure o cerco SBD para o cluster HA recém-criado. Consulte Configurando o Fencing.

Configurando cercas

O esgrima STONITH Block Device (SBD) funciona com o software Pacemaker para proteger os dados quando um nó em um cluster de alta disponibilidade (HA) não responde. O esgrima impede que os nós ativos no cluster HA acessem dados no nó que não responde até que o software Pacemaker coloque esse nó que não responde off-line.

A configuração de esgrima SBD é a última etapa na conclusão da configuração de um cluster HA com instâncias do OCI. Para obter informações sobre como criar um cluster HA, consulte Criando um Cluster HA.

Observação

Para criar clusters HA com instâncias do OCI, use apenas o mecanismo de esgrima de cluster SBD. Outros mecanismos de esgrima de cluster não são suportados no momento neste ambiente.

Configurando o Fencing SBD para um Cluster HA

Para configurar o esgrima SBD para um cluster HA:

  1. Em um dos nós do cluster, ative stonith (Atire no Outro Nó na Cabeça), uma técnica de esgrima usada como parte da estratégia de esgrima SBD.

    sudo pcs property set stonith-enabled=true
  2. Em um dos nós, interrompa o cluster:

    sudo pcs cluster stop --all
  3. Em cada nó, instale e configure o daemon SBD:

    sudo dnf install sbd
  4. Em cada nó, ative o serviço systemd sbd:

    sudo systemctl enable sbd
    Observação

    Quando ativado, o serviço systemd sbd é iniciado e interrompido automaticamente como uma dependência do serviço Pacemaker. Isso significa que você não precisa executar o serviço sbd de forma independente e não pode iniciar ou interromper manualmente o serviço. Se você tentar iniciá-lo ou interrompê-lo manualmente, o estado do serviço permanecerá o mesmo e uma mensagem de erro será exibida, indicando que o serviço é um serviço dependente.
  5. Em cada nó, edite o arquivo /etc/sysconfig/sbd e defina o parâmetro SBD_DEVICE para identificar o dispositivo de armazenamento compartilhado. Use um caminho de dispositivo persistente, como um link dentro do sistema de diretórios /dev/disk/by-id/, para fazer isso.

    Por exemplo, se o dispositivo de armazenamento compartilhado estiver disponível no /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90, certifique-se de que o arquivo /etc/sysconfig/sbd em cada nó contenha a seguinte linha:

    SBD_DEVICE="/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90"

    Para obter informações sobre dispositivos de armazenamento compartilhado, consulte os links fornecidos na seção Pré-requisito.

  6. Continue a editar o arquivo /etc/sysconfig/sbd em cada nó definindo o dispositivo Watchdog como /dev/null:
    SBD_WATCHDOG_DEV=/dev/null
  7. Em um dos nós, crie o layout de mensagens SBD no dispositivo de armazenamento compartilhado e confirme se ele está no lugar.

    Por exemplo, para configurar e verificar mensagens no dispositivo de armazenamento compartilhado em /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90:

    sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 create 
    sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 list
  8. Em um dos nós, inicie o cluster e configure o agente de isolamento fence_sbd para o dispositivo de armazenamento compartilhado.

    Por exemplo, para iniciar o cluster e configurar o dispositivo de armazenamento compartilhado em /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90:

    sudo pcs cluster start --all 
    sudo pcs stonith create sbd_fencing fence_sbd devices=/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90
  9. Para verificar se a configuração do stonith foi configurada corretamente, execute os seguintes comandos:

    sudo pcs stonith config
    sudo pcs cluster verify --full
  10. Para verificar o status da configuração do stonith, execute o seguinte comando:

    sudo pcs stonith
  11. Para verificar o status do cluster, execute o seguinte comando:

    sudo pcs status