Solução da comunidade

Guia de passagem direta de SATA no ZimaCube com Proxmox + TrueNAS

Users successfully virtualized TrueNAS under Proxmox by passing through the onboard ASMedia SATA controller, while one setup hit conflicts when adding a second SAS HBA.

Executar o Proxmox num ZimaCube com o TrueNAS SCALE numa VM pode funcionar bem quando o TrueNAS recebe um controlador SATA/HBA físico completo através de passthrough de PCIe. O essencial é manter os discos ZFS sob o controlo direto do TrueNAS, em vez de apresentar discos virtuais comuns, e verificar os grupos IOMMU antes de confiar os seus dados ao sistema.

A fonte da comunidade apresenta um resultado verificado útil: a passagem do controlador SATA ASMedia 1166 integrado para uma VM TrueNAS nova expôs com sucesso as unidades internas. Também regista um caso particular importante — adicionar o passthrough de um segundo HBA SAS3008 fez com que o passthrough SATA interno falhasse para um utilizador. Esse conflito é específico da configuração, pelo que deve ser encarado como uma pista de resolução de problemas e não como uma limitação universal.

Arquitetura recomendada

Hardware ZimaCube
   ↓
Anfitrião Proxmox VE
   ↓
Passthrough de PCIe: controlador SATA/HBA completo
   ↓
VM TrueNAS SCALE
   ↓
Pools ZFS criados diretamente a partir de discos físicos

O anfitrião não deve formatar nem montar os discos atribuídos ao TrueNAS.

Por que razão é melhor passar o controlador completo

A passagem de um controlador completo dá ao TrueNAS visibilidade direta dos discos que estão ligados a esse controlador, incluindo a identidade dos dispositivos e as informações SMART, quando o controlador as suporta. Também impede que o Proxmox reclame esses mesmos discos de forma independente.

Não crie ZFS no TrueNAS sobre uma pilha de discos virtuais Proxmox não relacionados se o seu objetivo for obter um comportamento de armazenamento semelhante ao de um appliance.

Passo 1: Ativar o IOMMU no firmware e no Proxmox

Os sistemas Intel precisam de VT-d/IOMMU ativado; os sistemas AMD precisam da funcionalidade IOMMU correspondente. O Proxmox também precisa do IOMMU ativado ao nível do kernel.

A documentação dos pré-requisitos do passthrough do Proxmox indica que o suporte de passthrough tem de estar ativado tanto no firmware como no kernel do anfitrião.

Passo 2: Identificar o controlador SATA e o respetivo grupo IOMMU

Utilize lspci no anfitrião Proxmox e identifique o controlador que serve as seis baías internas. O tópico de origem identificou um controlador SATA ASMedia 1166 na configuração ZimaCube.

Antes do passthrough, verifique se o controlador está num grupo IOMMU que possa ser atribuído em segurança, sem retirar dispositivos essenciais não relacionados ao anfitrião Proxmox.

Passo 3: Criar a VM do TrueNAS antes de ligar o armazenamento

Crie a VM do TrueNAS com CPU virtual, memória, um pequeno disco de arranque separado e um adaptador de rede. Instale o TrueNAS, atualize-o e confirme que a VM arranca normalmente antes de atribuir o controlador de armazenamento físico.

Isto torna muito mais fácil determinar se uma falha posterior é causada pelo passthrough de PCIe, e não pela própria instalação do sistema convidado.

Passo 4: Passe o controlador SATA inteiro para a VM

Adicione o controlador como dispositivo PCI à VM do TrueNAS. Após o arranque, verifique lspci e a interface de armazenamento do TrueNAS para os discos físicos.

No caso da fonte, recriar a VM do TrueNAS e depois adicionar o controlador ASMedia fez com que todas as unidades internas aparecessem corretamente.

E se o controlador aparecer, mas os discos não?

Verifique se o controlador do convidado foi carregado, se o controlador foi reiniciado corretamente e se outro dispositivo em passthrough está a causar interferências. O utilizador da fonte descobriu que passar um HBA SAS3008 adicional para a mesma VM interrompia o comportamento do controlador SATA interno; remover esse HBA fez os discos internos reaparecerem.

Isso não prova que esses dois controladores nunca possam coexistir. É uma indicação para testar um controlador de cada vez.

Não crie o pool até o passthrough estar estável

Antes de criar o ZFS:

  • reinicie o Proxmox várias vezes;
  • reinicie a VM do TrueNAS várias vezes;
  • confirme se todos os discos regressam de forma consistente;
  • verifique a visibilidade do SMART;
  • verifique se não há discos montados pelo anfitrião.

Uma topologia de armazenamento que funciona uma vez, mas desaparece após um reinício a quente, não está pronta para dados de produção.

Planeie separadamente as cópias de segurança do Proxmox e do TrueNAS

As cópias de segurança do Proxmox protegem a configuração da VM e o disco de arranque do TrueNAS. Não substituem os snapshots ZFS, a replicação nem uma cópia de segurança externa do pool de dados.

O guia de virtualização fornece um contexto mais abrangente sobre o Proxmox.

Quando o TrueNAS em Bare Metal é mais simples

Se a única função da máquina for o armazenamento, o TrueNAS em bare metal elimina uma camada de virtualização e a complexidade do passthrough. O Proxmox com TrueNAS virtualizado faz mais sentido quando também precisa de outras VMs, cargas de trabalho de GPU, ambientes de laboratório ou funcionalidades de gestão do Proxmox no mesmo servidor.

Perguntas frequentes

Devo passar discos individuais ou o controlador SATA inteiro?

Para TrueNAS/ZFS, passar o controlador de armazenamento físico completo é o design mais simples, porque o TrueNAS passa a controlar diretamente os discos ligados a esse controlador.

O Proxmox pode continuar a utilizar discos num controlador em passthrough?

Não. Assim que o controlador inteiro é atribuído ao TrueNAS, o Proxmox não deve gerir os discos ligados a esse controlador.

Porque é que adicionar um segundo HBA fez desaparecer os discos internos?

Um utilizador da comunidade observou uma interação com um SAS3008 em passthrough. Teste os controladores individualmente e verifique o comportamento do IOMMU/reinicialização, em vez de assumir uma falha de hardware universal.

Ainda preciso de cópias de segurança se utilizar ZFS?

Sim. O ZFS protege a integridade e fornece snapshots, mas não é uma cópia de segurança externa.