{"id":2911,"date":"2026-09-15T17:53:24","date_gmt":"2026-09-15T20:53:24","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/"},"modified":"2026-09-15T17:53:24","modified_gmt":"2026-09-15T20:53:24","slug":"aula-29-alta-disponibilidade-clustering-e-failover-no-linux","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/","title":{"rendered":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux"},"content":{"rendered":"<p>A <strong>alta disponibilidade<\/strong> \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar <strong>alta disponibilidade<\/strong> significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado e mecanismos autom\u00e1ticos de <strong>failover<\/strong>. Nesta aula, voc\u00ea vai dominar os conceitos e as ferramentas que permitem manter servi\u00e7os cr\u00edticos operando mesmo diante de falhas de hardware, rede ou aplica\u00e7\u00e3o.<\/p>\n<p>Ao longo desta aula, vamos trabalhar com as duas principais solu\u00e7\u00f5es de clustering para Linux: <strong>Corosync<\/strong> e <strong>Pacemaker<\/strong>. O Corosync \u00e9 respons\u00e1vel pela camada de comunica\u00e7\u00e3o e associa\u00e7\u00e3o (membership) entre os n\u00f3s do cluster, enquanto o Pacemaker atua como o gerenciador de recursos, decidindo onde cada servi\u00e7o deve rodar e reagindo a falhas. Voc\u00ea aprender\u00e1 a instalar, configurar e validar um cluster de dois n\u00f3s com failover autom\u00e1tico de um servi\u00e7o web e de um IP virtual \u2014 um cen\u00e1rio realista e amplamente utilizado em produ\u00e7\u00e3o.<\/p>\n<p>Esta \u00e9 uma aula avan\u00e7ada do curso <strong>Linux \u2014 Do Zero ao Avan\u00e7ado<\/strong>. Se voc\u00ea concluiu as aulas anteriores, j\u00e1 possui familiaridade com administra\u00e7\u00e3o de sistemas, rede, servi\u00e7os e shell script. Agora, vamos elevar o n\u00edvel para arquiteturas resilientes. Nosso objetivo \u00e9 que, ao final, voc\u00ea consiga projetar e implementar um cluster de <strong>alta disponibilidade<\/strong> funcional, realizar testes de failover reais e diagnosticar os problemas mais comuns nesse tipo de ambiente.<\/p>\n<p>Em nossos projetos na <strong>JRT Technology Solutions<\/strong>, utilizamos diariamente clusters Corosync\/Pacemaker para sustentar ambientes cr\u00edticos de clientes dos setores financeiro, industrial e de sa\u00fade. Os procedimentos descritos aqui refletem pr\u00e1ticas reais de implementa\u00e7\u00e3o e opera\u00e7\u00e3o que nossos especialistas aplicam em campo. Siga cada passo com aten\u00e7\u00e3o: todos os comandos foram testados em distribui\u00e7\u00f5es Ubuntu 22.04, Debian 12, Rocky Linux 9 e CentOS Stream 9.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<p>Esta aula foi estruturada para levar voc\u00ea de uma compreens\u00e3o te\u00f3rica s\u00f3lida at\u00e9 a execu\u00e7\u00e3o pr\u00e1tica completa de um cluster de <strong>alta disponibilidade<\/strong>. Os objetivos de aprendizagem s\u00e3o:<\/p>\n<ul>\n<li>Compreender os conceitos de <strong>alta disponibilidade<\/strong>, <strong>clustering<\/strong> e <strong>failover<\/strong> no contexto Linux<\/li>\n<li>Diferenciar solu\u00e7\u00f5es de HA ativo-passivo e ativo-ativo<\/li>\n<li>Instalar e configurar o <strong>Corosync<\/strong> e o <strong>Pacemaker<\/strong> em distribui\u00e7\u00f5es Debian\/Ubuntu e RHEL\/Rocky<\/li>\n<li>Configurar autentica\u00e7\u00e3o e comunica\u00e7\u00e3o segura entre os n\u00f3s do cluster<\/li>\n<li>Criar recursos de <strong>IP virtual<\/strong> e servi\u00e7os gerenciados pelo cluster<\/li>\n<li>Definir constraints de ordem, coloca\u00e7\u00e3o e localiza\u00e7\u00e3o para controlar o comportamento do failover<\/li>\n<li>Executar testes pr\u00e1ticos de failover e verificar a integridade do cluster<\/li>\n<li>Diagnosticar e corrigir os erros mais comuns em ambientes de clustering Linux<\/li>\n<\/ul>\n<p>Ao final, voc\u00ea ter\u00e1 implementado um cluster de dois n\u00f3s com <strong>failover<\/strong> autom\u00e1tico, capaz de garantir <strong>alta disponibilidade<\/strong> para um servi\u00e7o web. Mais do que isso, entender\u00e1 os mecanismos internos que tornam essa arquitetura confi\u00e1vel.<\/p>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Antes de iniciar esta aula, voc\u00ea precisar\u00e1 de um ambiente com pelo menos duas m\u00e1quinas virtuais ou f\u00edsicas rodando Linux. O ideal \u00e9 que ambas tenham configura\u00e7\u00f5es id\u00eanticas de sistema operacional e vers\u00f5es de pacotes para evitar comportamentos inesperados. Em nossos laborat\u00f3rios na <strong>JRT Technology Solutions<\/strong>, padronizamos os n\u00f3s para reduzir vari\u00e1veis de troubleshooting.<\/p>\n<p>Os requisitos m\u00ednimos para acompanhar esta aula s\u00e3o:<\/p>\n<ul>\n<li>Dois servidores Linux (f\u00edsicos ou virtuais) com acesso root ou sudo<\/li>\n<li>Rede local com comunica\u00e7\u00e3o bidirecional entre os n\u00f3s<\/li>\n<li>Nomes de host \u00fanicos e resolu\u00e7\u00e3o de nomes configurada em <strong>\/etc\/hosts<\/strong><\/li>\n<li>Portas de firewall liberadas para o cluster (UDP 5404 e 5405)<\/li>\n<li>Servi\u00e7o de sincroniza\u00e7\u00e3o de hor\u00e1rio (NTP ou Chrony) ativo em ambos os n\u00f3s<\/li>\n<li>Conhecimento de linha de comando, edi\u00e7\u00e3o de arquivos e servi\u00e7os systemd<\/li>\n<\/ul>\n<p>Nesta aula, utilizaremos os n\u00f3s <strong>node01<\/strong> (IP 192.168.56.101) e <strong>node02<\/strong> (IP 192.168.56.102). Ajuste os valores conforme seu ambiente. O recurso de <strong>alta disponibilidade<\/strong> ser\u00e1 um IP virtual na faixa 192.168.56.200 e o servi\u00e7o Apache. Se voc\u00ea estiver usando VirtualBox, VMware ou Proxmox, crie duas VMs com pelo menos 2 GB de RAM e 2 vCPUs cada.<\/p>\n<h3>Conceitos Fundamentais de Alta disponibilidade, Clustering e Failover<\/h3>\n<p>Antes de executar qualquer instala\u00e7\u00e3o, \u00e9 essencial compreender a terminologia e os princ\u00edpios que sustentam a <strong>alta disponibilidade<\/strong>. Um cluster de HA \u00e9 um conjunto de computadores que trabalham em conjunto para manter servi\u00e7os dispon\u00edveis. Quando um n\u00f3 falha, outro assume automaticamente a carga \u2014 processo chamado <strong>failover<\/strong>. O oposto, <strong>failback<\/strong>, ocorre quando o n\u00f3 original se recupera e o servi\u00e7o retorna a ele, dependendo das pol\u00edticas configuradas.<\/p>\n<p>No universo Linux, a stack mais madura e amplamente adotada para <strong>alta disponibilidade<\/strong> \u00e9 composta por <strong>Corosync<\/strong> e <strong>Pacemaker<\/strong>. O Corosync oferece o transporte de mensagens e o gerenciamento de qu\u00f3rum, garantindo que todos os n\u00f3s do cluster compartilhem uma vis\u00e3o consistente de quem est\u00e1 ativo. O Pacemaker, por sua vez, abstrai a complexidade de decidir quais recursos rodam em quais n\u00f3s, usando um motor de pol\u00edticas baseado em constraints.<\/p>\n<p>Um conceito central \u00e9 o <strong>qu\u00f3rum<\/strong>. Em um cluster com dois n\u00f3s, o qu\u00f3rum exige a maioria dos votos. Se os n\u00f3s perdem comunica\u00e7\u00e3o, h\u00e1 risco de <strong>split-brain<\/strong> \u2014 situa\u00e7\u00e3o em que ambos tentam executar o mesmo recurso simultaneamente, corrompendo dados. Para evitar isso, usa-se o <strong>STONITH<\/strong> (Shoot The Other Node In The Head), um mecanismo de isolamento que desliga ou reinicia o n\u00f3 problem\u00e1tico. Em ambientes de produ\u00e7\u00e3o na <strong>JRT Technology Solutions<\/strong>, nunca configuramos clusters sem STONITH, mesmo em testes.<\/p>\n<p>Os recursos gerenciados pelo Pacemaker podem ser primitivos (um IP, um servi\u00e7o systemd, um filesystem) ou grupos (conjunto de recursos que sobem juntos no mesmo n\u00f3). As <strong>constraints<\/strong> definem rela\u00e7\u00f5es: onde um recurso pode rodar, em que ordem e com quais outros recursos. Compreender essa camada de pol\u00edticas \u00e9 o que diferencia um cluster funcional de um cluster fr\u00e1gil.<\/p>\n<p>Existem dois modelos principais de <strong>alta disponibilidade<\/strong>: ativo-passivo, onde um n\u00f3 fica ocioso aguardando falha, e ativo-ativo, onde todos os n\u00f3s processam carga. Nesta aula, focaremos no modelo ativo-passivo por ser mais simples, robusto e adequado \u00e0 maioria das aplica\u00e7\u00f5es corporativas. O modelo ativo-ativo exige balanceamento de carga e replica\u00e7\u00e3o de dados, t\u00f3picos avan\u00e7ados que recomendamos apenas para cen\u00e1rios espec\u00edficos.<\/p>\n<h3>Arquitetura do Cluster e Planejamento da Implementa\u00e7\u00e3o<\/h3>\n<p>Antes de tocar nos servidores, precisamos definir a arquitetura do nosso cluster de <strong>alta disponibilidade<\/strong>. Nosso cen\u00e1rio consistir\u00e1 em dois n\u00f3s id\u00eanticos executando um servi\u00e7o web Apache e um IP virtual de frontend. O objetivo \u00e9 que, em condi\u00e7\u00f5es normais, o servi\u00e7o rode no <strong>node01<\/strong>; se ele falhar, o <strong>node02<\/strong> assume em poucos segundos, sem interven\u00e7\u00e3o manual.<\/p>\n<p>A comunica\u00e7\u00e3o do cluster utilizar\u00e1 a rede de dados principal, mas em ambientes cr\u00edticos recomendamos uma rede dedicada para o tr\u00e1fego do Corosync. Essa separa\u00e7\u00e3o evita que picos de tr\u00e1fego de dados afetem a troca de mensagens do cluster. Em nossos projetos na <strong>JRT Technology Solutions<\/strong>, quando o or\u00e7amento permite, configuramos uma interface dedicada exclusivamente para heartbeat, geralmente uma VLAN isolada.<\/p>\n<p>Os componentes que ser\u00e3o instalados incluem: <strong>corosync<\/strong> (camada de mensageria), <strong>pacemaker<\/strong> (gerenciador de recursos), <strong>pcs<\/strong> (interface de linha de comando para configurar e operar o cluster) e <strong>apache2\/httpd<\/strong> (servi\u00e7o a ser protegido). No Debian\/Ubuntu, os pacotes s\u00e3o <strong>corosync<\/strong>, <strong>pacemaker<\/strong> e <strong>pcs<\/strong>. No RHEL\/Rocky, os pacotes tamb\u00e9m s\u00e3o encontrados nos reposit\u00f3rios padr\u00e3o ou no High Availability Add-On.<\/p>\n<p>Precisamos tamb\u00e9m definir o <strong>STONITH<\/strong>. Em um cluster virtual, a implementa\u00e7\u00e3o de STONITH pode ser feita com <strong>fence_virsh<\/strong> (para libvirt\/KVM) ou <strong>fence_vmware_soap<\/strong> (para VMware). Como estamos em ambiente educacional, configuraremos o STONITH como <strong>desabilitado<\/strong>, mas com um alerta claro: em produ\u00e7\u00e3o, isso \u00e9 inaceit\u00e1vel. O motivo \u00e9 simples \u2014 sem STONITH, o Pacemaker n\u00e3o consegue isolar um n\u00f3 com problemas, deixando o cluster vulner\u00e1vel a split-brain.<\/p>\n<table>\n<thead>\n<tr>\n<th>Componente<\/th>\n<th>Fun\u00e7\u00e3o<\/th>\n<th>Pacote Debian\/Ubuntu<\/th>\n<th>Pacote RHEL\/Rocky<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Corosync<\/td>\n<td>Mensageria, qu\u00f3rum, membership<\/td>\n<td>corosync<\/td>\n<td>corosync<\/td>\n<\/tr>\n<tr>\n<td>Pacemaker<\/td>\n<td>Gerenciador de recursos e pol\u00edticas<\/td>\n<td>pacemaker<\/td>\n<td>pacemaker<\/td>\n<\/tr>\n<tr>\n<td>PCS<\/td>\n<td>Interface de administra\u00e7\u00e3o do cluster<\/td>\n<td>pcs<\/td>\n<td>pcs<\/td>\n<\/tr>\n<tr>\n<td>Fence Agents<\/td>\n<td>Isolamento de n\u00f3s (STONITH)<\/td>\n<td>fence-agents<\/td>\n<td>fence-agents<\/td>\n<\/tr>\n<tr>\n<td>Apache<\/td>\n<td>Servi\u00e7o protegido pelo cluster<\/td>\n<td>apache2<\/td>\n<td>httpd<\/td>\n<\/tr>\n<\/table>\n<p>Com a arquitetura definida, prepare os dois n\u00f3s conforme os passos a seguir. Certifique-se de que os nomes de host est\u00e3o corretamente configurados, que o rel\u00f3gio est\u00e1 sincronizado e que a resolu\u00e7\u00e3o de nomes funciona. Esses detalhes evitam a maioria dos problemas de instala\u00e7\u00e3o.<\/p>\n<h3>Passo a Passo \u2014 Instala\u00e7\u00e3o do Corosync e Pacemaker no Ubuntu\/Debian e RHEL\/Rocky<\/h3>\n<p>Vamos iniciar a instala\u00e7\u00e3o dos pacotes necess\u00e1rios em ambos os n\u00f3s. O procedimento \u00e9 semelhante nas duas fam\u00edlias de distribui\u00e7\u00f5es, mas os comandos de gerenciamento de pacotes e os caminhos de alguns arquivos diferem. Executaremos todos os comandos como root ou com sudo. Em nossos treinamentos na <strong>JRT Technology Solutions<\/strong>, recomendamos o uso de um usu\u00e1rio administrativo com sudo para rastreabilidade.<\/p>\n<p><strong>Passo 1: Atualizar os reposit\u00f3rios e instalar os pacotes no Ubuntu\/Debian<\/strong><\/p>\n<p>Em cada n\u00f3 Ubuntu ou Debian, execute os comandos abaixo. O pacote <strong>pcs<\/strong> inclui a ferramenta <strong>pcsd<\/strong>, que fornece uma API e interface web para gerenciamento do cluster.<\/p>\n<pre><code># Atualiza a lista de pacotes dispon\u00edveis\nsudo apt update\n\n# Instala o Corosync, Pacemaker, PCS e os agentes de fencing\nsudo apt install -y corosync pacemaker pcs fence-agents\n\n# Habilita e inicia o servi\u00e7o pcsd (usado pelo PCS para comunica\u00e7\u00e3o)\nsudo systemctl enable --now pcsd\n\n# Verifica o status do servi\u00e7o pcsd\nsudo systemctl status pcsd --no-pager<\/code><\/pre>\n<p><strong>Passo 2: Instalar os pacotes no RHEL\/Rocky Linux<\/strong><\/p>\n<p>No RHEL, Rocky Linux ou CentOS Stream, os pacotes est\u00e3o dispon\u00edveis nos reposit\u00f3rios oficiais. Em vers\u00f5es mais antigas, pode ser necess\u00e1rio habilitar o reposit\u00f3rio <strong>HighAvailability<\/strong>. No Rocky Linux 9, os pacotes s\u00e3o encontrados no reposit\u00f3rio <strong>highavailability<\/strong>.<\/p>\n<pre><code># Instala os pacotes de alta disponibilidade\nsudo dnf install -y pacemaker corosync pcs fence-agents-all\n\n# Habilita e inicia o pcsd\nsudo systemctl enable --now pcsd\n\n# Verifica o status do pcsd\nsudo systemctl status pcsd --no-pager<\/code><\/pre>\n<p>A sa\u00edda esperada ap\u00f3s a execu\u00e7\u00e3o em ambos os sistemas deve mostrar o servi\u00e7o <strong>pcsd<\/strong> ativo e habilitado. A falta de erros indica que a instala\u00e7\u00e3o foi bem-sucedida.<\/p>\n<pre><code class=\"output\">\u25cf pcsd.service - PCS GUI and remote configuration support\n     Loaded: loaded (\/usr\/lib\/systemd\/system\/pcsd.service; enabled; preset: disabled)\n     Active: active (running) since Tue 2026-09-15 14:32:10 -03; 5s ago\n       Docs: man:pcsd(8)\n   Main PID: 2841 (pcsd)\n      Tasks: 1 (limit: 2312)\n     Memory: 4.7M\n        CPU: 102ms\n     CGroup: \/system.slice\/pcsd.service\n             \u2514\u25002841 \/usr\/lib\/pcs\/pcsd start<\/code><\/pre>\n<p><strong>Passo 3: Configurar o arquivo \/etc\/hosts em ambos os n\u00f3s<\/strong><\/p>\n<p>A resolu\u00e7\u00e3o de nomes \u00e9 cr\u00edtica para o cluster. Adicione as entradas correspondentes aos IPs dos dois n\u00f3s. Substitua os IPs pelos valores do seu ambiente. O arquivo deve ficar id\u00eantico nos dois servidores.<\/p>\n<pre><code># Edita o arquivo de hosts\nsudo nano \/etc\/hosts<\/code><\/pre>\n<p>Conte\u00fado a ser adicionado ao arquivo <strong>\/etc\/hosts<\/strong>:<\/p>\n<pre><code># Configura\u00e7\u00e3o de resolu\u00e7\u00e3o de nomes para o cluster de alta disponibilidade\n192.168.56.101  node01\n192.168.56.102  node02<\/code><\/pre>\n<p><strong>Passo 4: Definir a senha do usu\u00e1rio hacluster<\/strong><\/p>\n<p>O PCS utiliza o usu\u00e1rio <strong>hacluster<\/strong> para autentica\u00e7\u00e3o entre os n\u00f3s. Defina a mesma senha em ambos os n\u00f3s \u2014 essa consist\u00eancia \u00e9 obrigat\u00f3ria para que a autentica\u00e7\u00e3o funcione.<\/p>\n<pre><code># Define a senha do usu\u00e1rio hacluster (a mesma em todos os n\u00f3s)\nsudo passwd hacluster<\/code><\/pre>\n<p>Digite uma senha forte e repita-a. Em nossos ambientes na <strong>JRT Technology Solutions<\/strong>, usamos cofres de senhas e pol\u00edticas de complexidade, mas para fins did\u00e1ticos, uma senha como <strong>Cluster@2026<\/strong> \u00e9 suficiente.<\/p>\n<p><strong>Passo 5: Configurar o firewall<\/strong><\/p>\n<p>O tr\u00e1fego do cluster usa os protocolos UDP nas portas <strong>5404<\/strong> e <strong>5405<\/strong>. Al\u00e9m disso, o PCSD usa a porta TCP <strong>2224<\/strong>. Libere essas portas no firewall de cada n\u00f3.<\/p>\n<p>No Ubuntu\/Debian com UFW:<\/p>\n<pre><code># Libera as portas de comunica\u00e7\u00e3o do cluster no firewall UFW\nsudo ufw allow 2224\/tcp\nsudo ufw allow 5404\/udp\nsudo ufw allow 5405\/udp\n\n# Recarrega as regras\nsudo ufw reload<\/code><\/pre>\n<p>No RHEL\/Rocky com firewalld:<\/p>\n<pre><code># Libera as portas de comunica\u00e7\u00e3o do cluster no firewalld\nsudo firewall-cmd --permanent --add-port=2224\/tcp\nsudo firewall-cmd --permanent --add-port=5404\/udp\nsudo firewall-cmd --permanent --add-port=5405\/udp\n\n# Recarrega as regras\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Ap\u00f3s liberar as portas, valide com <strong>sudo ufw status<\/strong> ou <strong>sudo firewall-cmd &#8211;list-ports<\/strong>. A sa\u00edda deve incluir as tr\u00eas portas configuradas. Esse passo evita que o cluster fique impossibilitado de comunicar-se, um dos erros mais comuns em implementa\u00e7\u00f5es de <strong>alta disponibilidade<\/strong>.<\/p>\n<p><strong>Passo 6: Autenticar os n\u00f3s e formar o cluster<\/strong><\/p>\n<p>Agora, a partir do <strong>node01<\/strong>, autentique os dois n\u00f3s e crie o cluster. O comando <strong>pcs host auth<\/strong> autentica o usu\u00e1rio hacluster nos n\u00f3s especificados via PCSD. Em seguida, o comando <strong>pcs cluster setup<\/strong> gera a configura\u00e7\u00e3o do Corosync e inicia os servi\u00e7os.<\/p>\n<pre><code># Autentica os n\u00f3s do cluster (execute no node01)\nsudo pcs host auth node01 node02 -u hacluster\n\n# Cria o cluster chamado \"webcluster\" com os dois n\u00f3s\nsudo pcs cluster setup webcluster node01 node02\n\n# Inicia todos os servi\u00e7os do cluster em todos os n\u00f3s\nsudo pcs cluster start --all\n\n# Habilita os servi\u00e7os para iniciarem no boot\nsudo pcs cluster enable --all<\/code><\/pre>\n<p>A sa\u00edda esperada do comando de autentica\u00e7\u00e3o deve confirmar a autoriza\u00e7\u00e3o de ambos os n\u00f3s. Se houver erro de autentica\u00e7\u00e3o, revise a senha do usu\u00e1rio <strong>hacluster<\/strong> e a conectividade na porta TCP 2224.<\/p>\n<pre><code class=\"output\">node01: Authorized\nnode02: Authorized<\/code><\/pre>\n<p>Ao executar <strong>pcs cluster setup<\/strong>, o PCS gera automaticamente o arquivo <strong>\/etc\/corosync\/corosync.conf<\/strong>. Esse arquivo cont\u00e9m as defini\u00e7\u00f5es de transporte, qu\u00f3rum e configura\u00e7\u00e3o dos n\u00f3s. Vamos analisar seu conte\u00fado na pr\u00f3xima se\u00e7\u00e3o para entender o que foi criado.<\/p>\n<h3>Configura\u00e7\u00e3o Detalhada \u2014 Arquivo corosync.conf e Par\u00e2metros do Pacemaker<\/h3>\n<p>Ap\u00f3s a cria\u00e7\u00e3o do cluster, o arquivo <strong>\/etc\/corosync\/corosync.conf<\/strong> \u00e9 gerado automaticamente pelo PCS. No entanto, compreender cada diretiva \u00e9 essencial para diagnosticar problemas e personalizar o comportamento do cluster. Em nossos atendimentos na <strong>JRT Technology Solutions<\/strong>, sempre auditamos esse arquivo antes de colocar qualquer cluster em produ\u00e7\u00e3o.<\/p>\n<p>O conte\u00fado t\u00edpico gerado para nosso cen\u00e1rio de dois n\u00f3s \u00e9 o seguinte:<\/p>\n<pre><code># Configura\u00e7\u00e3o do Corosync gerada pelo PCS para o cluster webcluster\ntotem {\n    version: 2\n    cluster_name: webcluster\n    secauth: on\n    transport: udpu\n    token: 3000\n    join: 60\n}\n\nnodelist {\n    node {\n        ring0_addr: 192.168.56.101\n        name: node01\n        nodeid: 1\n    }\n    node {\n        ring0_addr: 192.168.56.102\n        name: node02\n        nodeid: 2\n    }\n}\n\nquorum {\n    provider: corosync_votequorum\n    two_node: 1\n    wait_for_all: 0\n}\n\nlogging {\n    to_logfile: yes\n    logfile: \/var\/log\/cluster\/corosync.log\n    to_syslog: yes\n    debug: off\n}<\/code><\/pre>\n<p>Vamos analisar cada se\u00e7\u00e3o. No bloco <strong>totem<\/strong>, o par\u00e2metro <strong>transport: udpu<\/strong> indica comunica\u00e7\u00e3o unicast (ponto a ponto), adequada para dois n\u00f3s sem rede multicast. O <strong>token: 3000<\/strong> define o intervalo m\u00e1ximo em milissegundos para troca de mensagens antes de considerar um n\u00f3 inativo. Em redes congestionadas, esse valor pode ser aumentado para 5000, mas isso impacta o tempo de detec\u00e7\u00e3o de falha.<\/p>\n<p>A lista <strong>nodelist<\/strong> define os dois n\u00f3s com seus endere\u00e7os IP, nomes e IDs. O bloco <strong>quorum<\/strong> \u00e9 crucial: <strong>two_node: 1<\/strong> habilita o modo especial para dois n\u00f3s, onde o qu\u00f3rum pode ser mantido por um \u00fanico n\u00f3, mas requer um mecanismo de tie-breaker (como STONITH) para evitar split-brain. Sem <strong>two_node<\/strong>, um cluster de dois n\u00f3s perderia qu\u00f3rum imediatamente quando um deles ca\u00edsse.<\/p>\n<p>Ap\u00f3s configurar o Corosync, o Pacemaker inicia automaticamente e fica pronto para gerenciar recursos. O comando <strong>pcs status<\/strong> exibe o estado do cluster. Inicialmente, ele mostrar\u00e1 os dois n\u00f3s online, mas sem recursos configurados.<\/p>\n<h3>Configura\u00e7\u00e3o de Recursos \u2014 IP Virtual e Servi\u00e7o Web com Alta disponibilidade<\/h3>\n<p>Agora que o cluster est\u00e1 operacional, vamos configurar os recursos que garantir\u00e3o a <strong>alta disponibilidade<\/strong> do servi\u00e7o web. Em nosso cen\u00e1rio, criaremos dois recursos primitivos: um <strong>IP virtual<\/strong> que ser\u00e1 o endere\u00e7o de frontend e o servi\u00e7o <strong>Apache<\/strong> que responder\u00e1 \u00e0s requisi\u00e7\u00f5es. Em seguida, criaremos um <strong>group<\/strong> para que ambos rodem sempre no mesmo n\u00f3 e na ordem correta.<\/p>\n<p><strong>Passo 1: Instalar o Apache em ambos os n\u00f3s<\/strong><\/p>\n<p>O servi\u00e7o protegido precisa estar instalado nos dois n\u00f3s, mesmo que fique parado em um deles durante a opera\u00e7\u00e3o normal. A instala\u00e7\u00e3o deve ser feita em ambos os servidores.<\/p>\n<p>No Ubuntu\/Debian:<\/p>\n<pre><code># Instala o Apache no Ubuntu\/Debian\nsudo apt install -y apache2\n\n# Interrompe e desabilita o Apache local, pois o Pacemaker gerenciar\u00e1 o servi\u00e7o\nsudo systemctl stop apache2\nsudo systemctl disable apache2<\/code><\/pre>\n<p>No RHEL\/Rocky:<\/p>\n<pre><code># Instala o Apache no RHEL\/Rocky\nsudo dnf install -y httpd\n\n# Interrompe e desabilita o Apache local\nsudo systemctl stop httpd\nsudo systemctl disable httpd<\/code><\/pre>\n<p>\u00c9 fundamental desabilitar o servi\u00e7o no systemd para que ele n\u00e3o inicie sozinho. Se o Apache subir fora do controle do Pacemaker, o cluster poder\u00e1 entrar em conflito, pois dois processos tentar\u00e3o usar o mesmo IP virtual. Em nossos projetos na <strong>JRT Technology Solutions<\/strong>, sempre deixamos os servi\u00e7os protegidos sob gest\u00e3o exclusiva do cluster.<\/p>\n<p><strong>Passo 2: Criar uma p\u00e1gina de teste personalizada<\/strong><\/p>\n<p>Para facilitar a identifica\u00e7\u00e3o de qual n\u00f3 est\u00e1 atendendo, crie um arquivo <strong>index.html<\/strong> personalizado em cada n\u00f3. Isso permitir\u00e1 visualizar claramente o failover em a\u00e7\u00e3o.<\/p>\n<p>No <strong>node01<\/strong>:<\/p>\n<pre><code># Cria uma p\u00e1gina HTML que identifica o node01\necho \"&lt;h1&gt;Servidor ativo: NODE01&lt;\/h1&gt;\" | sudo tee \/var\/www\/html\/index.html<\/code><\/pre>\n<p>No <strong>node02<\/strong>:<\/p>\n<pre><code># Cria uma p\u00e1gina HTML que identifica o node02\necho \"&lt;h1&gt;Servidor ativo: NODE02&lt;\/h1&gt;\" | sudo tee \/var\/www\/html\/index.html<\/code><\/pre>\n<p><strong>Passo 3: Criar os recursos no Pacemaker<\/strong><\/p>\n<p>O Pacemaker gerencia recursos por meio de comandos <strong>pcs resource<\/strong>. Primeiro, criamos o recurso de IP virtual usando o agente <strong>ocf:heartbeat:IPaddr2<\/strong>, que \u00e9 altamente confi\u00e1vel e suporta IPv4 e IPv6. O par\u00e2metro <strong>ip<\/strong> define o endere\u00e7o virtual e <strong>cidr_netmask<\/strong> a m\u00e1scara de rede.<\/p>\n<pre><code># Cria o recurso de IP virtual \"virtual_ip\" com o agente IPaddr2\nsudo pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.56.200 cidr_netmask=24 op monitor interval=10s\n\n# Cria o recurso do servi\u00e7o web \"web_server\" com o agente systemd\nsudo pcs resource create web_server systemd:apache2 op monitor interval=10s<\/code><\/pre>\n<p>No RHEL\/Rocky, o nome do servi\u00e7o systemd \u00e9 <strong>httpd<\/strong>, portanto o comando do servi\u00e7o web deve ser ajustado:<\/p>\n<pre><code># Para RHEL\/Rocky, use httpd no lugar de apache2\nsudo pcs resource create web_server systemd:httpd op monitor interval=10s<\/code><\/pre>\n<p>O par\u00e2metro <strong>op monitor interval=10s<\/strong> define que o Pacemaker verificar\u00e1 a sa\u00fade do recurso a cada 10 segundos. Esse monitoramento \u00e9 essencial para a <strong>alta disponibilidade<\/strong>, pois permite ao cluster detectar falhas rapidamente e acionar o failover.<\/p>\n<p><strong>Passo 4: Agrupar os recursos e definir ordem e coloca\u00e7\u00e3o<\/strong><\/p>\n<p>Para garantir que o IP virtual e o servi\u00e7o web rodem sempre no mesmo n\u00f3 e na ordem correta, criamos um <strong>group<\/strong>. Grupos simplificam a gest\u00e3o e evitam estados inconsistentes. O IP virtual deve subir antes do servi\u00e7o web, pois o Apache precisa associar-se ao endere\u00e7o virtual.<\/p>\n<pre><code># Cria um grupo \"webgroup\" contendo o IP virtual e o servi\u00e7o web, nesta ordem\nsudo pcs resource group add webgroup virtual_ip web_server<\/code><\/pre>\n<p>Com esse grupo, o Pacemaker automaticamente gerencia a ordem de inicializa\u00e7\u00e3o e a coloca\u00e7\u00e3o co-localizada. Se um recurso falhar, todo o grupo \u00e9 movido para o outro n\u00f3. Esse comportamento \u00e9 o cora\u00e7\u00e3o da <strong>alta disponibilidade<\/strong> em clusters ativo-passivos.<\/p>\n<p><strong>Passo 5: Verificar o estado dos recursos<\/strong><\/p>\n<p>Ap\u00f3s criar os recursos e o grupo, execute <strong>pcs status<\/strong> para verificar o estado do cluster. A sa\u00edda deve mostrar os recursos iniciados e um dos n\u00f3s como ativo.<\/p>\n<pre><code class=\"output\">Cluster name: webcluster\nStatus of pacemakerd: 'Pacemaker is running'\nCluster Summary:\n  * Stack: corosync\n  * Current DC: node01 (version 2.1.2-1ubuntu3) - partition with quorum\n  * Last updated: Tue Sep 15 15:20:45 2026\n  * Last change:  Tue Sep 15 15:18:30 2026 by root via cibadmin on node01\n  * 2 nodes configured\n  * 1 resource instance configured\n\nNode List:\n  * Online: [ node01 node02 ]\n\nFull List of Resources:\n  * Resource Group: webgroup:\n    * virtual_ip  (ocf:heartbeat:IPaddr2):  Started node01\n    * web_server  (systemd:apache2):        Started node01\n\nDaemon Status:\n  corosync: active\/disabled\n  pacemaker: active\/disabled\n  pcsd: active\/enabled<\/code><\/pre>\n<p>Observe que ambos os recursos est\u00e3o <strong>Started node01<\/strong>, indicando que o n\u00f3 01 \u00e9 o ativo atual. O n\u00f3 02 est\u00e1 online e pronto para assumir em caso de falha. Esse \u00e9 o estado saud\u00e1vel de um cluster de <strong>alta disponibilidade<\/strong> ativo-passivo.<\/p>\n<h3>Configura\u00e7\u00e3o de STONITH e Qu\u00f3rum Avan\u00e7ado<\/h3>\n<p>At\u00e9 agora, configuramos um cluster funcional, mas sem <strong>STONITH<\/strong>. Em um ambiente de produ\u00e7\u00e3o, essa omiss\u00e3o \u00e9 um risco grave. O Pacemaker, quando detecta que um n\u00f3 n\u00e3o responde, precisa ter uma forma de isol\u00e1-lo para evitar split-brain. O STONITH fornece exatamente isso: o cluster dispara um agente de fencing que desliga ou reinicia o n\u00f3 problem\u00e1tico.<\/p>\n<p>Em nosso ambiente educacional, como n\u00e3o temos um dispositivo de fencing real, vamos desabilitar o STONITH para permitir que o cluster funcione. O comando abaixo deve ser executado com plena compreens\u00e3o das implica\u00e7\u00f5es:<\/p>\n<pre><code># Desabilita o STONITH (apenas para laborat\u00f3rio; em produ\u00e7\u00e3o, configure um fence device!)\nsudo pcs property set stonith-enabled=false\n\n# Verifica a propriedade aplicada\nsudo pcs property list | grep stonith<\/code><\/pre>\n<p>A sa\u00edda esperada confirma que a propriedade foi aplicada:<\/p>\n<pre><code class=\"output\">stonith-enabled: false<\/code><\/pre>\n<p>Em nossos projetos na <strong>JRT Technology Solutions<\/strong>, configuramos STONITH usando agentes como <strong>fence_vmware_soap<\/strong> para ambientes VMware ou <strong>fence_ipmilan<\/strong> para servidores f\u00edsicos com IPMI. Recomendamos fortemente que voc\u00ea implemente fencing em qualquer ambiente que n\u00e3o seja estritamente educacional. Um cluster sem STONITH pode ter comportamento imprevis\u00edvel em cen\u00e1rios de particionamento de rede.<\/p>\n<p>Outra propriedade importante \u00e9 o <strong>no-quorum-policy<\/strong>. Em clusters com mais de dois n\u00f3s, essa propriedade define o que fazer quando o qu\u00f3rum \u00e9 perdido. O valor padr\u00e3o \u00e9 <strong>stop<\/strong>, que interrompe todos os recursos. Em nosso cen\u00e1rio de dois n\u00f3s, o modo <strong>two_node<\/strong> do Corosync j\u00e1 trata o qu\u00f3rum de forma especial, mas compreender essa propriedade \u00e9 \u00fatil para clusters maiores.<\/p>\n<h3>Verificando a Instala\u00e7\u00e3o \/ Testando a Configura\u00e7\u00e3o<\/h3>\n<p>Agora chegamos ao momento cr\u00edtico da aula: testar se a <strong>alta disponibilidade<\/strong> realmente funciona. Vamos executar uma s\u00e9rie de verifica\u00e7\u00f5es e provocar falhas controladas para observar o comportamento do cluster. Cada teste deve ser realizado com aten\u00e7\u00e3o aos tempos de detec\u00e7\u00e3o e failover, que geralmente ficam entre 10 e 60 segundos dependendo da configura\u00e7\u00e3o.<\/p>\n<p><strong>Teste 1: Verificar o estado geral do cluster<\/strong><\/p>\n<p>O comando <strong>pcs status<\/strong> \u00e9 o principal instrumento de verifica\u00e7\u00e3o. Ele mostra o estado dos n\u00f3s, recursos e propriedades. Execute-o em ambos os n\u00f3s para confirmar que a vis\u00e3o \u00e9 consistente.<\/p>\n<pre><code># Verifica o status completo do cluster\nsudo pcs status\n\n# Verifica apenas os recursos\nsudo pcs resource status\n\n# Verifica o estado do Corosync\nsudo corosync-cfgtool -s<\/code><\/pre>\n<p>A sa\u00edda de <strong>pcs status<\/strong> j\u00e1 foi mostrada anteriormente e deve indicar todos os recursos iniciados no n\u00f3 ativo. O comando <strong>corosync-cfgtool -s<\/strong> exibe o estado do qu\u00f3rum e da comunica\u00e7\u00e3o:<\/p>\n<pre><code class=\"output\">Printing ring status.\nLocal node ID 1\nRING ID 0\n\tid\t= 192.168.56.101\n\tstatus\t= ring 0 active with no faults<\/code><\/pre>\n<p><strong>Teste 2: Testar o IP virtual<\/strong><\/p>\n<p>Confirme que o IP virtual <strong>192.168.56.200<\/strong> est\u00e1 associado ao n\u00f3 ativo. O comando <strong>ip addr show<\/strong> deve listar o IP na interface correspondente. Em seguida, acesse o servi\u00e7o web via curl.<\/p>\n<pre><code># Verifica a associa\u00e7\u00e3o do IP virtual no n\u00f3 ativo\nip addr show | grep 192.168.56.200\n\n# Testa o servi\u00e7o web atrav\u00e9s do IP virtual\ncurl http:\/\/192.168.56.200<\/code><\/pre>\n<p>A sa\u00edda esperada do comando curl deve mostrar a p\u00e1gina personalizada do n\u00f3 ativo, confirmando que o servi\u00e7o est\u00e1 respondendo pelo IP virtual:<\/p>\n<pre><code class=\"output\">2: enp0s8: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    inet 192.168.56.101\/24 brd 192.168.56.255 scope global noprefixroute enp0s8\n    inet 192.168.56.200\/24 brd 192.168.56.255 scope global secondary noprefixroute enp0s8\n&lt;h1&gt;Servidor ativo: NODE01&lt;\/h1&gt;<\/code><\/pre>\n<p><strong>Teste 3: For\u00e7ar failover manual (migra\u00e7\u00e3o de recursos)<\/strong><\/p>\n<p>Para testar a <strong>alta disponibilidade<\/strong>, podemos mover o grupo de recursos do n\u00f3 ativo para o n\u00f3 passivo usando o comando <strong>pcs resource move<\/strong>. Esse comando adiciona uma constraint tempor\u00e1ria de localiza\u00e7\u00e3o que for\u00e7a o recurso a mudar de n\u00f3.<\/p>\n<pre><code># Move o grupo webgroup para o node02\nsudo pcs resource move webgroup node02\n\n# Aguarda alguns segundos e verifica o status\nsudo pcs status<\/code><\/pre>\n<p>Ap\u00f3s o comando, o cluster deve mover os recursos para o node02. A sa\u00edda de status confirmar\u00e1 a mudan\u00e7a:<\/p>\n<pre><code class=\"output\">Full List of Resources:\n  * Resource Group: webgroup:\n    * virtual_ip  (ocf:heartbeat:IPaddr2):  Started node02\n    * web_server  (systemd:apache2):        Started node02<\/code><\/pre>\n<p>Agora, acesse novamente o IP virtual e observe que a p\u00e1gina exibida mudou para <strong>NODE02<\/strong>, comprovando o failover bem-sucedido.<\/p>\n<p><strong>Teste 4: Simular falha do n\u00f3 ativo<\/strong><\/p>\n<p>O teste mais realista \u00e9 derrubar o n\u00f3 ativo de forma abrupta. Para isso, execute um reboot ou desligamento for\u00e7ado no n\u00f3 que atualmente hospeda os recursos. Em nosso exemplo, o node02 est\u00e1 ativo. Vamos deslig\u00e1-lo e observar o comportamento do node01.<\/p>\n<pre><code># No node02, execute um reboot for\u00e7ado\nsudo reboot -f<\/code><\/pre>\n<p>No node01, monitore o status do cluster em tempo real com <strong>watch pcs status<\/strong>. Ap\u00f3s alguns segundos, o node01 detectar\u00e1 a falha do node02, assumir\u00e1 os recursos e o IP virtual passar\u00e1 a responder por ele.<\/p>\n<pre><code># No node01, monitora o cluster a cada 2 segundos\nwatch -n 2 sudo pcs status<\/code><\/pre>\n<p>O resultado esperado \u00e9 a recupera\u00e7\u00e3o autom\u00e1tica dos recursos no node01, sem interven\u00e7\u00e3o manual. Esse \u00e9 o objetivo final de qualquer cluster de <strong>alta disponibilidade<\/strong>: garantir continuidade do servi\u00e7o mesmo diante de falhas catastr\u00f3ficas.<\/p>\n<h3>Erros Comuns e Como Resolver<\/h3>\n<p>Durante a implementa\u00e7\u00e3o e opera\u00e7\u00e3o de clusters de <strong>alta disponibilidade<\/strong>, alguns erros s\u00e3o recorrentes. Conhecer esses problemas e suas solu\u00e7\u00f5es \u00e9 essencial para reduzir o tempo de indisponibilidade e evitar dores de cabe\u00e7a. Em nossa experi\u00eancia na <strong>JRT Technology Solutions<\/strong>, listamos abaixo os quatro erros mais frequentes que encontramos em campo.<\/p>\n<ul>\n<li><strong>Erro: Falha de autentica\u00e7\u00e3o do PCS (&#8220;Unable to authenticate to node&#8221;)<\/strong><br \/>\n<em>Causa:<\/em> Senha do usu\u00e1rio <strong>hacluster<\/strong> divergente entre os n\u00f3s ou servi\u00e7o <strong>pcsd<\/strong> parado.<br \/>\n<em>Sintoma:<\/em> O comando <strong>pcs host auth<\/strong> retorna erro de autoriza\u00e7\u00e3o, impedindo a cria\u00e7\u00e3o do cluster.<br \/>\n<em>Solu\u00e7\u00e3o:<\/em> Execute <strong>sudo passwd hacluster<\/strong> em ambos os n\u00f3s, defina a mesma senha, verifique se o servi\u00e7o <strong>pcsd<\/strong> est\u00e1 ativo (<strong>sudo systemctl status pcsd<\/strong>) e se a porta TCP 2224 est\u00e1 liberada no firewall. Em seguida, repita o comando de autentica\u00e7\u00e3o.<\/li>\n<li><strong>Erro: &#8220;Cluster is not currently running on this node&#8221;<\/strong><br \/>\n<em>Causa:<\/em> O cluster foi configurado, mas os servi\u00e7os <strong>corosync<\/strong> e <strong>pacemaker<\/strong> n\u00e3o foram iniciados ou n\u00e3o est\u00e3o habilitados.<br \/>\n<em>Sintoma:<\/em> O comando <strong>pcs status<\/strong> informa que o cluster n\u00e3o est\u00e1 em execu\u00e7\u00e3o, mesmo ap\u00f3s o setup.<br \/>\n<em>Solu\u00e7\u00e3o:<\/em> Execute <strong>sudo pcs cluster start &#8211;all<\/strong> para iniciar os servi\u00e7os em todos os n\u00f3s. Se o problema persistir, verifique os logs em <strong>\/var\/log\/cluster\/corosync.log<\/strong> e certifique-se de que as portas 5404\/5405 UDP est\u00e3o liberadas. Por fim, habilite os servi\u00e7os com <strong>sudo pcs cluster enable &#8211;all<\/strong>.<\/li>\n<li><strong>Erro: Recursos n\u00e3o iniciam e status mostra &#8220;unmanaged&#8221; ou &#8220;blocked&#8221;<\/strong><br \/>\n<em>Causa:<\/em> Propriedade <strong>is-managed-default<\/strong> definida como false, ou falta de STONITH configurado com <strong>stonith-enabled=true<\/strong>, ou depend\u00eancias n\u00e3o atendidas.<br \/>\n<em>Sintoma:<\/em> Os recursos aparecem como <strong>Stopped<\/strong> ou <strong>Blocked<\/strong>, e o cluster n\u00e3o os inicia apesar de estarem configurados.<br \/>\n<em>Solu\u00e7\u00e3o:<\/em> Verifique com <strong>sudo pcs property list<\/strong> se <strong>stonith-enabled<\/strong> est\u00e1 false (em laborat\u00f3rio) e se <strong>is-managed-default<\/strong> est\u00e1 true. Para recursos <strong>Blocked<\/strong>, inspecione com <strong>sudo pcs resource debug-start webgroup<\/strong> para identificar a depend\u00eancia ausente. Se a causa for STONITH, desabilite-o temporariamente com <strong>sudo pcs property set stonith-enabled=false<\/strong> apenas em ambiente de teste.<\/li>\n<li><strong>Erro: Failover n\u00e3o ocorre quando um n\u00f3 \u00e9 desligado<\/strong><br \/>\n<em>Causa:<\/em> Qu\u00f3rum perdido e pol\u00edtica <strong>no-quorum-policy<\/strong> definida como freeze, ou falha de comunica\u00e7\u00e3o por bloqueio de portas\/firewall.<br \/>\n<em>Sintoma:<\/em> O n\u00f3 sobrevivente n\u00e3o assume os recursos e o servi\u00e7o fica indispon\u00edvel, apesar do cluster estar ativo.<br \/>\n<em>Solu\u00e7\u00e3o:<\/em> Para clusters de dois n\u00f3s, verifique se o par\u00e2metro <strong>two_node: 1<\/strong> est\u00e1 presente no arquivo <strong>\/etc\/corosync\/corosync.conf<\/strong> e reinicie o Corosync. Confirme que as portas 5404\/5405 UDP est\u00e3o liberadas. Caso o qu\u00f3rum esteja perdido, ajuste a pol\u00edtica com <strong>sudo pcs property set no-quorum-policy=ignore<\/strong> apenas para testes, mas lembre-se dos riscos de split-brain.<\/li>\n<\/ul>\n<h3>Boas Pr\u00e1ticas e Dicas Avan\u00e7adas em Alta disponibilidade<\/h3>\n<p>Al\u00e9m do funcionamento b\u00e1sico, existem pr\u00e1ticas que elevam a maturidade de um cluster de <strong>alta disponibilidade<\/strong>. Em nossos projetos na <strong>JRT Technology Solutions<\/strong>, seguimos um conjunto de diretrizes que reduzem incidentes e facilitam a manuten\u00e7\u00e3o. A primeira delas \u00e9 sempre configurar <strong>STONITH<\/strong>, independentemente do tamanho do ambiente. Mesmo em laborat\u00f3rios, recomendamos ao menos planejar a implementa\u00e7\u00e3o de um fence device.<\/p>\n<p>A segunda pr\u00e1tica \u00e9 padronizar a configura\u00e7\u00e3o dos n\u00f3s. Isso inclui vers\u00f5es de pacotes, configura\u00e7\u00f5es de rede, fuso hor\u00e1rio e at\u00e9 mesmo a ordem das interfaces. Diferen\u00e7as sutis podem causar comportamentos err\u00e1ticos dif\u00edceis de diagnosticar. Utilizamos ferramentas como <strong>Ansible<\/strong> para provisionar e manter a consist\u00eancia entre os n\u00f3s, garantindo que qualquer altera\u00e7\u00e3o seja replicada de forma controlada.<\/p>\n<p>A terceira pr\u00e1tica envolve a monitora\u00e7\u00e3o proativa. Um cluster de <strong>alta disponibilidade<\/strong> deve ser integrado a plataformas de observabilidade como <strong>Zabbix<\/strong>, <strong>Prometheus<\/strong> ou <strong>Nagios<\/strong>. Configure alertas para eventos de failover, perda de qu\u00f3rum e falhas de recursos. Em nossos atendimentos na <strong>JRT Technology Solutions<\/strong>, recomendamos exportar m\u00e9tricas do Pacemaker via <strong>pacemaker-exporter<\/strong> para Grafana, criando dashboards que mostram o estado do cluster em tempo real.<\/p>\n<p>Outra dica avan\u00e7ada \u00e9 o uso de <strong>constraints de localiza\u00e7\u00e3o<\/strong> com scores para definir prefer\u00eancias de n\u00f3s sem bloquear o failover. Por exemplo, voc\u00ea pode configurar o node01 como preferido com score 100 e o node02 com score 50. Assim, em condi\u00e7\u00f5es normais, o servi\u00e7o roda no node01, mas em caso de falha, migra para o node02. Use <strong>sudo pcs constraint location webgroup prefers node01=100<\/strong> para implementar essa pol\u00edtica.<\/p>\n<p>Por fim, documente todos os procedimentos de recupera\u00e7\u00e3o e treine a equipe. Um cluster bem configurado \u00e9 in\u00fatil se ningu\u00e9m souber oper\u00e1-lo durante um incidente. Em nossos treinamentos na <strong>JRT Technology Solutions<\/strong>, simulamos falhas reais com as equipes de opera\u00e7\u00e3o para garantir que todos saibam como agir. A <strong>alta disponibilidade<\/strong> \u00e9 uma combina\u00e7\u00e3o de tecnologia, processos e pessoas.<\/p>\n<h3>Resumo da Aula 29<\/h3>\n<p>Nesta aula, voc\u00ea aprendeu os fundamentos e a pr\u00e1tica da <strong>alta disponibilidade<\/strong> no Linux usando <strong>Corosync<\/strong> e <strong>Pacemaker<\/strong>. Instalamos e configuramos um cluster de dois n\u00f3s completo, criamos recursos de IP virtual e servi\u00e7o web, agrupamos esses recursos e testamos cen\u00e1rios de failover manual e autom\u00e1tico. Tamb\u00e9m discutimos a import\u00e2ncia do STONITH, qu\u00f3rum e monitora\u00e7\u00e3o, elementos essenciais para um cluster robusto.<\/p>\n<p>Os comandos e conceitos apresentados formam a base para qualquer implementa\u00e7\u00e3o de <strong>alta disponibilidade<\/strong> em ambientes corporativos. A tabela abaixo serve como refer\u00eancia r\u00e1pida para os comandos mais utilizados no dia a dia:<\/p>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descri\u00e7\u00e3o<\/th>\n<th>Exemplo de uso<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>pcs status<\/strong><\/td>\n<td>Exibe o estado do cluster, n\u00f3s e recursos<\/td>\n<td>sudo pcs status<\/td>\n<\/tr>\n<tr>\n<td><strong>pcs resource create<\/strong><\/td>\n<td>Cria um recurso gerenciado<\/td>\n<td>pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.56.200<\/td>\n<\/tr>\n<tr>\n<td><strong>pcs resource group add<\/strong><\/td>\n<td>Agrupa recursos para co-localiza\u00e7\u00e3o e ordem<\/td>\n<td>pcs resource group add webgroup virtual_ip web_server<\/td>\n<\/tr>\n<tr>\n<td><strong>pcs resource move<\/strong><\/td>\n<td>Move um recurso para outro n\u00f3<\/td>\n<td>pcs resource move webgroup node02<\/td>\n<\/tr>\n<tr>\n<td><strong>pcs property set<\/strong><\/td>\n<td>Define propriedades globais do cluster<\/td>\n<td>pcs property set stonith-enabled=false<\/td>\n<\/tr>\n<tr>\n<td><strong>pcs cluster setup<\/strong><\/td>\n<td>Cria e configura o cluster<\/td>\n<td>pcs cluster setup webcluster node01 node02<\/td>\n<\/tr>\n<tr>\n<td><strong>corosync-cfgtool -s<\/strong><\/td>\n<td>Verifica o estado do anel Corosync<\/td>\n<td>sudo corosync-cfgtool -s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As melhores pr\u00e1ticas incluem sempre configurar STONITH, padronizar os n\u00f3s, monitorar proativamente e documentar procedimentos. A <strong>alta disponibilidade<\/strong> n\u00e3o \u00e9 um recurso que<\/p>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de Linux para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20Linux.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado &#8230; <a title=\"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux\" class=\"read-more\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/\" aria-label=\"Read more about Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":2910,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":0,"footnotes":""},"categories":[62],"tags":[3464],"class_list":["post-2911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-do-zero-ao-avancado-alta-disponibilidade-clustering-e-failover-no-linux"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-15T20:53:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-15T20:53:24+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#blogposting\",\"name\":\"Aula 29: Alta disponibilidade \\u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 29: Alta disponibilidade \\u2014 clustering e failover no Linux\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/ai-image-1789505593989.jpg\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 29: Alta disponibilidade \\u2014 clustering e failover no Linux\"},\"datePublished\":\"2026-09-15T17:53:24-03:00\",\"dateModified\":\"2026-09-15T17:53:24-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#webpage\"},\"articleSection\":\"Linux, Linux \\u2014 Do Zero ao Avan\\u00e7ado: Alta disponibilidade \\u2014 clustering e failover no Linux\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"Linux\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/#listItem\",\"position\":2,\"name\":\"Linux\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#listItem\",\"name\":\"Aula 29: Alta disponibilidade \\u2014 clustering e failover no Linux\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#listItem\",\"position\":3,\"name\":\"Aula 29: Alta disponibilidade \\u2014 clustering e failover no Linux\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"Linux\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#authorImage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-foto-rascunho3-96x96.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/\",\"name\":\"Aula 29: Alta disponibilidade \\u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions\",\"description\":\"A alta disponibilidade \\u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\\u00e7\\u00e3o ou servi\\u00e7o fora do ar pode representar preju\\u00edzos financeiros, perda de dados e danos irrepar\\u00e1veis \\u00e0 reputa\\u00e7\\u00e3o da empresa. No contexto do Linux, alcan\\u00e7ar alta disponibilidade significa eliminar pontos \\u00fanicos de falha por meio de clusters, replica\\u00e7\\u00e3o de estado\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/ai-image-1789505593989.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#mainImage\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 29: Alta disponibilidade \\u2014 clustering e failover no Linux\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/15\\\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\\\/#mainImage\"},\"datePublished\":\"2026-09-15T17:53:24-03:00\",\"dateModified\":\"2026-09-15T17:53:24-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions","description":"A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#blogposting","name":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions","headline":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/ai-image-1789505593989.jpg","width":1440,"height":1024,"caption":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux"},"datePublished":"2026-09-15T17:53:24-03:00","dateModified":"2026-09-15T17:53:24-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#webpage"},"articleSection":"Linux, Linux \u2014 Do Zero ao Avan\u00e7ado: Alta disponibilidade \u2014 clustering e failover no Linux"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/linux\/#listItem","name":"Linux"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/linux\/#listItem","position":2,"name":"Linux","item":"https:\/\/jrtx.com.br\/blog\/category\/linux\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#listItem","name":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#listItem","position":3,"name":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/linux\/#listItem","name":"Linux"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#authorImage","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/cropped-foto-rascunho3-96x96.jpeg","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/","name":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions","description":"A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/ai-image-1789505593989.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#mainImage","width":1440,"height":1024,"caption":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/#mainImage"},"datePublished":"2026-09-15T17:53:24-03:00","dateModified":"2026-09-15T17:53:24-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions","og:description":"A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-09-15T20:53:24+00:00","article:modified_time":"2026-09-15T20:53:24+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux - BLOG - JRT Technology Solutions","twitter:description":"A alta disponibilidade \u00e9 um dos pilares fundamentais da infraestrutura moderna. Em ambientes corporativos, uma aplica\u00e7\u00e3o ou servi\u00e7o fora do ar pode representar preju\u00edzos financeiros, perda de dados e danos irrepar\u00e1veis \u00e0 reputa\u00e7\u00e3o da empresa. No contexto do Linux, alcan\u00e7ar alta disponibilidade significa eliminar pontos \u00fanicos de falha por meio de clusters, replica\u00e7\u00e3o de estado","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"2911","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-15 20:59:53","updated":"2026-09-15 20:59:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/linux\/\" title=\"Linux\">Linux<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 29: Alta disponibilidade \u2014 clustering e failover no Linux\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"Linux","link":"https:\/\/jrtx.com.br\/blog\/category\/linux\/"},{"label":"Aula 29: Alta disponibilidade \u2014 clustering e failover no Linux","link":"https:\/\/jrtx.com.br\/blog\/2026\/09\/15\/aula-29-alta-disponibilidade-clustering-e-failover-no-linux\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2911"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2911\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/2910"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}