manuais-e-documentacao-itguys/documentacao storage/Nivel_3/[Nível 3] Arquitetura ZFS e...

110 lines
5.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MANUAL TÉCNICO - ARQUITETURA ZFS E PLANEJAMENTO - TRUENAS SCALE
**Código:** ITGENG 0016/26 | **Classificação:** RESTRITO
**Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}}
## 1. HISTÓRICO DE REVISÃO
> ⚠️ **REGRA DE OURO:**
> 1. **Autor:** João Pedro Toledo Gonçalves.
> 2. **Descrição:** Criação do documento.
| Data | Versão | Descrição | Autor |
| :--- | :--- | :--- | :--- |
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |
## 2. OBJETIVO
Definir a arquitetura lógica de armazenamento ZFS, incluindo escolha de VDEVs, dimensionamento de hardware (Sizing) e estratégias de redundância para diferentes cargas de trabalho (VMs, Backup, Arquivos).
## 3. PRÉ-REQUISITOS
> Lista de hardware e conceitos necessários.
* [ ] Servidor compatível com TrueNAS Scale (HCL verificado).
* [ ] Discos SAS/SATA em modo Passthrough (HBA) ou AHCI. **Jamais Hardware RAID.**
* [ ] Memória ECC (Recomendado para produção).
## 4. CONCEITOS ZFS E REDUNDÂNCIA (VDEVs)
> **NOTA:** Um Pool ZFS é composto por um ou mais VDEVs. Se UM VDEV falhar completamente, **TODO O POOL É PERDIDO**. A redundância ocorre no nível do VDEV.
### Tipos de VDEV de Dados
| Tipo | Descrição | Custo/GB | Performance | Segurança | Uso Recomendado |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Mirror** | Espelhamento (RAID 1/10). 2+ discos. | Alto (50% útil) | Alta (Leitura/Escrita) | Alta | VMs, Bancos de Dados, iSCSI. |
| **RAIDZ1** | Paridade Simples (RAID 5). Min 3 discos. | Baixo | Média | Baixa (Risco na resilver) | Não recomendado para discos > 2TB. |
| **RAIDZ2** | Paridade Dupla (RAID 6). Min 4 discos. | Médio | Média/Baixa | Muito Alta | File Server, Backups, Mídia. |
| **RAIDZ3** | Paridade Tripla. Min 5 discos. | Médio | Baixa | Extrema | Cold Storage, Arquivamento Crítico. |
### VDEVs Especiais (Performance)
1. **LOG (SLOG):**
* **Função:** Acelera escritas síncronas (NFS, Banco de Dados, iSCSI). Move o ZIL (ZFS Intent Log) para um SSD rápido.
* **Hardware:** SSD High Endurance (Optane é ideal). Não precisa ser grande (16GB-32GB sobraram).
* **Risco:** Se o SLOG falhar sem mirror, pode haver perda de dados em escritas não confirmadas durante um crash.
2. **CACHE (L2ARC):**
* **Função:** Extensão da RAM (ARC) para leitura. Armazena dados acessados frequentemente que não cabem na RAM.
* **Hardware:** NVMe/SSD rápido de leitura.
* **Atenção:** Consome RAM para mapear o L2ARC. Só use se tiver >64GB de RAM e ela já estiver cheia.
3. **METADATA (Special VDEV):**
* **Função:** Armazena metadados do filesystem e arquivos pequenos. Acelera monstruosamente listagem de diretórios e buscas.
* **Hardware:** SSD NVMe em Mirror (Obrigatorio).
* **Crítico:** **Se este VDEV falhar, o pool morre.** Sempre usar espelhamento (Mirror).
![Diagrama de VDEVs ZFS](assets/zfs_architecture.png)
*(Imagem ilustrativa da estrutura de Pool > VDEV > Discos)*
## 5. DIMENSIONAMENTO DE HARDWARE (SIZING)
### Memória RAM (ARC)
O ZFS usa RAM agressivamente para cache (ARC). É o componente mais importante para performance.
> 🚀 **REGRA BÁSICA:** 1 GB de RAM para cada 1 TB de Espaço Bruto.
**Cenários Ajustados:**
* **File Server Simples/Backup:** Pode usar menos (ex: 8GB RAM para 20TB), mas a performance cairá.
* **VMs/iSCSI:** Mínimo 32GB ou siga a regra de 1GB/1TB, o que for maior.
* **Deduplicação:** Requer **5 GB de RAM por TB de dados**.
> ⚠️ **PERIGO:** **Não ative Deduplicação** a menos que tenha certeza absoluta e RAM infinita. Use Compressão (`LZ4` ou `ZSTD`).
### CPU
* **Compressão (LZ4):** Leve, qualquer CPU moderna aguenta.
* **Compressão (ZSTD-High):** Exige multicore moderno.
* **Encripatação:** Exige suporte AES-NI.
## 6. CENÁRIOS RECOMENDADOS
### Cenário A: Alta Performance (Virtualização/Databases)
* **Layout:** Mirrors de SSDs ou HDDs SAS 10k/15k.
* **Rede:** 10GbE / 25GbE iSCSI.
* **Extras:** SLOG (Optane) + RAM Máxima.
* **Record Size:** Pequeno (8k, 16k) na tunagem do Dataset/Zvol.
### Cenário B: Capacidade e Segurança (File Server / Mídia)
* **Layout:** RAIDZ2 (6-10 discos por VDEV). Evite VDEVs muito largos (>12 discos).
* **Extras:** Special VDEV (Metadata) em SSD para acelerar navegação de pastas.
* **Record Size:** Grande (1M) para arquivos de mídia/backup.
### Cenário C: Backup Puro (Veeam Repo)
* **Layout:** RAIDZ2 ou RAIDZ3.
* **Compressão:** ZSTD (Nível 3 ou superior) para economizar espaço.
* **Foco:** Custo/GB.
## 7. DADOS TÉCNICOS
| Parâmetro | Valor Padrão | Notas |
| :--- | :--- | :--- |
| **Compressão Padrão** | `LZ4` | Excelente equilíbrio. Mude para `ZSTD` se CPU sobrar. |
| **Sync** | `Standard` | Para segurança total, use `Always` (Requer SLOG). |
| **Atime** | `Off` | Desligue para evitar escritas desnecessárias a cada leitura. |
| **Dedup** | `Off` | **NÃO LIGUE**. Performance penalty servero. |
## 8. VALIDAÇÃO (CHECKLIST DE DESIGN)
- [ ] O Hardware tem acesso direto aos discos (Sem RAID Controller)?
- [ ] A quantidade de RAM está adequada ao tamanho do pool?
- [ ] Se usar RAIDZ1, os discos são menores que 2TB? (Se >2TB, use Z2).
- [ ] Se usar Special VDEV ou SLOG, eles estão redundantes (Mirror)?
- [ ] Existe plano de backup off-site? (RAID não é Backup).