Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo explica como configurar e configurar um cluster básico Pacemaker de dois nós no Red Hat Enterprise Linux (RHEL). As instruções cobrem RHEL 8.6+, RHEL 9.x, e RHEL 10.x.
Pré-requisitos
Documentação do RHEL High Availability (HA)
- Configuração e gerenciamento de clusters de alta disponibilidade.
- Políticas de suporte para clusters de alta disponibilidade RHEL - sbd e fence_sbd.
- Políticas de suporte para clusters RHEL High Availability - fence_azure_arm.
- Limitações conhecidas do cão de guarda emulado por software.
- Explorando os componentes de alta disponibilidade do RHEL - sbd e fence_sbd.
- Orientação de projeto para clusters de alta disponibilidade RHEL - considerações sobre sbd.
- Considerações na adoção do RHEL 8 - Alta Disponibilidade e Clusters
Documentação RHEL específica do Azure
Documentação RHEL para ofertas SAP
Descrição geral
Este guia assume que já implementou o grupo de recursos necessário, a rede virtual Azure, a sub-rede e as máquinas virtuais (VMs).
Clusters a correr em Linux requerem um agente de fencing para proteger nós insalubres. Para realizar esta tarefa no Azure, utilize um dos seguintes métodos:
- Morte Baseada em Armazenamento (SBD) com Azure Shared Disk
- Morte Baseada em Armazenamento (SBD) com alvos iSCSI
- Agente de isolamento do Azure
Nota
Os seguintes prefixos são usados neste documento:
- [A]: Aplicável a todos os nós.
- [1]: Aplicável apenas ao nó 1.
- [2]: Aplicável apenas ao nó 2.
Importante
No Azure, os clusters RHEL de alta disponibilidade com isolamento baseado em armazenamento (fence_sbd) utilizam um watchdog emulado via software. Consulte a seguinte documentação ao utilizar o SBD.
Utilizar SBD com o Azure Shared Disk
Ao usar Azure Shared Disks, pode montar o mesmo disco em todas as máquinas virtuais que fazem parte do cluster. Podes alojar o teu dispositivo SBD nesse disco partilhado sem requisitos adicionais de infraestrutura.
Benefits
- Fornece uma opção nativa de dispositivo de bloco partilhado Azure para SBD sem necessidade de recursos adicionais.
- As máquinas virtuais anexam o disco gerido diretamente, reduzindo a dependência de considerações adicionais de rede.
Considerações importantes
- Podes usar um disco partilhado do Azure com o
Premium SSDSKU como dispositivo SBD. - Consulte a lista de sistemas operativos suportados.
- Os dispositivos SBD que utilizam um disco partilhado premium Azure suportam armazenamento localmente redundante (LRS) e armazenamento redundante por zona (ZRS).
- Dependendo do tipo da sua implementação, escolha o armazenamento redundante apropriado para um disco partilhado Azure como dispositivo SBD.
- Um dispositivo SBD que utiliza LRS para o disco partilhado Premium do Azure (skuName - Premium_LRS) suporta apenas implementações num conjunto de disponibilidade.
- Recomenda-se um dispositivo SBD que utilize ZRS para um disco partilhado premium Azure (skuName - Premium_ZRS) para implementações em zonas de disponibilidade.
- O disco partilhado do Azure que usas para dispositivos SBD não precisa de ser grande. O valor maxShares determina quantos nós de cluster podem usar o disco compartilhado. Por exemplo, pode usar tamanhos de disco P1 ou P2 para o seu dispositivo SBD num cluster de dois nós, como SAP ASCS/ERS ou SAP HANA scale-up.
- Para clusters com mais de dois nós, consulte o valor de maxShares documentado para o disco selecionado.
- Não ligue um dispositivo SBD de disco partilhado do Azure entre diferentes clusters do Pacemaker.
- Se usar vários dispositivos SBD com disco partilhado Azure, verifique o limite para o número máximo de discos de dados que podem ser ligados a uma VM.
- Para mais informações sobre limitações para Azure discos partilhados, consulte cuidadosamente a secção "Limitações" da documentação de discos partilhados Azure.
Utilizar SBD com destinos iSCSI
Esta solução exige que aloje alvos de Internet Small Computer System Interface (iSCSI) em pelo menos uma máquina virtual adicional (VM).
Benefits
- Estes servidores host iSCSI podem também alojar alvos iSCSI para outros clusters Pacemaker na mesma região.
- Se já os usas localmente, não exigem alterações na forma como operas o cluster do Pacemaker.
Considerações importantes
- Deve usar três servidores host iSCSI para ter o mais alto nível de resiliência para o seu cluster.
- Ter apenas um servidor introduz um ponto único de falha que impede o cluster de executar fencing se este ficar indisponível.
- O Pacemaker não permite esgrima se só tiveres dois alvos e um estiver em baixo.
- Os servidores anfitriões de destino iSCSI devem residir na mesma região dos seus clusters.
- O encaminhamento do tráfego de rede entre os seus clusters e os servidores anfitriões iSCSI não deve passar por quaisquer dispositivos de rede não redundantes (como um dispositivo virtual de rede).
- Eventos de manutenção e outros problemas com dispositivos de rede podem afetar negativamente a estabilidade e fiabilidade da configuração global do cluster.
Usando o Azure Fence Agent
Ao utilizar o Azure Fence Agent, o cluster pode isolar nós chamando diretamente as APIs do Azure para reiniciar nós com falha.
Benefits
- Não são necessários recursos extra.
- As Identidades Geridas removem qualquer manutenção de credenciais.
Considerações importantes
- Use Identidades Geridas para autenticação. Se estiver a usar atualmente um principal de serviço, atualize o Azure Fence Agent do SPN para o MSI.
- O fence agent do Azure necessita de conetividade de saída para os pontos finais públicos do Azure. Para obter mais informações e possíveis soluções, consulte Conectividade de ponto de extremidade público para VMs usando o ILB padrão.
- As operações de monitoramento e vedação são desserializadas. Como resultado, se houver uma operação de monitoramento em execução mais longa e um evento de vedação simultâneo, não haverá atraso para o failover de cluster porque a operação de monitoramento já está em execução.
Implementar um disco partilhado do Azure para SBD
Para criar e anexar um disco partilhado no Azure usando o PowerShell, execute os seguintes comandos. Se quiser implementar recursos utilizando a CLI do Azure ou o portal do Azure, consulte Implementar um disco ZRS.
$ResourceGroup = "<ResourceGroupName>"
$DiskSizeInGB = 4
$DiskName = "<SBDDiskName>"
# Must be Equal to or greater than the Number of Nodes in the Cluster
$ShareNodes = 2
# Options are "Premium_LRS" or "Premium_ZRS"
$SKUName = "<DiskSKU>"
# VMs to attach the disk to
$vmNames = @("sap-cl1", "sap-cl2")
# Lun to attach the disk to. You should use the same lun on all servers in the cluster.
$lunNumber = <lunNumber>
$diskConfig = New-AzDiskConfig -Location $Location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $diskConfig
# Attach SBD disk to cluster VMs
foreach ($vmName in $vmNames)
{
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun $lunNumber
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}
Utilizar destinos iSCSI
Construir servidores host de destino iSCSI
Implemente três máquinas virtuais que corram numa versão suportada de RHEL OS. As VMs não precisam de ser grandes. Tamanhos de VM como Standard_E2s ou Standard_D2s são suficientes.
Nota
Não é necessário utilizar o RHEL for SAP com HA e Update Services, nem a imagem do sistema operativo RHEL for SAP Apps para o servidor de destino iSCSI. Podes usar uma imagem RHEL OS padrão em vez disso. No entanto, o ciclo de vida do suporte varia entre diferentes versões de produtos do sistema operacional.
Instala as atualizações mais recentes e reinicia se for necessário.
sudo dnf -y updateInstale o pacote de destino iSCSI.
sudo dnf install -y targetcliAtive e inicie o serviço iSCSI.
sudo systemctl start target sudo systemctl enable targetAbre a porta do firewall.
sudo firewall-cmd --add-port=3260/tcp --permanent sudo firewall-cmd --reload
Criar alvos iSCSI
Para cada cluster, é necessário provisionar um disco iSCSI em cada servidor anfitrião iSCSI e depois conceder acesso a cada nó do cluster a esse disco. Neste exemplo, crias discos para dois clusters diferentes:
- ascsnw1: Cluster ASCS/ERS de NW1
- hdbnw1: O cluster de bases de dados HANA para NW1
- sap-cl1 e sap-cl2: Nomes de host para os nós do cluster ASCS/ERS do NW1
- sap-db1 e sap-db2: Nomes de host para os nós do cluster HANA do NW1
- Crie a pasta raiz para todos os dispositivos SBD.
sudo mkdir /sbd - Crie o dispositivo SBD para o primeiro cluster (ascsnw1).
# Create Storage Object sudo targetcli backstores/fileio create sbdascsnw1 /sbd/sbdascsnw1 50M write_back=false # Create iSCSI Target sudo targetcli iscsi/ create iqn.2006-04.ascsnw1.local:ascsnw1 # Creates the LUN and attaches it to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/luns/ create /backstores/fileio/sbdascsnw1 # Grant Cluster Node 1 (sap-cl1) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl1.local:sap-cl1 # Grant Cluster Node 2 (sap-cl2) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl2.local:sap-cl2 - Crie o dispositivo SBD para o segundo cluster (hdbnw1).
# Create Storage Object sudo targetcli backstores/fileio create sbdhdbnw1 /sbd/sbdhdbnw1 50M write_back=false # Create iSCSI Target sudo targetcli iscsi/ create iqn.2006-04.hdbnw1.local:hdbnw1 # Creates the LUN and attaches it to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/luns/ create /backstores/fileio/sbdhdbnw1 # Grant Cluster Node 1 (sap-db1) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/acls/ create iqn.2006-04.sap-db1.local:sap-db1 # Grant Cluster Node 2 (sap-db2) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/acls/ create iqn.2006-04.sap-db2.local:sap-db2 - Salve a configuração.
sudo targetcli saveconfig - Verifica a configuração.
sudo targetcli ls o- / ............................................................................................... [...] o- backstores .................................................................................... [...] | o- block ........................................................................ [Storage Objects: 0] | o- fileio ....................................................................... [Storage Objects: 2] | | o- sbdascsnw1 ..................................... [/sbd/sbdascsnw1 (50.0MiB) write-thru activated] | | | o- alua ......................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ............................................. [ALUA state: Active/optimized] | | o- sbdhdbnw1 ....................................... [/sbd/sbdhdbnw1 (50.0MiB) write-thru activated] | | o- alua ......................................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp ............................................. [ALUA state: Active/optimized] | o- pscsi ........................................................................ [Storage Objects: 0] | o- ramdisk ...................................................................... [Storage Objects: 0] o- iscsi .................................................................................. [Targets: 2] | o- iqn.2006-04.hdbnw1.local:hdbnw1 ......................................................... [TPGs: 1] | | o- tpg1 ..................................................................... [no-gen-acls, no-auth] | | o- acls ................................................................................ [ACLs: 2] | | | o- iqn.2006-04.sap-db1.local:sap-db1 .......................................... [Mapped LUNs: 1] | | | | o- mapped_lun0 ..................................................... [lun0 fileio/sbdhdb (rw)] | | | o- iqn.2006-04.sap-db2.local:sap-db2 .......................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ..................................................... [lun0 fileio/sbdhdb (rw)] | | o- luns ................................................................................ [LUNs: 1] | | | o- lun0 ................................. [fileio/sbdhdbnw1 (/sbd/sbdhdbnw1) (default_tg_pt_gp)] | | o- portals .......................................................................... [Portals: 1] | | o- 0.0.0.0:3260 ........................................................................... [OK] | o- iqn.2006-04.ascsnw1.local:ascsnw1 ....................................................... [TPGs: 1] | o- tpg1 ..................................................................... [no-gen-acls, no-auth] | o- acls ................................................................................ [ACLs: 2] | | o- iqn.2006-04.sap-cl1.local:sap-cl1 .......................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ................................................. [lun0 fileio/sbdascsnw1 (rw)] | | o- iqn.2006-04.sap-cl2.local:sap-cl2 .......................................... [Mapped LUNs: 1] | | o- mapped_lun0 ................................................. [lun0 fileio/sbdascsnw1 (rw)] | o- luns ................................................................................ [LUNs: 1] | | o- lun0 ............................... [fileio/sbdascsnw1 (/sbd/sbdascsnw1) (default_tg_pt_gp)] | o- portals .......................................................................... [Portals: 1] | o- 0.0.0.0:3260 ........................................................................... [OK] o- loopback ............................................................................... [Targets: 0]
Configurar o Azure Fence Agent
Criar identidade
Para criar uma identidade gerida (MSI), crie uma identidade gerida atribuída pelo sistema para cada VM no cluster. Identidades geridas atribuídas pelos utilizadores não são suportadas neste momento.
Crie um papel personalizado.
A sua identidade precisa de permissões atribuídas através do Azure RBAC para realizar ações de isolamento nas suas VMs. Para cumprir o Modelo de Segurança de Acesso Mínimo Privilegiado (LPA), crie um papel RBAC personalizado.
Utilize a definição seguinte para a sua função, substituindo, quando necessário, o(s) ID(s) da subscrição:
{ "Name": "Linux Fence Agent", "description": "Allowed to power-off and start virtual machines", "assignableScopes": [ "/subscriptions/<Subscription 1 ID (GUID)>", "/subscriptions/<Subscription N ID (GUID)>" ], "actions": [ "Microsoft.Compute/*/read", "Microsoft.Compute/virtualMachines/powerOff/action", "Microsoft.Compute/virtualMachines/start/action" ], "notActions": [], "dataActions": [], "notDataActions": [] }Atribui o papel personalizado às tuas identidades.
Para cada VM no seu cluster, atribua a sua identidade gerida ao papel personalizado "Linux Fence Agent" para cada VM do cluster, incluindo ela própria. Para obter etapas detalhadas, consulte Atribuir um acesso de identidade gerenciado a um recurso usando o portal do Azure.
Importante
Esteja ciente de que a atribuição e remoção da autorização com identidades geridas pode ser adiada até entrar em vigor.
Criar e configurar o cluster
[A] Atualize o sistema operativo e reinicie se necessário.
sudo dnf -y update[A] Instalar pacotes de cluster necessários.
sudo dnf install -y nmap-ncat pcs pacemaker resource-agents resource-agents-cloud[A] Instalar os pacotes de vedação necessários.
sudo dnf install -y sbd fence-agents-sbdsudo dnf install -y sbd fence-agents-sbd iscsi-initiator-utilssudo dnf install -y fence-agents-azure-arm[A] Configurar o DNS.
Pode usar um servidor DNS ou modificar
/etc/hostsem cada um dos nós. Este exemplo mostra como usar o/etc/hostsarquivo.Atualize as entradas para corresponderem aos seus IPs e nomes de host.
sudo vi /etc/hosts [...] # IP address of cluster node 1 10.27.0.6 sap-cl1 # IP address of cluster node 2 10.27.0.7 sap-cl2sudo vi /etc/hosts [...] # IP address of cluster node 1 10.0.0.6 sap-cl1 # IP address of cluster node 2 10.0.0.7 sap-cl2 # IP address of iSCSI Target Host Server 1 10.0.0.17 sbd-iscsi1 # IP address of iSCSI Target Host Server 1 10.0.0.18 sbd-iscsi2 # IP address of iSCSI Target Host Server 1 10.0.0.19 sbd-iscsi3[A] Atualize a
haclusterpalavra-passe para ser a mesma em todos os nós.sudo passwd hacluster[A] Atualiza o firewall.
sudo firewall-cmd --add-service=high-availability --permanent sudo firewall-cmd --reload[A] Ativar os serviços do Pacemaker.
sudo systemctl start pcsd.service sudo systemctl enable pcsd.service[1] Cria o cluster.
sudo pcs host auth sap-cl1 sap-cl2 -u hacluster sudo pcs cluster setup ascsnw1 sap-cl1 sap-cl2 totem token=30000 sudo pcs cluster start --allConfigura um atraso de arranque para o Pacemaker.
Iniciar o Pacemaker imediatamente após o arranque pode potencialmente permitir que um nó volte a juntar-se ao cluster antes da conclusão do failover, prevenindo o failover ou atrasando a recuperação. Para resolver este problema, use um serviço de temporizador para atrasar o arranque do pacemaker ao reiniciar.
-
[A] Configurar o serviço do temporizador.
sudo vi /etc/systemd/system/pacemaker.timer[Unit] Description=Delay start of pacemaker.service after boot [Timer] OnBootSec=186 Unit=pacemaker.service [Install] WantedBy=timers.target -
[A] Ativar serviço de temporizador.
sudo systemctl daemon-reload sudo systemctl enable pacemaker.timer -
[1] Desativar os serviços do Pacemaker.
sudo pcs cluster disable --all
-
[A] Configurar o serviço do temporizador.
Valida o cluster.
-
[1] Validar o cluster do marcapasso.
sudo pcs status Cluster name: ascsnw1 Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: sap-cl1 (version 3.0.0-5.1.el10_0-8818a21) - partition with quorum * Last updated: Tue May 19 22:15:08 2026 on sap-cl1 * Last change: Tue Apr 21 23:11:34 2026 by root via root on sap-cl1 * 2 nodes configured * 0 resource instances configured Node List: * Online: [ sap-cl1 sap-cl2 ] Full List of Resources: Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled -
[A] Validar serviços.
systemctl list-unit-files pacemaker.timer pacemaker.service corosync.service pcsd.serviceUNIT FILE STATE PRESET corosync.service disabled disabled pacemaker.service disabled disabled pacemaker.timer enabled disabled pcsd.service enabled disabled
-
[1] Validar o cluster do marcapasso.
Configurar a vedação
-
[A] Ativar o serviço SBD.
sudo systemctl enable sbd -
[A] Ativar o sistema de vigilância de software.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[A] Descubra o ID do dispositivo iSCSI.
- Determinar o ponto de montagem com base no número LUN
ls -l /dev/disk/azure/scsi1/lun1 lrwxrwxrwx. 1 root root 12 Apr 16 20:22 /dev/disk/azure/scsi1/lun1 -> ../../../sdb - Obter o ID do dispositivo iSCSI a partir do ponto de montagem.
ls -l /dev/disk/by-id/scsi-3* | grep -i sdb lrwxrwxrwx. 1 root root 9 Apr 16 20:22 /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -> ../../sdb
- Determinar o ponto de montagem com base no número LUN
-
[1] Crie o dispositivo SBD.
sudo sbd -d /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -1 60 -4 120 create
-
[1] Adicionar o dispositivo SBD ao cluster.
sudo pcs stonith create sbd fence_sbd devices=/dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 op monitor interval=600 timeout=15 -
[1] Alterar as definições de configuração do SBD.
sudo pcs property set stonith-timeout=210 sudo pcs property set stonith-enabled=true -
[A] Validar ficheiro de configuração SBD.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
-
[A] Permitir os serviços necessários.
sudo systemctl enable sbd iscsi iscsid -
[A] Ativar o sistema de vigilância de software.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[1] Atualize o
InitiatorNamepara o nó 1.sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl1.local:sap-cl1 -
[2] Atualize o
InitiatorNamepara o nó 2.# Node 2 sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl2.local:sap-cl2 -
[A] Reiniciar os serviços iSCSI.
sudo systemctl restart iscsi iscsid -
[A] Monte os destinos iSCSI de todos os servidores anfitriões de iSCSI.
for hostServer in sbd-iscsi1 sbd-iscsi2 sbd-iscsi3; do iscsiadm -m discovery --type=st --portal=${hostServer}:3260 iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=${hostServer}:3260 iscsiadm -m node --portal=${hostServer}:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic done -
[A] Descobre os IDs dos dispositivos iSCSI.
- Determina os pontos de montagem do iSCSI.
lsscsi [0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [1:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdb [2:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdc [3:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdd [4:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sde - Obtenha os IDs dos dispositivos iSCSI.
ls -l /dev/disk/by-id/scsi-3* | grep sd[c,d,e] lrwxrwxrwx 1 root root 9 Jul 21 18:02 /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 -> ../../sdd lrwxrwxrwx 1 root root 9 Jul 21 17:50 /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff -> ../../sdc lrwxrwxrwx 1 root root 9 Jul 21 18:04 /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -> ../../sde
- Determina os pontos de montagem do iSCSI.
-
[1] Criar os dispositivos SBD.
sudo sbd -d /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -1 60 -4 120 create
-
[1] Adicionar os dispositivos SBD ao cluster.
sudo pcs stonith create sbd fence_sbd \ devices=/dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528,/dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff,/dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 \ op monitor interval=600 timeout=120 -
[1] Alterar as definições de configuração do SBD.
sudo pcs property set stonith-timeout=210 sudo pcs property set stonith-enabled=true -
[A] Validar ficheiro de configuração SBD.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
[1] Configure o agente de delimitação do Azure.
Nota
Ao usar o Azure Government Cloud, deve especificar essa
cloud=opção ao configurar o Azure Fence Agent. Por exemplo,cloud=usgovpara a Azure cloud do governo dos EUA.sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true \ resourceGroup="<ResourceGroupName>" subscriptionId="<SubscriptionID>" \ pcmk_host_map="sap-cl1:<AzureVMNameCL1>;sap-cl2:<AzureVMNameCL2>" \ power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 \ pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \ meta failure-timeout=120s op monitor interval=3600 timeout=120[1] Configurar o cluster para o Azure Fence Agent.
sudo pcs property set stonith-enabled=true sudo pcs property set stonith-timeout=900
Construir um cluster Pacemaker com mais de dois nós
Se está a construir um cluster maior, tenha estas considerações em mente:
[1] Ajustar a configuração do cluster.
Os
Votequorum - Expected votesvalores eVotequorum - Flags - 2Nodeatualizam-se automaticamente quando adicionas um terceiro ou mais nós. Valida que a2Nodeflag está ausente eVotequorum - Expected votesé igual ao número de nós no teu cluster.sudo pcs quorum status Quorum information ------------------ [...] Votequorum information ---------------------- Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate WaitForAll Membership information ---------------------- [...]Ajusta a configuração da vedação.
sudo crm resource param stonith-sbd delete pcmk_delay_max sudo crm resource param stonith-sbd set pcmk_action_limit -1sudo crm resource param rsc_st_azure delete pcmk_delay_max sudo crm resource param rsc_st_azure pcmk_action_limit -1
Configure o Pacemaker para eventos agendados no Azure
Eventos Programados é um Serviço de Metadados do Azure que dá tempo à sua aplicação para se preparar para a manutenção da VM. Fornece informações sobre eventos de manutenção futuros, como um reinício, para que a sua aplicação possa preparar-se para eles e limitar as interrupções.
O agente de recursos azure-events-az monitoriza este serviço de metadados. Quando o agente deteta eventos e determina que outro nó do cluster está disponível, define o atributo de estado de funcionamento ao nível do nó #health-azure para -1000000. Este valor faz com que o cluster considere o nó doente e migra recursos para longe do nó afetado. A restrição de localização garante que os recursos que começam por health- são excluídos, pois o agente azure-events-az ainda precisa de correr em ambos os nós. Quando o nó do cluster afetado já não tiver recursos do cluster em execução, o agente notifica o serviço de metadados e o evento programado pode continuar. Quando todos os eventos estiverem concluídos, o agente de recursos define o atributo #health-azure novamente como 0, assinalando o nó como saudável outra vez.
Importante
Anteriormente, este documento descrevia o uso do agente de recursos azure-events. O novo agente de recursos azure-events-az suporta totalmente ambientes do Azure implantados em diferentes zonas de disponibilidade. Utilize o agente azure-events-az mais recente para todos os sistemas SAP de alta disponibilidade com Pacemaker.
Instala e atualiza o
resource-agentspacote.sudo dnf install -y resource-agents[1] Coloque o cluster em modo de manutenção.
sudo pcs property set maintenance-mode=true[1] Defina a estratégia e restrição do nó de saúde do cluster Pacemaker.
Importante
Não defina nenhum outro recurso no cluster começando com
health-além dos recursos descritos nas próximas etapas.sudo pcs property set node-health-strategy=custom sudo pcs constraint location 'regexp%!health-.*' \ rule score-attribute='#health-azure' \ "defined #uname"[1] Defina o valor inicial dos atributos do cluster.
Executa um comando para cada nó do cluster. Para ambientes de escalabilidade, inclua a VM Majority Maker.
# Node 1 sudo crm_attribute --node sap-cl1 --name '#health-azure' --update 0 # Node 2 sudo crm_attribute --node sap-cl2 --name '#health-azure' --update 0 # Node N sudo crm_attribute --node sap-clN --name '#health-azure' --update 0[1] Configure os recursos no Pacemaker. Os recursos devem começar por
health-azure.sudo pcs resource create health-azure-events \ ocf:heartbeat:azure-events-az \ meta failure-timeout=120s \ op monitor interval=10s timeout=240s \ op start timeout=10s start-delay=90ssudo pcs resource clone health-azure-events meta allow-unhealthy-nodes=trueTire o cluster do Pacemaker do modo de manutenção e elimine quaisquer erros
sudo pcs property set maintenance-mode=false sudo pcs resource cleanupVerifique se
health-azure-eventsé iniciado com êxito em todos os nós.sudo pcs status Cluster name: ascsnw1 Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: sap-cl1 (version 3.0.0-5.1.el10_0-8818a21) - partition with quorum * Last updated: Tue May 19 22:15:08 2026 on sap-cl1 * Last change: Tue Apr 21 23:11:34 2026 by root via root on sap-cl1 * 2 nodes configured * 3 resource instances configured Node List: * Online: [ sap-cl1 sap-cl2 ] Full List of Resources: * sbd (stonith:fence_sbd): Started sap-cl1 * Clone Set: health-azure-events-clone [health-azure-events]: * Started: [ sap-cl1 sap-cl2 ] Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled sbd: active/enabledA execução da primeira consulta para eventos agendados pode levar até dois minutos. O teste de Pacemaker com eventos agendados pode usar ações de reinicialização ou reimplantação para as VMs do cluster. Para obter mais informações, consulte Eventos agendados.
Configuração opcional de vedação
Sugestão
Esta seção só é aplicável se você quiser configurar o dispositivo fence_kdumpde vedação especial.
Se precisar coletar informações de diagnóstico na VM, pode ser útil configurar outro dispositivo de isolação com base no agente de cerca fence_kdump. O fence_kdump agente pode detetar que um nó entrou na recuperação após falha com kdump e pode permitir que o serviço de recuperação de falhas do sistema seja concluído antes que outros métodos de isolamento sejam invocados. Note que o fence_kdump não substitui mecanismos tradicionais de vedação, como o SBD ou o agente Azure de vedação, quando está a usar Azure VMs.
Importante
Lembre-se de que, quando fence_kdump está configurado como um dispositivo de cercamento de primeiro nível, ele introduz atrasos nas operações de cercamento e, consequentemente, atrasos na comutação de recursos da aplicação.
Se um crash dump for detetado com sucesso, a proteção será adiada até que o serviço de recuperação após falha seja concluído. Se o nó com falha estiver inacessível ou não responder, a vedação será atrasada pelo tempo determinado, pelo número configurado de iterações e pelo fence_kdump tempo limite.
O tempo limite proposto fence_kdump poderá ter de ser adaptado ao ambiente específico.
Recomendamos que configure o fencing fence_kdump apenas quando necessário para recolher diagnósticos dentro da VM e sempre em combinação com métodos tradicionais de fencing, como SBD ou o agente de fence do Azure.
Os seguintes artigos da Base de Dados de Conhecimento Red Hat contêm informações importantes sobre como configurar fence_kdump a esgrima:
- Veja Como configuro fence_kdump num cluster Red Hat Pacemaker?
- Consulte Como configurar/gerenciar níveis de esgrima em um cluster RHEL com o Pacemaker.
- Para informações sobre como alterar o timeout predefinido, veja Como configuro o kdump para uso com o RHEL 6, 7, 8 HA Add-On?
- Para obter informações sobre como reduzir o atraso na transição de failover quando utiliza
fence_kdump, consulte É possível reduzir o atraso esperado na transição de failover ao adicionar a configuração fence_kdump?
Siga os seguintes passos opcionais para adicionar fence_kdump como configuração de cerca de primeiro nível, além da configuração do agente de vedação Azure.
[A] Verifique se
kdumpestá ativo e configurado.systemctl is-active kdump # Expected result # active[A] Instale o agente de fence.
sudo dnf install -y fence-agents-kdump[1] Crie um
fence_kdumpdispositivo de vedação no cluster.pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="sap-cl1 sap-cl2" timeout=30[1] Configure os níveis de vedação para que o mecanismo de
fence_kdumpvedação seja acionado primeiro.pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="sap-cl1 sap-cl2" pcs stonith level add 1 sap-cl1 rsc_st_kdump pcs stonith level add 1 sap-cl2 rsc_st_kdump # Replace <stonith-resource-name> to the resource name of the STONITH resource configured in your pacemaker cluster (example based on above configuration - sbd or rsc_st_azure) pcs stonith level add 2 sap-cl1 <stonith-resource-name> pcs stonith level add 2 sap-cl2 <stonith-resource-name> # Check the fencing level configuration pcs stonith level # Example output # Target: sap-cl1 # Level 1 - rsc_st_kdump # Level 2 - <stonith-resource-name> # Target: sap-cl2 # Level 1 - rsc_st_kdump # Level 2 - <stonith-resource-name>[A] Permita as portas necessárias para
fence_kdumpatravés do firewall.firewall-cmd --add-port=7410/udp --permanent firewall-cmd --reload[A] Execute a configuração
fence_kdump_nodesem/etc/kdump.confpara evitar quefence_kdumpfalhe com um tempo limite para algumas versões dekexec-tools. Para mais informações, consulte fence_kdump expira quando fence_kdump_nodes não é especificado com a versão 2.0.15 ou posterior do kexec-tools. O exemplo de configuração para um cluster de dois nós é apresentado aqui. Depois de fazer uma alteração no/etc/kdump.conf, a imagem kdump deve ser regenerada. Para regenerar, reinicie okdumpserviço.vi /etc/kdump.conf # On node prod-cl1-0 make sure the following line is added fence_kdump_nodes prod-cl1-1 # On node prod-cl1-1 make sure the following line is added fence_kdump_nodes prod-cl1-0 # Restart the service on each node systemctl restart kdump[A] Certifique-se de que o
initramfsficheiro de imagem contém osfence_kdumpficheiros ehosts.lsinitrd /boot/initramfs-$(uname -r)kdump.img | egrep "fence|hosts" # Example output # -rw-r--r-- 1 root root 208 Jun 7 21:42 etc/hosts # -rwxr-xr-x 1 root root 15560 Jun 17 14:59 usr/libexec/fence_kdump_sendTeste a configuração travando um nó.
Importante
Se o cluster já estiver em uso produtivo, planeie o teste em conformidade, uma vez que a falha de um nó tem um impacto na aplicação.
echo c > /proc/sysrq-trigger
Próximos passos
- Planejamento e implementação de Máquinas Virtuais do Azure para SAP.
- Implantação de Máquinas Virtuais do Azure para SAP.
- Implantação de DBMS de Máquinas Virtuais do Azure para SAP.
- Alta disponibilidade para NFS Simple Mount em VMs Azure no Red Hat Enterprise Linux.
- Para saber como estabelecer alta disponibilidade e planejar a recuperação de desastres do SAP HANA em VMs do Azure, consulte Alta disponibilidade do SAP HANA em máquinas virtuais do Azure.