<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>corosync | Self-Hosted!</title><link>https://blog.brumarino.com/tags/corosync/</link><description>Post novo no “Rack” todo dia às 7AM. Proxmox, rede, backup, UPS, IA e tudo o que tenho estudado.</description><language>pt-BR</language><managingEditor>Bruno Marino</managingEditor><image><url>https://blog.brumarino.com/brand/icon-144.png</url><title>corosync | Self-Hosted!</title><link>https://blog.brumarino.com/tags/corosync/</link><width>144</width><height>144</height></image><webfeeds:icon>https://blog.brumarino.com/brand/icon-192.png</webfeeds:icon><webfeeds:logo>https://blog.brumarino.com/brand/symbol.svg</webfeeds:logo><webfeeds:accentColor>2B3036</webfeeds:accentColor><lastBuildDate>Sat, 24 Oct 2026 07:00:00 -0300</lastBuildDate><atom:link href="https://blog.brumarino.com/tags/corosync/index.xml" rel="self" type="application/rss+xml"/><item><title>Cluster Proxmox com dois nós: por que preciso de QDevice</title><link>https://blog.brumarino.com/cluster-proxmox-dois-nos-qdevice/</link><pubDate>Sat, 24 Oct 2026 07:00:00 -0300</pubDate><guid>https://blog.brumarino.com/cluster-proxmox-dois-nos-qdevice/</guid><category>Proxmox</category><description>Quero montar um cluster com uma segunda máquina. Com dois nós, o Proxmox precisa de um terceiro voto: o QDevice. Meu plano, com a doc oficial.</description><content:encoded><![CDATA[<p>Hoje o meu homelab é um nó só: um Lenovo ThinkCentre M720q com Proxmox VE 9.2. Funciona bem, mas tem o problema óbvio de qualquer servidor único: se ele para, tudo para. Por isso, uma das coisas que está na minha lista é <strong>comprar mais uma máquina e montar um cluster</strong>.</p>
<p>Antes de gastar dinheiro, fui entender o que um cluster de dois nós exige de verdade. E a primeira descoberta muda o plano: <strong>com dois nós, o Proxmox precisa de um terceiro voto</strong>, e esse voto pode vir de um aparelho bem simples, o <strong>QDevice</strong>. Este post é o meu planejamento, com o que a documentação oficial diz. Ainda não montei o cluster.</p>
<h2 id="por-que-dois-nós-não-bastam">Por que dois nós não bastam <a class="anchor" href="#por-que-dois-n%c3%b3s-n%c3%a3o-bastam" aria-label="Link para esta seção">#</a></h2>
<p>O cluster do Proxmox usa o Corosync e decide tudo por <strong>quórum</strong>: cada nó tem um voto, e o cluster só funciona normalmente quando a maioria dos votos está presente. Pela documentação, quando perde o quórum, o cluster entra em modo somente leitura para se proteger.</p>
<p>Com dois nós, a conta não fecha. Se um cai, sobra um voto de dois, que não é maioria. O nó que ficou não sabe se o outro morreu ou se só a rede entre eles caiu, e não pode assumir sozinho sem arriscar que os dois mexam nos mesmos dados ao mesmo tempo.</p>
<p>A própria documentação diz que, para alta disponibilidade (HA) confiável, são necessários <strong>pelo menos três votos</strong>. E aponta a saída para clusters pequenos: o QDevice como terceiro voto.</p>
<h2 id="o-que-é-o-qdevice">O que é o QDevice <a class="anchor" href="#o-que-%c3%a9-o-qdevice" aria-label="Link para esta seção">#</a></h2>
<p>O QDevice é um &ldquo;desempatador&rdquo; externo. Não é um terceiro servidor do Proxmox: é um serviço leve, o <code>corosync-qnetd</code>, rodando em qualquer máquina Linux fora do cluster. Ele não roda container nem VM. Só vota.</p>
<p>Pela documentação:</p>
<ul>
<li>ele dá o voto dele para <strong>um lado do cluster por vez</strong>, e só se aquele lado consegue alcançá-lo pela rede;</li>
<li>a conexão é por TCP/IP, então ele pode até ficar fora da rede do cluster, mas precisa alcançar os nós (porta TCP 5403);</li>
<li>em empate, por padrão, o voto vai para o lado com o menor ID de nó;</li>
<li>o serviço roda como usuário sem privilégios e o tráfego com o cluster é criptografado.</li>
</ul>
<p>No meu caso, uma opção natural seria o <strong>NAS</strong> que também está nos planos, para guardar backups e rodar um Nextcloud. Um Raspberry Pi ou qualquer máquina pequena que fica ligada o tempo todo também serve.</p>
<aside class="alert alert--warning">
  <p class="alert__title">Atenção</p>
  <p>O QDevice é recomendado para clusters com número <strong>par</strong> de nós. Com número ímpar, a documentação desaconselha: ele passa a valer mais de um voto, e se o QDevice falhar com o cluster inteiro, nenhum nó pode cair sem perder o quórum.</p>
