# Storage Deep Dive

## 1. Pluggable Storage Architecture (PSA)

O ESXi usa o PSA para gerenciar multipathing.

- **NMP (Native Multipathing Plugin):** Padrão.
- **Path Selection Policies (PSP):**
  - **Fixed:** Usa um caminho preferido. Se cair, troca. Se voltar, volta pro preferido.
  - **MRU (Most Recently Used):** Não volta automaticamente para o preferido. Padrão para muitos storages A/P.
  - **RR (Round Robin):** Alterna I/O entre caminhos ativos. Melhor performance agregada.
- _Dica N3:_ Verifique se o storage array recomenda alterar o IOPS limit do Round Robin (padrão 1000) para 1 (para melhor balanceamento). Comando: `esxcli storage nmp psp roundrobin deviceconfig set ...`

## 2. vSAN (Virtual SAN)

Storage definido por software usando discos locais dos hosts.

### Troubleshooting Básico vSAN

- **Skyline Health:** Monitor > vSAN > Skyline Health. É o painel de controle principal. Resolva TUDO que estiver vermelho aqui.
- **Object Health:** Se houver "Inaccessible objects", dados estão indisponíveis (falha de >1 host/disco além da tolerância FTT).
- **Resyncing Objects:** Após falha ou manutenção, o vSAN reconstrói dados. Isso consome I/O. Você pode limitar a banda de resync se as VMs estiverem lentas.

## 3. Storage I/O Control (SIOC)

Recurso para garantir QoS no disco.

- Se habilitado, o ESXi monitora a latência do datastore.
- Serve para evitar que uma "VM barulhenta" (Noisy Neighbor) drene todo o I/O do storage.
- _Debug:_ Se VMs estão lentas sem motivo aparente, verifique se o SIOC não está limitando artificialmente (Threshold muito baixo).

## 4. VMFS Locking e Metadata

- **VMFS-6:** Suporta recuperação automática de espaço (UNMAP) assíncrona.
- **File Locks:** Se uma VM não liga dizendo "File locked", um host ainda está segurando o arquivo.
  - _Solução:_ Identificar qual host tem o lock (via logs `vmkernel.log` buscando o endereço MAC do locker) e reiniciar o processo de gerenciamento nele.
