Configurar o Pacemaker no Red Hat Enterprise Linux no Azure
Este artigo descreve como configurar o cluster do Pacemaker básico no RHEL (Red Hat Enterprise Server). As instruções abrangem o RHEL 7, RHEL 8 e RHEL 9.
Pré-requisitos
Primeiro, leia os seguintes artigos e Notas do SAP:
Documentação de Alta Disponibilidade (HA) do RHEL
- Como configurar e gerenciar Clusters de Alta Disponibilidade.
- Políticas de Suporte para Clusters de Alta Disponibilidade do RHEL: sbd e fence_sbd.
- Políticas de Suporte para Clusters de Alta Disponibilidade do RHEL: fence_azure_arm.
- Limitações Conhecidas do Watchdog Emulado por Software.
- Explorando os Componentes de Alta Disponibilidade do RHEL: sbd e fence_sbd.
- Diretrizes de design para Clusters de Alta Disponibilidade do RHEL: considerações sobre sbd.
- Considerações sobre a adoção do RHEL 8: Alta Disponibilidade e Clusters
Documentação do RHEL específica para o Azure
Documentação do RHEL para ofertas do SAP
- Políticas de Suporte para Clusters de Alta Disponibilidade do RHEL: Gerenciamento do SAP S/4HANA em um cluster.
- Como configurar o SAP S/4HANA ASCS/ERS com o Servidor de Enfileiramento Autônomo 2 (ENSA2) no Pacemaker.
- Como configurar a replicação de sistema do SAP HANA no cluster do Pacemaker.
- Solução HA do Red Hat Enterprise Linux para Expansão e Replicação de Sistema do SAP HANA.
Visão geral
Importante
Os clusters do Pacemaker que abrangem várias VNets (redes virtuais)/sub-redes não são cobertos por políticas de suporte padrão.
Existem duas opções disponíveis no Azure para configurar o isolamento em um cluster do Pacemaker para RHEL: o agente de isolamento do Azure, que reinicia um nó com falha por meio das APIs do Azure, ou você pode usar um dispositivo de SBD.
Importante
No Azure, o cluster de alta disponibilidade do RHEL com isolamento baseado em armazenamento (fence_sbd) usa um watchdog emulado por software. É importante ler os artigos Limitações Conhecidas do Watchdog Emulado por Software e Políticas de Suporte para Clusters de Alta Disponibilidade do RHEL: sbd e fence_sbd ao selecionar o SBD como um mecanismo de isolamento.
Usar um dispositivo SBD
Observação
O mecanismo de isolamento com SBD é compatível com o RHEL 8.8 e superior e com o RHEL 9.0 e superior.
Configure o dispositivo SBD usando uma de duas opções:
SBD com servidor de destino iSCSI
O dispositivo de SBD requer pelo menos uma máquina virtual (VM) adicional que atue como uma Interface entre Pequenos Sistemas de Computação e a Internet (iSCSI) e forneça um dispositivo de SBD. No entanto, esses servidores de destino iSCSI podem ser compartilhados com outros clusters do Pacemaker. A vantagem de usar um dispositivo de SBD é que, se você já estiver usando dispositivos de SBD no local, não será necessário mudar a forma como você opera o cluster do Pacemaker.
Você pode usar até três dispositivos de SBD para que um cluster do Pacemaker permita que um dispositivo de SBD se torne indisponível (por exemplo, durante a aplicação de patch do sistema operacional do servidor de destino iSCSI). Se quiser usar mais de um dispositivo de SBD por Pacemaker, certifique-se de implantar vários servidores de destino iSCSI e conecte um SBD de cada servidor de destino iSCSI. Recomendamos usar um ou três dispositivos de SBD. O Pacemaker não poderá isolar um nó de cluster automaticamente se apenas dois dispositivos de SBD estiverem configurados e um deles estiver indisponível. Se quiser ser capaz de limitar quando um servidor de destino iSCSI estiver inativo, você precisará usar três dispositivos SBD e, portanto, três servidores de destino iSCSI. Essa é a configuração mais resiliente quando você está usando SBDs.
Importante
Quando estiver planejando implantar e configurar nós de cluster do Pacemaker e dispositivos de SBD no Linux, não permita que o roteamento entre suas máquinas virtuais e as VMs que estão hospedando os dispositivos de SBD passe por outros dispositivos, como uma solução de virtualização de rede (NVA).
Eventos de manutenção e outros problemas com a NVA poderão ter impacto negativo na estabilidade e confiabilidade da configuração geral do cluster. Para obter mais informações, confira regras de roteamento definidas pelo usuário.
SBD com um disco compartilhado do Azure
Para configurar um dispositivo de SBD, você precisa anexar pelo menos um disco compartilhado do Azure a todas as máquinas virtuais que fazem parte do cluster do Pacemaker. A vantagem de usar um disco compartilhado do Azure para o dispositivo de SBD é que você não precisa implantar e configurar máquinas virtuais adicionais.
Confira algumas considerações importantes sobre dispositivos de SBD ao configurá-los com o uso de um disco compartilhado do Azure:
- Um disco compartilhado do Azure com SSD Premium tem suporte como um dispositivo SBD.
- Dispositivos SBD que usam um disco compartilhado do Azure são compatíveis com o RHEL 8.8 e posterior.
- Os dispositivos de SBD que usam um disco compartilhado premium do Azure são compatíveis com o armazenamento com redundância local (LRS) e com o armazenamento com redundância de zona (ZRS).
- Dependendo do tipo da sua implantação, escolha o armazenamento redundante apropriado de um disco compartilhado do Azure como seu dispositivo SBD.
- Um dispositivo de SBD que usa LRS para um disco compartilhado Premium do Azure (skuName Premium_LRS) só terá suporte se o conjunto de disponibilidade tiver implantação regional.
- Um dispositivo de SBD usando ZRS para um disco compartilhado Premium do Azure (skuName Premium_ZRS) é recomendado com um conjunto de disponibilidade com implantação zonal ou um conjunto de dimensionamento com FD=1.
- Uma ZRS para disco gerenciado está disponível atualmente nas regiões listadas no documento de disponibilidade regional.
- O disco compartilhado do Azure que você usa nos dispositivos SBD não precisa ser grande. O valor maxShares determina quantos nós de cluster podem usar o disco compartilhado. Por exemplo, você pode usar tamanhos de disco P1 ou P2 para o dispositivo SBD em um cluster de dois nós como o SAP ASCS/ERS ou o SAP HANA com escalonamento vertical.
- Para a expansão do HANA com replicação do sistema HANA (HSR) e Pacemaker, você pode usar um disco compartilhado do Azure para dispositivos de SBD em clusters com até cinco nós por site de replicação, devido ao limite atual de maxShares.
- Não recomendamos anexar um dispositivo de SBD com disco compartilhado do Azure nos clusters do Pacemaker.
- Se você usa vários dispositivos SBD de disco compartilhado do Azure, verifique o limite para o número máximo de discos de dados que podem ser anexados a uma VM.
- Para obter mais informações sobre as limitações dos discos compartilhados do Azure, examine com atenção a seção "Limitações" da Documentação do disco compartilhado do Azure.
Usar um agente de limitação do Azure
Você pode configurar o isolamento usando um agente de isolamento do Azure. O agente de isolamento do Azure requer identidades gerenciadas para as VMs de cluster ou uma entidade de serviço ou identidade de sistema gerenciada (MSI) que gerencie a reinicialização de nós com falha por meio de APIs do Azure. O agente de limitação do Azure não exige a implantação de máquinas virtuais adicionais.
SBD com um servidor de destino iSCSI
Para usar um dispositivo SBD que usa um servidor de destino iSCSI para limitação, siga as instruções nas próximas seções.
Configurar o servidor de destino iSCSI
Primeiro, você precisa criar as máquinas virtuais de destino iSCSI. Você pode compartilhar servidores de destino iSCSI com vários clusters do Pacemaker.
Implante máquinas virtuais que são executadas na versão do sistema operacional do RHEL com suporte e conecte-se a elas por meio de SSH. As VMs não precisam ser grandes. Tamanhos de VM como o Standard_E2s_v3 ou Standard_D2s_v3 são suficientes. Use o armazenamento Premium para o disco do SO.
Não é necessário usar o RHEL para SAP com HA e serviços de atualização, ou a imagem do sistema operacional do RHEL para Aplicativos SAP para o servidor de destino iSCSI. Em vez disso, poder ser usada uma imagem padrão do sistema operacional do RHEL. No entanto, lembre-se de que o ciclo de vida de suporte varia entre diferentes versões de produto do sistema operacional.
Execute os seguintes comandos em todas as máquinas virtuais de destino iSCSI.
Atualize o RHEL.
sudo yum -y update
Observação
Talvez você precise reinicializar o nó após atualizar ou fazer um upgrade do sistema operacional.
Instale os pacotes de destino iSCSI.
sudo yum install targetcli
Inicie e configure o destino para iniciar no momento da inicialização.
sudo systemctl start target sudo systemctl enable target
Abra uma porta
3260
no firewall.sudo firewall-cmd --add-port=3260/tcp --permanent sudo firewall-cmd --add-port=3260/tcp
Criar um dispositivo iSCSI no servidor de destino do iSCSI
Para criar os discos iSCSI para os clusters do seu sistema SAP, execute os seguintes comandos em cada máquina virtual de destino iSCSI. O exemplo ilustra a criação de dispositivos de SBD para vários clusters, demonstrando o uso de um único servidor de destino iSCSI para vários clusters. O dispositivo de SBD está configurado no disco do sistema operacional. Portanto, certifique-se de que haja espaço suficiente.
- ascsnw1: representa o cluster ASCS/ERS do NW1.
- dbhn1: representa o cluster de banco de dados do HN1.
- sap-cl1 e sap-cl2: nomes de host dos nós de cluster ASCS/ERS do NW1.
- hn1-db-0 e hn1-db-1: nomes de host dos nós do cluster de banco de dados.
Nas instruções a seguir, modifique o comando com seus nomes de host e SIDs específicos, conforme necessário.
Crie a pasta raiz para todos os dispositivos SBD.
sudo mkdir /sbd
Crie o dispositivo de SBD para os servidores ASCS/ERS do sistema NW1.
sudo targetcli backstores/fileio create sbdascsnw1 /sbd/sbdascsnw1 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.ascsnw1.local:ascsnw1 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/luns/ create /backstores/fileio/sbdascsnw1 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl1.local:sap-cl1 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl2.local:sap-cl2
Crie o dispositivo de SBD para o cluster de banco de dados do Sistema HN1.
sudo targetcli backstores/fileio create sbddbhn1 /sbd/sbddbhn1 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.dbhn1.local:dbhn1 sudo targetcli iscsi/iqn.2006-04.dbhn1.local:dbhn1/tpg1/luns/ create /backstores/fileio/sbddbhn1 sudo targetcli iscsi/iqn.2006-04.dbhn1.local:dbhn1/tpg1/acls/ create iqn.2006-04.hn1-db-0.local:hn1-db-0 sudo targetcli iscsi/iqn.2006-04.dbhn1.local:dbhn1/tpg1/acls/ create iqn.2006-04.hn1-db-1.local:hn1-db-1
Salve a configuração targetcli.
sudo targetcli saveconfig
Verifique para se certificar de que tudo foi configurado corretamente.
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- sbddbhn1 ................................................................... [/sbd/sbddbhn1 (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.dbhn1.local:dbhn1 ..................................................................................... [TPGs: 1] | | o- tpg1 ............................................................................................... [no-gen-acls, no-auth] | | o- acls .......................................................................................................... [ACLs: 2] | | | o- iqn.2006-04.hn1-db-0.local:hn1-db-0 .................................................................. [Mapped LUNs: 1] | | | | o- mapped_lun0 ............................................................................... [lun0 fileio/sbdhdb (rw)] | | | o- iqn.2006-04.hn1-db-1.local:hn1-db-1 .................................................................. [Mapped LUNs: 1] | | | o- mapped_lun0 ............................................................................... [lun0 fileio/sbdhdb (rw)] | | o- luns .......................................................................................................... [LUNs: 1] | | | o- lun0 ............................................................. [fileio/sbddbhn1 (/sbd/sbddbhn1) (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/sbdascsers (rw)] | | o- iqn.2006-04.sap-cl2.local:sap-cl2 .................................................................... [Mapped LUNs: 1] | | o- mapped_lun0 ........................................................................... [lun0 fileio/sbdascsers (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 dispositivo SBD do servidor de destino iSCSI
[A] Aplica-se a todos os nós. [1]: aplica-se somente ao nó 1. [2]: aplica-se somente ao nó 2.
Nos nós de cluster, conecte e descubra o dispositivo de iSCSI que foi criado na seção anterior. Execute os comandos a seuir nos nós do novo cluster que você deseja criar.
[A] Instale ou atualize os utilitários do iniciador iSCSI em todos os nós do cluster.
sudo yum install -y iscsi-initiator-utils
[A] Instale os pacotes de cluster e SBD em todos os nós do cluster.
sudo yum install -y pcs pacemaker sbd fence-agents-sbd
[A] Habilite o serviço de iSCSI.
sudo systemctl enable iscsid iscsi
[1] Altere o nome do iniciador no primeiro nó do cluster.
sudo vi /etc/iscsi/initiatorname.iscsi # Change the content of the file to match the access control ists (ACLs) you used when you created the iSCSI device on the iSCSI target server (for example, for the ASCS/ERS servers) InitiatorName=iqn.2006-04.sap-cl1.local:sap-cl1
[2] Altere o nome do iniciador no segundo nó do cluster.
sudo vi /etc/iscsi/initiatorname.iscsi # Change the content of the file to match the access control ists (ACLs) you used when you created the iSCSI device on the iSCSI target server (for example, for the ASCS/ERS servers) InitiatorName=iqn.2006-04.sap-cl2.local:sap-cl2
[A] Reinicie o serviço de iSCSI para aplicar as alterações.
sudo systemctl restart iscsid sudo systemctl restart iscsi
[A] Conecte os dispositivos iSCSI. No exemplo a seguir, 10.0.0.17 é o endereço IP do servidor de destino do iSCSI e 3260 é a porta padrão. O nome do destino
iqn.2006-04.ascsnw1.local:ascsnw1
é listado quando você executa o primeiro comandoiscsiadm -m discovery
.sudo iscsiadm -m discovery --type=st --portal=10.0.0.17:3260 sudo iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=10.0.0.17:3260 sudo iscsiadm -m node -p 10.0.0.17:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic
[A] Se estiver usando vários dispositivos de SBD, conecte-se também ao segundo servidor de destino iSCSI.
sudo iscsiadm -m discovery --type=st --portal=10.0.0.18:3260 sudo iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=10.0.0.18:3260 sudo iscsiadm -m node -p 10.0.0.18:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic
[A] Se estiver usando vários dispositivos de SBD, conecte-se também ao terceiro servidor de destino iSCSI.
sudo iscsiadm -m discovery --type=st --portal=10.0.0.19:3260 sudo iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=10.0.0.19:3260 sudo iscsiadm -m node -p 10.0.0.19:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic
[A]Certifique-se de que os dispositivos de iSCSI estejam disponíveis e anote o nome do dispositivo. No exemplo a seguir, três dispositivos de iSCSI são descobertos conectando o nó a três servidores de destino iSCSI.
lsscsi [0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sde [1:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [1:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdb [1:0:0:2] disk Msft Virtual Disk 1.0 /dev/sdc [1:0:0:3] disk Msft Virtual Disk 1.0 /dev/sdd [2:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdf [3:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdh [4:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdg
[A] Recupere as IDs dos dispositivos iSCSI.
ls -l /dev/disk/by-id/scsi-* | grep -i sdf # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-1LIO-ORG_sbdhdb:85d254ed-78e2-4ec4-8b0d-ecac2843e086 -> ../../sdf # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2 -> ../../sdf # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-SLIO-ORG_sbdhdb_85d254ed-78e2-4ec4-8b0d-ecac2843e086 -> ../../sdf ls -l /dev/disk/by-id/scsi-* | grep -i sdh # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-1LIO-ORG_sbdhdb:87122bfc-8a0b-4006-b538-d0a6d6821f04 -> ../../sdh # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d -> ../../sdh # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-SLIO-ORG_sbdhdb_87122bfc-8a0b-4006-b538-d0a6d6821f04 -> ../../sdh ls -l /dev/disk/by-id/scsi-* | grep -i sdg # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-1LIO-ORG_sbdhdb:d2ddc548-060c-49e7-bb79-2bb653f0f34a -> ../../sdg # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65 -> ../../sdg # lrwxrwxrwx 1 root root 9 Jul 15 20:21 /dev/disk/by-id/scsi-SLIO-ORG_sbdhdb_d2ddc548-060c-49e7-bb79-2bb653f0f34a -> ../../sdg
O comando lista três IDs de dispositivo para cada dispositivo SBD. É recomendável usar a ID que começa com scsi-3. No exemplo anterior, as IDs são:
- /dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2
- /dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d
- /dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65
[1] Crie o dispositivo SBD.
Use a ID do dispositivo dos dispositivos iSCSI para criar os novos dispositivos SBD no primeiro nó do cluster.
sudo sbd -d /dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2 -1 60 -4 120 create
Crie também o segundo e o terceiro dispositivos SBD se quiser usar mais de um.
sudo sbd -d /dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65 -1 60 -4 120 create
[A] Adapte a configuração do SBD.
Abra o arquivo de configuração do SBD.
sudo vi /etc/sysconfig/sbd
Altere a propriedade do dispositivo SBD, habilite a integração do pacemaker e altere o modo de início de SBD.
[...] SBD_DEVICE="/dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2;/dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d;/dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65" [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...] SBD_DELAY_START=yes [...]
[A] Execute o comando a seguir para carregar o módulo
softdog
.modprobe softdog
[A] Execute o comando a seguir para garantir que o
softdog
seja carregado automaticamente após uma reinicialização de nó.echo softdog > /etc/modules-load.d/watchdog.conf systemctl restart systemd-modules-load
[A] O valor do tempo limite do serviço de SBD é definido como 90s por padrão. No entanto, se o valor
SBD_DELAY_START
for definido comoyes
, o serviço de SBD atrasará seu início até depois do tempo limite demsgwait
. Portanto, o valor do tempo limite do serviço de SBD deve exceder o tempo limite demsgwait
quandoSBD_DELAY_START
estiver habilitado.sudo mkdir /etc/systemd/system/sbd.service.d echo -e "[Service]\nTimeoutSec=144" | sudo tee /etc/systemd/system/sbd.service.d/sbd_delay_start.conf sudo systemctl daemon-reload systemctl show sbd | grep -i timeout # TimeoutStartUSec=2min 24s # TimeoutStopUSec=2min 24s
SBD com um disco compartilhado do Azure
Esta seção se aplica somente quando você quiser usar um dispositivo de SBD com um disco compartilhado do Azure.
Configurar o disco compartilhado do Azure com o PowerShell
Para criar e anexar um disco compartilhado do Azure com o PowerShell, execute as instruções a seguir. Se quiser implantar recursos usando a CLI do Azure ou o portal do Azure, consulte Implantar um disco ZRS.
$ResourceGroup = "MyResourceGroup"
$Location = "MyAzureRegion"
$DiskSizeInGB = 4
$DiskName = "SBD-disk1"
$ShareNodes = 2
$LRSSkuName = "Premium_LRS"
$ZRSSkuName = "Premium_ZRS"
$vmNames = @("prod-cl1-0", "prod-cl1-1") # VMs to attach the disk
# ZRS Azure shared disk: Configure an Azure shared disk with ZRS for a premium shared disk
$zrsDiskConfig = New-AzDiskConfig -Location $Location -SkuName $ZRSSkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$zrsDataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $zrsDiskConfig
# Attach ZRS disk to cluster VMs
foreach ($vmName in $vmNames) {
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $zrsDataDisk.Id -Lun 0
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}
# LRS Azure shared disk: Configure an Azure shared disk with LRS for a premium shared disk
$lrsDiskConfig = New-AzDiskConfig -Location $Location -SkuName $LRSSkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$lrsDataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $lrsDiskConfig
# Attach LRS disk to cluster VMs
foreach ($vmName in $vmNames) {
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $lrsDataDisk.Id -Lun 0
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}
Configurar um dispositivo SBD de disco compartilhado do Azure
[A] Instale os pacotes de cluster e SBD em todos os nós do cluster.
sudo yum install -y pcs pacemaker sbd fence-agents-sbd
[A] Certifique-se de que o disco anexado está disponível.
lsblk # NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT # sda 8:0 0 4G 0 disk # sdb 8:16 0 64G 0 disk # ├─sdb1 8:17 0 500M 0 part /boot # ├─sdb2 8:18 0 63G 0 part # │ ├─rootvg-tmplv 253:0 0 2G 0 lvm /tmp # │ ├─rootvg-usrlv 253:1 0 10G 0 lvm /usr # │ ├─rootvg-homelv 253:2 0 1G 0 lvm /home # │ ├─rootvg-varlv 253:3 0 8G 0 lvm /var # │ └─rootvg-rootlv 253:4 0 2G 0 lvm / # ├─sdb14 8:30 0 4M 0 part # └─sdb15 8:31 0 495M 0 part /boot/efi # sr0 11:0 1 1024M 0 rom lsscsi # [0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdb # [0:0:0:2] cd/dvd Msft Virtual DVD-ROM 1.0 /dev/sr0 # [1:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda # [1:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdc
[A] Recupere a ID do dispositivo do disco compartilhado anexado.
ls -l /dev/disk/by-id/scsi-* | grep -i sda # lrwxrwxrwx 1 root root 9 Jul 15 22:24 /dev/disk/by-id/scsi-14d534654202020200792c2f5cc7ef14b8a7355cb3cef0107 -> ../../sda # lrwxrwxrwx 1 root root 9 Jul 15 22:24 /dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107 -> ../../sda
A ID do dispositivo de lista de comandos para o disco compartilhado anexado. É recomendável usar a ID que começa com scsi-3. Nesse exemplo, a ID é /dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107.
[1]Criar o dispositivo SBD
# Use the device ID from step 3 to create the new SBD device on the first cluster node sudo sbd -d /dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107 -1 60 -4 120 create
[A] Adapte a configuração do SBD.
Abra o arquivo de configuração do SBD.
sudo vi /etc/sysconfig/sbd
Altere a propriedade do dispositivo de SBD, habilite a integração do Pacemaker e altere o modo inicial do SBD.
[...] SBD_DEVICE="/dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107" [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...] SBD_DELAY_START=yes [...]
[A] Execute o comando a seguir para carregar o módulo
softdog
.modprobe softdog
[A] Execute o comando a seguir para garantir que o
softdog
seja carregado automaticamente após uma reinicialização de nó.echo softdog > /etc/modules-load.d/watchdog.conf systemctl restart systemd-modules-load
[A] O valor do tempo limite do serviço de SBD é definido como 90 segundos por padrão. No entanto, se o valor
SBD_DELAY_START
for definido comoyes
, o serviço de SBD atrasará seu início até depois do tempo limite demsgwait
. Portanto, o valor do tempo limite do serviço de SBD deve exceder o tempo limite demsgwait
quandoSBD_DELAY_START
estiver habilitado.sudo mkdir /etc/systemd/system/sbd.service.d echo -e "[Service]\nTimeoutSec=144" | sudo tee /etc/systemd/system/sbd.service.d/sbd_delay_start.conf sudo systemctl daemon-reload systemctl show sbd | grep -i timeout # TimeoutStartUSec=2min 24s # TimeoutStopUSec=2min 24s
Configuração do agente de isolamento do Azure
O dispositivo de isolamento usa uma identidade gerenciada para recursos do Azure ou uma entidade de serviço para autorização no Azure. Dependendo do método de gerenciamento de identidade, siga os procedimentos apropriados:
Configurar o gerenciamento de identidades
Use a identidade gerenciada ou a entidade de serviço.
Para criar uma MSI (identidade gerenciada), crie uma identidade gerenciada atribuída pelo sistema para cada VM no cluster. Se já existir, uma identidade gerenciada atribuída pelo sistema será usada. Não use identidades gerenciadas atribuídas pelo usuário com o Pacemaker no momento. Há suporte para um dispositivo de isolamento, baseado na identidade gerenciada, no RHEL 7.9 e no RHEL 8.x/RHEL 9.x.
Criar uma função personalizada para o agente de limite
Por padrão, a identidade gerenciada e a entidade de serviço não têm permissões para acessar seus recursos do Azure. Você precisa fornecer permissões à identidade gerenciada ou à entidade de serviço para iniciar e parar (desligar) todas as VMs do cluster. Se você ainda não criou a função personalizada, poderá criá-la usando o PowerShell ou a CLI do Azure.
Use o seguinte conteúdo para o arquivo de entrada. Você precisa adaptar o conteúdo às suas assinaturas, ou seja, substituir
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
eyyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
pelas IDs da sua assinatura. Se você tiver apenas uma assinatura, remova a segunda entrada emAssignableScopes
.{ "Name": "Linux Fence Agent Role", "description": "Allows to power-off and start virtual machines", "assignableScopes": [ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "/subscriptions/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" ], "actions": [ "Microsoft.Compute/*/read", "Microsoft.Compute/virtualMachines/powerOff/action", "Microsoft.Compute/virtualMachines/start/action" ], "notActions": [], "dataActions": [], "notDataActions": [] }
Atribuir a função personalizada
Use a identidade gerenciada ou a entidade de serviço.
Atribua a função personalizada
Linux Fence Agent Role
que foi criada na última seção a cada identidade gerenciada das VMs do cluster. Cada identidade gerenciada atribuída pelo sistema da VM precisa da função atribuída para o recurso de cada VM de cluster. Para obter mais informações, confira Atribuir o acesso de uma identidade gerenciada a um recurso usando o portal do Azure. Verifique se a atribuição de função da identidade gerenciada de cada VM contém todas as VMs do cluster.Importante
Lembre-se de que a atribuição e a remoção da autorização com identidades gerenciadas podem ser adiadas até que elas entrem em vigor.
Instalação do Cluster
As diferenças nos comandos ou na configuração entre o RHEL 7 e o RHEL 8/RHEL 9 estão marcadas no documento.
[A] Instale o complemento de HA do RHEL.
sudo yum install -y pcs pacemaker nmap-ncat
[A] No RHEL 9.x, instale os agentes de recursos para implantação na nuvem.
sudo yum install -y resource-agents-cloud
[A] Instale o pacote de agentes de isolamento se estiver usando um dispositivo de isolamento baseado no agente de isolamento do Azure.
sudo yum install -y fence-agents-azure-arm
Importante
Recomendamos as versões a seguir (ou posterior) do agente de isolamento do Azure para clientes que desejam usar as identidades gerenciadas para recursos do Azure em vez de nomes de entidade de serviço para o agente de isolamento:
- RHEL 8.4: fence-agents-4.2.1-54.el8.
- RHEL 8.2: fence-agents-4.2.1-41.el8_2.4
- RHEL 8.1: fence-agents-4.2.1-30.el8_1.4
- RHEL 7.9: fence-agents-4.2.1-41.el7_9.4.
Importante
No RHEL 9, recomendamos as seguintes versões de pacote (ou posteriores) para evitar problemas com o agente de isolamento do Azure:
- fence-agents-4.10.0-20.el9_0.7
- fence-agents-common-4.10.0-20.el9_0.6
- ha-cloud-support-4.10.0-20.el9_0.6.x86_64.rpm
Verifique a versão do agente de isolamento do Azure. Se necessário, atualize-o para a versão mínima necessária ou posterior.
# Check the version of the Azure Fence Agent sudo yum info fence-agents-azure-arm
Importante
Se precisar atualizar o agente de isolamento do Azure e estiver usando uma função personalizada, atualize-a para incluir a ação powerOff. Para obter mais informações, confira Criar uma função personalizada para o agente de isolamento.
[A] Configurar a resolução de nome do host.
Você pode usar um servidor DNS ou modificar o arquivo
/etc/hosts
em todos os nós. Este exemplo mostra como usar o arquivo/etc/hosts
. Substitua o endereço IP e o nome do host nos comandos a seguir.Importante
Se você está usando nomes de host na configuração do cluster, é essencial ter uma resolução de nome de host confiável. A comunicação do cluster falhará se os nomes não estiverem disponíveis, o que pode resultar em atrasos de failover de cluster.
A vantagem de usar
/etc/hosts
é que o cluster se torna independente do DNS, o que também pode ser um ponto único de falhas.sudo vi /etc/hosts
Insira as seguintes linhas até
/etc/hosts
. Altere o endereço IP e o nome do host para corresponder ao seu ambiente.# IP address of the first cluster node 10.0.0.6 prod-cl1-0 # IP address of the second cluster node 10.0.0.7 prod-cl1-1
[A] Altere a senha de
hacluster
para a mesma senha.sudo passwd hacluster
[A] Adicione regras de firewall ao Pacemaker.
Adicione as seguintes regras de firewall para todas as comunicações de cluster entre os nós do cluster.
sudo firewall-cmd --add-service=high-availability --permanent sudo firewall-cmd --add-service=high-availability
[A] Habilite serviços básicos de cluster.
Execute os seguintes comandos para habilitar o serviço Pacemaker e iniciá-lo.
sudo systemctl start pcsd.service sudo systemctl enable pcsd.service
[1] Crie um cluster do Pacemaker.
Execute os seguintes comandos para autenticar os nós e criar o cluster. Defina o token como 30000 para permitir a manutenção da memória. Para obter mais informações, confira este artigo para Linux.
Se você estiver criando um cluster no RHEL 7.x, use os seguintes comandos:
sudo pcs cluster auth prod-cl1-0 prod-cl1-1 -u hacluster sudo pcs cluster setup --name nw1-azr prod-cl1-0 prod-cl1-1 --token 30000 sudo pcs cluster start --all
Se você estiver criando um cluster no RHEL 8.x/RHEL 9.x, use os seguintes comandos:
sudo pcs host auth prod-cl1-0 prod-cl1-1 -u hacluster sudo pcs cluster setup nw1-azr prod-cl1-0 prod-cl1-1 totem token=30000 sudo pcs cluster start --all
Verifique o status do cluster executando o seguinte comando:
# Run the following command until the status of both nodes is online sudo pcs status # Cluster name: nw1-azr # WARNING: no stonith devices and stonith-enabled is not false # Stack: corosync # Current DC: prod-cl1-1 (version 1.1.18-11.el7_5.3-2b07d5c5a9) - partition with quorum # Last updated: Fri Aug 17 09:18:24 2018 # Last change: Fri Aug 17 09:17:46 2018 by hacluster via crmd on prod-cl1-1 # # 2 nodes configured # 0 resources configured # # Online: [ prod-cl1-0 prod-cl1-1 ] # # No resources # # Daemon Status: # corosync: active/disabled # pacemaker: active/disabled # pcsd: active/enabled
[A] Defina os votos esperados.
# Check the quorum votes pcs quorum status # If the quorum votes are not set to 2, execute the next command sudo pcs quorum expected-votes 2
Dica
Se você estiver criando um cluster de vários nós, ou seja, um cluster com mais de 2 nós, não defina os votos como 2.
[1] Permita ações simultâneas de isolamento.
sudo pcs property set concurrent-fencing=true
Criar um dispositivo de isolamento no cluster do Pacemaker
Dica
- Para evitar corridas de isolamento dentro de um cluster do Pacemaker de dois nós, você pode configurar a propriedade do cluster
priority-fencing-delay
. Essa propriedade introduz um atraso adicional no isolamento de um nó que tem uma prioridade total de recursos mais alta quando ocorre um cenário de split-brain. Para obter mais informações, confira O Pacemaker pode isolar o nó de cluster com o menor número de recursos em execução?. - A propriedade
priority-fencing-delay
é aplicável ao Pacemaker versão 2.0.4-6.el8 ou superior e a um cluster de dois nós. Se você configurar a propriedade do clusterpriority-fencing-delay
, não precisará definir a propriedadepcmk_delay_max
. No entanto, se a versão do Pacemaker for menor que 2.0.4-6.el8, você precisará definir a propriedadepcmk_delay_max
. - Para obter instruções sobre como definir a propriedade do cluster
priority-fencing-delay
, confira os respectivos documentos de HA de expansão do SAP ASCS/ERS e do SAP HANA.
Com base no mecanismo de isolamento selecionado, siga apenas uma seção para obter as instruções relevantes: SBD como dispositivo de isolamento ou agente de isolamento do Azure como dispositivo de isolamento.
SBD como dispositivo de isolamento
[A] Habilite o serviço de SBD.
sudo systemctl enable sbd
[1] Para o dispositivo de SBD configurado usando servidores de destino iSCSI ou discos compartilhados do Azure, execute os comandos a seguir.
sudo pcs property set stonith-timeout=144 sudo pcs property set stonith-enabled=true # Replace the device IDs with your device ID. pcs stonith create sbd fence_sbd \ devices=/dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2,/dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d,/dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65 \ op monitor interval=600 timeout=15
[1] Reinicie o cluster.
sudo pcs cluster stop --all # It would take time to start the cluster as "SBD_DELAY_START" is set to "yes" sudo pcs cluster start --all
Observação
Caso se depare com o seguinte erro ao iniciar o cluster do Pacemaker, você poderá desconsiderar a mensagem. Alternativamente, você pode iniciar o cluster usando o comando
pcs cluster start --all --request-timeout 140
.Erro: não foi possível iniciar todos os nós node1/node2; não foi possível se conectar ao nó1/node2, verifique se o pcsd está em execução no nó em questão ou tente definir um tempo limite mais alto com a opção
--request-timeout
(a operação atingiu o tempo limite após 60.000 milissegundos com 0 bytes recebidos)
Agente de isolamento do Azure como dispositivo de isolamento
[1] Após atribuir funções aos dois nós de cluster, você poderá configurar os dispositivos de isolamento no cluster.
sudo pcs property set stonith-timeout=900 sudo pcs property set stonith-enabled=true
[1] Execute o comando apropriado, dependendo de você estar usando uma identidade gerenciada ou uma entidade de serviço para o agente de isolamento do Azure.
Observação
Ao usar a nuvem governamental do Azure, especifique a opção
cloud=
ao configurar o agente de cerca. Por exemplo,cloud=usgov
para a nuvem do governo dos EUA do Azure. Para obter detalhes sobre o suporte do RedHat na nuvem governamental do Azure, consulte Políticas de suporte para clusters de alta disponibilidade do RHEL – Máquinas Virtuais do Microsoft Azure como membros do cluster.Dica
A opção
pcmk_host_map
é somente necessária no comando se os nomes do host do RHEL e os nomes de VM do Azure não forem idênticos. Especifique o mapeamento no formato nome do host: vm-name. Para obter mais informações, confira Qual formato devo usar para especificar os mapeamentos de nó para os dispositivos de isolamento em pcmk_host_map?.Para RHEL 7.x, use o seguinte comando para configurar o dispositivo fence:
sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \ subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \ power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \ op monitor interval=3600
Para o RHEL 8.x/9.x, use o seguinte comando para configurar o dispositivo de isolamento:
# Run following command if you are setting up fence agent on (two-node cluster and pacemaker version greater than 2.0.4-6.el8) OR (HANA scale out) sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \ subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \ power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 \ op monitor interval=3600 # Run following command if you are setting up fence agent on (two-node cluster and pacemaker version less than 2.0.4-6.el8) sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \ subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \ power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \ op monitor interval=3600
Se você estiver usando um dispositivo de isolamento, baseado na configuração da entidade de serviço, leia Alterar de SPN para MSI para clusters do Pacemaker usando o isolamento do Azure e saiba como fazer a conversão para a configuração da identidade gerenciada.
As operações de monitoramento e limitação são desserializadas. Como resultado, se houver uma operação de monitoramento de execução longa e um evento de limitação simultâneo, não haverá atraso no failover do cluster, porque a operação de monitoramento já estará em execução.
Dica
O agente de isolamento do Azure exige a conectividade de saída com pontos de extremidade públicos. Para obter mais informações, além das possíveis soluções, confira Conectividade de ponto de extremidade público para VMs usando o ILB padrão.
Configurar o Pacemaker para eventos agendados do Azure
O Azure oferece eventos agendados. Os eventos agendados são enviados pelo serviço de metadados e permitem tempo para o aplicativo se preparar para esses eventos.
O agente de recursos azure-events-az
do Pacemaker monitora os eventos agendados do Azure. Se os eventos forem detectados e o agente de recursos determinar que outro nó de cluster está disponível, ele definirá um atributo de integridade do cluster.
Quando o atributo de integridade do cluster é definido para um nó, a restrição de local dispara e todos os recursos com nomes que não começam com health-
são migrados para longe do nó com o evento agendado. Depois que o nó de cluster afetado estiver livre dos recursos de cluster em execução, o evento agendado será reconhecido e poderá executar a respectiva ação, como reinicialização.
[A] Verifique se o pacote do agente
azure-events-az
já está instalado e atualizado.RHEL 8.x: sudo dnf info resource-agents RHEL 9.x: sudo dnf info resource-agents-cloud
Requisitos mínimos da versão:
- RHEL 8.4:
resource-agents-4.1.1-90.13
- RHEL 8.6:
resource-agents-4.9.0-16.9
- RHEL 8.8:
resource-agents-4.9.0-40.1
- RHEL 9.0:
resource-agents-cloud-4.10.0-9.6
- RHEL 9.2 e mais recente:
resource-agents-cloud-4.10.0-34.1
- RHEL 8.4:
[1] Configure os recursos no Pacemaker.
#Place the cluster in maintenance mode sudo pcs property set maintenance-mode=true
[1] Defina a estratégia e a restrição do nó de integridade do cluster do Pacemaker.
sudo pcs property set node-health-strategy=custom sudo pcs constraint location 'regexp%!health-.*' \ rule score-attribute='#health-azure' \ defined '#uname'
Importante
Não defina outros recursos no cluster que começam com
health-
, além dos recursos descritos nas próximas etapas.[1] Defina o valor inicial dos atributos do cluster. Execute-o para cada nó de cluster e para ambientes de expansão, incluindo a VM do criador da maioria.
sudo crm_attribute --node prod-cl1-0 --name '#health-azure' --update 0 sudo crm_attribute --node prod-cl1-1 --name '#health-azure' --update 0
[1] Configure os recursos no Pacemaker. Verifique se os recursos começam com
health-azure
.sudo pcs resource create health-azure-events \ ocf:heartbeat:azure-events-az \ op monitor interval=10s timeout=240s \ op start timeout=10s start-delay=90s sudo pcs resource clone health-azure-events allow-unhealthy-nodes=true failure-timeout=120s
Tire o cluster do Pacemaker do modo de manutenção.
sudo pcs property set maintenance-mode=false
Limpe os erros durante a habilitação e verifique se os recursos
health-azure-events
foram iniciados com êxito em todos os nós do cluster.sudo pcs resource cleanup
A primeira execução de consulta para eventos agendados pode demorar até 2 minutos. Os testes do Pacemaker com eventos agendados podem usar ações de reinicialização ou reimplantação nas VMs do cluster. Para saber mais, confira Eventos agendados.
Configuração opcional de isolamento
Dica
Esta seção só será aplicável se você quiser configurar o dispositivo de isolamento especial fence_kdump
.
Caso você precise coletar informações de diagnóstico dentro da VM, talvez seja útil configurar outro dispositivo de isolamento com base no agente de isolamento fence_kdump
. O agente fence_kdump
pode detectar que um nó entrou na recuperação de falha do kdump e permitir que o serviço de recuperação de falhas seja concluído antes que outros métodos de isolamento sejam invocados. Observe que, quando você estiver usando VMs do Azure, o fence_kdump
não substitui os mecanismos de isolamento tradicionais como o SBD ou o agente de isolamento do Azure.
Importante
Lembre-se de que, quando fence_kdump
estiver configurado como um dispositivo de isolamento de primeiro nível, ele apresentará atrasos nas operações de isolamento e, respectivamente, atrasos no failover de recursos do aplicativo.
Se um despejo de memória for detectado com êxito, o isolamento será atrasado até que o serviço de recuperação de pane seja concluído. Se o nó com falha estiver inacessível ou não responder, o isolamento será atrasado por tempo determinado pelo número configurado de iterações e o tempo limite de fence_kdump
. Para obter mais informações, confira Como fazer para configurar o fence_kdump em um cluster do Red Hat Pacemaker?.
O tempo limite proposto fence_kdump
pode precisar ser adaptado ao ambiente específico.
Recomendamos que você configure o isolamento por fence_kdump
somente quando for preciso coletar diagnósticos dentro da VM e sempre em combinação com métodos de isolamento tradicionais, como o SBD ou o agente de isolamento do Azure.
Os seguintes artigos da base de dados de conhecimento da Red Hat contêm informações importantes sobre a configuração do isolamento de fence_kdump
:
- Confira Como fazer para configurar fence_kdump em um cluster do Red Hat Pacemaker?.
- Confira Como configurar/gerenciar níveis de isolamento em um cluster do RHEL com o Pacemaker.
- Confira Falha em fence_kdump com “tempo limite após X segundos” em um cluster de HA do RHEL 6 ou 7 com o kexec-tools superior a 2.0.14.
- Para saber mais sobre como alterar o tempo limite padrão, confira Como fazer para configurar o kdump para uso com o Complemento de HA do RHEL 6, 7 e 8?.
- Para saber mais sobre como reduzir o atraso do failover ao usar
fence_kdump
, confira É possível reduzir o atraso esperado do failover ao adicionar a configuração de fence_kdump?.
Execute as etapas opcionais a seguir para adicionar fence_kdump
como uma configuração de isolamento de primeiro nível, além da configuração do agente de isolamento do Azure.
[A] Verifique se o
kdump
está ativo e configurado.systemctl is-active kdump # Expected result # active
[A] Instale o agente de isolamento
fence_kdump
.yum install fence-agents-kdump
[1] Crie um dispositivo de isolamento
fence_kdump
no cluster.pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1" timeout=30
[1] Configure níveis de isolamento para que o mecanismo de isolamento
fence_kdump
seja ativado primeiro.pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1" pcs stonith level add 1 prod-cl1-0 rsc_st_kdump pcs stonith level add 1 prod-cl1-1 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 prod-cl1-0 <stonith-resource-name> pcs stonith level add 2 prod-cl1-1 <stonith-resource-name> # Check the fencing level configuration pcs stonith level # Example output # Target: prod-cl1-0 # Level 1 - rsc_st_kdump # Level 2 - <stonith-resource-name> # Target: prod-cl1-1 # Level 1 - rsc_st_kdump # Level 2 - <stonith-resource-name>
[A] Permita as portas necessárias para
fence_kdump
no firewall.firewall-cmd --add-port=7410/udp firewall-cmd --add-port=7410/udp --permanent
[A] Execute a configuração de
fence_kdump_nodes
em/etc/kdump.conf
para evitar uma falha defence_kdump
com um tempo limite para algumas versões dokexec-tools
. Para obter mais informações, confira o fence_kdump atinge o tempo limite quando o fence_kdump_nodes não é especificado com kexec-tools versão 2.0.15 ou posterior e o fence_kdump falha com “tempo limite atingido após X segundos” em clusters de Alta Disponibilidade do RHEL 6 ou 7 com kexec-tools de versões anteriores à 2.0.14. A configuração de exemplo para um cluster de dois nós é apresentada aqui. Depois que você faz uma alteração em/etc/kdump.conf
, a imagem do kdump precisa ser regenerada. Para regenerá-la, reinicie o serviçokdump
.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] Verifique se o arquivo de imagem
initramfs
contém os arquivosfence_kdump
ehosts
. Para obter mais informações, confira Como fazer para configurar o fence_kdump em um cluster do Red Hat Pacemaker?.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_send
Teste a configuração causando falha em um nó. Para obter mais informações, confira Como fazer para configurar o fence_kdump em um cluster do Red Hat Pacemaker?.
Importante
Se o cluster já estiver em uso produtivo, planeje o teste de acordo, pois a falha de um nó tem um impacto sobre o aplicativo.
echo c > /proc/sysrq-trigger
Próximas etapas
- Confira Planejamento e implementação de Máquinas Virtuais do Azure para o SAP.
- Confira Implantação de máquinas virtuais do Azure para SAP.
- Confira Implantação do DBMS de Máquinas Virtuais do Azure para SAP.
- Para saber como estabelecer a HA e o plano de recuperação de desastre do SAP HANA em VMs do Azure, confira Alta disponibilidade do SAP HANA em Máquinas Virtuais do Azure.