</aside><h2 id="os-comandos-segundo-a-documentação">Os comandos, segundo a documentação <a class="anchor" href="#os-comandos-segundo-a-documenta%c3%a7%c3%a3o" aria-label="Link para esta seção">#</a></h2>
<p>Criar o cluster é feito no primeiro nó, e o nome não pode ser trocado depois:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pvecm create homelab
</span></span><span class="line"><span class="cl">pvecm status
</span></span></code></pre></div><p>No segundo nó, você entra no cluster apontando para o IP de um nó que já faz parte dele. Por padrão, o comando autentica pela API e pede a senha do root daquele nó:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pvecm add 192.168.1.10
</span></span></code></pre></div><p>Para o QDevice, há pacotes dos dois lados. Na máquina externa:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt install corosync-qnetd
</span></span></code></pre></div><p>Em todos os nós do cluster:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt install corosync-qdevice
</span></span></code></pre></div><p>E, com todos os nós no ar, a configuração é feita em um deles:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pvecm qdevice setup 192.168.1.20
</span></span><span class="line"><span class="cl">pvecm status
</span></span></code></pre></div><p>A configuração precisa de acesso SSH como root na máquina externa, por chave ou com login por senha liberado só durante o processo.</p>
<aside class="alert alert--caution">
  <p class="alert__title">Cuidado</p>
  <p>Para adicionar ou remover nós depois, a documentação manda <strong>remover o QDevice antes</strong> (<code>pvecm qdevice remove</code>) e configurá-lo de novo quando o número de nós voltar a ser par. Mexer nos nós com o QDevice configurado pode deixar o quórum num estado inesperado.</p>
</aside><h2 id="a-rede-entre-os-nós">A rede entre os nós <a class="anchor" href="#a-rede-entre-os-n%c3%b3s" aria-label="Link para esta seção">#</a></h2>
<p>O Corosync é exigente com a rede. A documentação pede latência <strong>abaixo de 5 ms</strong>, o que na prática significa os nós na mesma rede local, ligados por cabo. Wi-Fi e nós em casas diferentes estão fora.</p>
<p>O recomendado é deixar os nós na mesma rede, com cabo, e, se o hardware tiver uma segunda porta de rede, considerar uma rede separada só para o tráfego do Corosync.</p>
<h2 id="cluster-não-é-alta-disponibilidade-automática">Cluster não é alta disponibilidade automática <a class="anchor" href="#cluster-n%c3%a3o-%c3%a9-alta-disponibilidade-autom%c3%a1tica" aria-label="Link para esta seção">#</a></h2>
<p>Essa foi a segunda descoberta. Montar o cluster já traz vantagens: um painel só para as duas máquinas e migrar containers e VMs de um nó para o outro. Mas para o Proxmox religar um container sozinho em outro nó quando um deles morre, os dados daquele container precisam estar disponíveis no outro nó.</p>
<p>Há dois caminhos comuns:</p>
<ul>
<li><strong>Storage compartilhado</strong> (um NAS servindo os discos pela rede, por exemplo).</li>
<li><strong>Replicação de storage</strong> do próprio Proxmox, que copia os discos de um nó para o outro de tempos em tempos.</li>
</ul>
<p>Pela documentação, a replicação só funciona com <strong>ZFS local</strong>, roda por padrão a cada 15 minutos e, combinada com HA, pode perder o que mudou desde a última sincronização. O meu SSD hoje não sei se está em ZFS ou LVM, então essa é uma das primeiras coisas a conferir antes de escolher a segunda máquina e o disco dela.</p>
<h2 id="o-meu-plano-em-ordem">O meu plano, em ordem <a class="anchor" href="#o-meu-plano-em-ordem" aria-label="Link para esta seção">#</a></h2>
<ol>
<li><strong>Conferir o storage atual</strong> e decidir se o próximo nó vai ter ZFS.</li>
<li><strong>Comprar a segunda máquina</strong>, com mais memória. Contei o que penso do M720q no post sobre o <a href="/thinkcentre-m720q-homelab/">ThinkCentre M720q no homelab</a>.</li>
<li><strong>Montar o cluster</strong> e o <strong>QDevice</strong> no NAS ou numa máquina pequena.</li>
<li>Só então pensar em <strong>HA</strong> para os serviços que não podem parar.</li>
</ol>
<p>E antes de qualquer passo: backup em dia. Criar cluster mexe na configuração do host, e eu já sei bem o que é perder tudo. A rotina está no post sobre <a href="/backup-proxmox-vzdump/">backup com vzdump</a>.</p>
<h2 id="resumindo">Resumindo <a class="anchor" href="#resumindo" aria-label="Link para esta seção">#</a></h2>
<ul>
<li><strong>Dois nós não formam maioria</strong> quando um cai: o cluster precisa de um terceiro voto.</li>
<li>O <strong>QDevice</strong> dá esse voto com um serviço leve (<code>corosync-qnetd</code>) numa máquina externa.</li>
<li><strong>Rede de baixa latência</strong> (menos de 5 ms) é obrigatória entre os nós.</li>
<li><strong>Cluster não é HA sozinho:</strong> precisa de storage compartilhado ou replicação, que exige ZFS.</li>
</ul>
<p>Quando a segunda máquina chegar, volto aqui para contar como foi na prática.</p>
]]></content:encoded></item></channel></rss>