Sistemas de almacenamiento y NAS
Resumen breve
El almacenamiento es una combinación de medios (SSD/NVMe/HDD), redes (Ethernet/IB/FC), protocolos (NFS/SMB/iSCSI/S3) y software (ZFS, Ceph, NetApp, TrueNAS, etc.), que proporciona productividad, confiabilidad, seguridad y economía. La elección correcta depende del perfil I/O (rand/serie, bloque/archivo/objeto), los requisitos de RPO/RTO y SLO por latencia/ancho de banda.
Taxonomía de almacenamiento
DAS (Direct Attached Storage): unidades «junto al servidor». Latencia mínima, no hay botellas en red, pero es más difícil compartir recursos.
SAN (Storage Area Network): almacenamiento en bloque por FC/iSCSI/NVMe-oF. Alto rendimiento, LUN-s compartidos, administración centralizada.
NAS (Network Attached Storage) - Bolas de archivo NFS/SMB. Conveniente para directorios generales, registros, artefactos, contenido de medios.
Almacenamiento de objetos: API compatibles con S3 (Ceph RGW/MinIO/cloud). Para backups, registros, archivos, medios de comunicación, artefactos de modelos.
Soluciones hiperconvergentes (HCI): combinan cálculo y almacenamiento (Ceph, vSAN, StarWind, etc.) para una escala horizontal.
Protocolos de acceso
Archivos:- NFSv3/v4 - Entorno Unix/Posix, bloqueo de estado, Kerberos/KRB5i/KRB5p.
- SMB 3. x - Windows/dominios AD, cifrado/firmas, multichannel, DFS.
- iSCSI - sobre Ethernet, LUN, muchas rutas (MPIO), conveniente para virtualización/DB.
- FC/NVMe-oF - baja latencia, fábricas/tarjetas especializadas.
- S3 API son versiones de objetos, lifecycle, WORM/Compliance mode, multipart upload.
- Unidad de → DB/virtuales (iSCSI/NVMe-oF).
- Carpetas conjuntas/artefactos CI → NFS/SMB.
- Logs/backups/medios/modelos → objeto S3 compatible.
Datos y codificación: RAID, ZFS, Código Erasure
RAID
RAID1/10 - baja latencia y alta IOPS/rand-reading/escritura.
RAID5/6 - ahorro de capacidad, pero penalización de grabación (escritura penalti).
ZFS: copia de escritura (CoW), grupos y vdev, caché ARC/L2ARC, ZIL/SLOG para operaciones sync, snapshots/réplica e integridad incorporada (checksums).
Código Erasure (EC) en sistemas distribuidos (Ceph/MinIO): el código 'k + m' de Reed-Solomon es un ahorro en comparación con la replicación triple con una degradación aceptable del rendimiento por escritura.
- Cargas aleatorias en caliente (metadatos, archivos pequeños) → mirrores RAID10/ZFS en NVMe.
- → EC fríos/archivados, grandes HDD, cachés agresivos.
- Para registros sync (NFS nat): SLOG dedicado en NVMe (PLP) confiables y de bajo contenido.
Rendimiento: IOPS, ancho de banda, latencia
Los IOPS son importantes para operaciones aleatorias menores (DB/metadatos).
Ancho de banda - para archivos grandes (videos, backups).
Latencia p95/p99: es crítica para la DAB, las colas, la API de caché.
Colas y paralelismo: subprocesos múltiples en el cliente, 'rsize/wsize' para NFS, 'rw, queue _ depth' para iSCSI.
Red: 25/40/100 GbE (o IB) + RSS/RPS, jumbo MTU dentro del centro de datos.
Almacenamiento en caché y pruebas
ARC/L2ARC (ZFS): memoria caché de lectura RAM y NVMe; SLOG es un registro de registros sync.
Write-back/Write-through caches controladores - cuidado, sólo con la batería/supercondensador (BBU/PLP).
Tiering: NVMe (caliente) → SSD (caliente) → HDD (frío) → objeto (archivo). Políticas de migración y lifecycle.
Snapshots, clones, replicación, DR
Snapshots (CoW): puntos instantáneos para retroceso/retroceso; almacenar los directorios «dentro» de la bóveda, no sólo en el hipervisor.
Replicación: sincrónica (RPO≈0, por encima de latencia), asíncrona (RPO = N min).
Clones: entorno económico dev/test.
Diagramas DR: 3-2-1 (tres copias, dos tipos de medios, uno fuera del sitio), ejercicios DR regulares; Objetivos RPO/RTO.
Seguridad, cumplimiento y multipropósito
Autenticación/autorización: LDAP/AD, Kerberos/NTLMv2 para SMB, AUTH_SYS/KRB para NFSv4.
Aislamiento: VLAN/VRF, políticas de exportación, cuotas de tenant/quotas.
Cifrado: en reposo (LUKS/ZFS nativo/SED) y en vuelo (NFS-krb5p/SMB encryption/TLS para S3).
WORM/Compliance para datos legalmente significativos (S3 Object Lock, SnapLock análogos).
Auditoría: registros de acceso inmutables, integración con SIEM.
Monitoreo y SLO
Métricas:- Por grupos/volúmenes: uso, 'p95/p99 latency', IOPS, throughput, queue depth, cache hit, write amplification.
- Por red: drops, retransmits, PPS, MTU mismatch.
- Por medios: media errors, wear-level, temperatura, SMART.
- Por replicación/snapshots: valor/edad, éxito de las tareas, duración.
- Bola NFS para CI: p95 latencia ≤ 3 ms, disponibilidad ≥ 99. 95%.
- LUN para BD: p99 write ≤ 1. 5 ms, réplica sincrónica dentro de la región; RPO 0, RTO ≤ 5 minutos.
- Objeto: p95 PUT ≤ 50 ms, p95 GET ≤ 30 ms, 11 × 9 durabilidad (a través de la UE/replicación).
- Relleno de pool> 80/90/95%, caída de cache hit, crecimiento de write-amp, degradación de disco, reducción de red, valor de replicación> umbral.
Copia de seguridad y archivo
Instantáneas + réplica remota + retroceso independiente en el objeto/cinta.
Políticas de retención: diurnas/semanales/mensuales.
Inmutabilidad: S3 Object Lock (Governance/Compliance), «air-gap» (cinta/cuentas deshabilitadas).
Pruebas de recuperación - regularmente.
Plantillas prácticas (mínimas)
Exportar NFS (ejemplo)
/pool/projects 10. 0. 0. 0/16(rw,async,no_root_squash,sec=krb5p)
SMB share (fragmento smb. conf)
[media]
path = /pool/media read only = no vfs objects = acl_xattr, recycle ea support = yes kernel oplocks = no smb encrypt = required
ZFS: crear un grupo y dataset
bash zpool create tank mirror nvme0n1 nvme1n1 zfs set atime=off compression=lz4 tank zfs create tank/projects zfs set recordsize=1M tank/projects # большие файлы zfs set recordsize=16K tank/db # БД/мелкие I/O
iSCSI (ideas)
Habilitar ALUA/MPIO, temporizadores correctos y queue depth en los clientes.
Separar las redes iSCSI y el tráfico del cliente, activar Jumbo MTU dentro de la fábrica de storage.
Planificación de capacidad y rendimiento
Modelo de conjunto de trabajo (volumen caliente) y tasa de crecimiento (aumento mensual).
Stock por IOPS y ancho de banda 30-50% bajo picos y rebalance.
Tenga en cuenta la amplificación escrita (RAID/EC/CoW) y los metadatos.
Para un objeto, el costo de las solicitudes y el tráfico saliente, clases de almacenamiento (standard/IA/glacier-like).
Operaciones
Actualizaciones de controladores/OS/firmware.
Scrubs/Resilver ventanas y prioridades.
Equilibrar los rebillos: restringir I/O en la recuperación para no «matar» el prod.
Runbooks en degradación/pérdida de nodos/redes.
Lista de comprobación de implementación
- Perfil de acceso seleccionado: archivo/bloque/objeto + RPO/RTO/SLO.
- Esquema de codificación (RAID/ZFS/EC) bajo carga y precio.
- Redes: VLAN/VRF individuales, MTU 9000 dentro de la fábrica, MPIO/ALUA.
- Caché/ticket: ARC/L2ARC/SLOG o mecanismos similares.
- Snapshots/réplica/backup: horarios, inmutabilidad, ejercicios de RD.
- Monitoreo: agrupaciones/medios/métricas de red/replicación, alertas.
- Acceso/seguridad: ACL, Kerberos/AD, cifrado, auditoría.
- Cuotas/límites para tenantes y catálogos SLA/SLO.
- Documentación y runbooks, recuperación de pruebas.
Errores
El desbordamiento del grupo> 80% en los sistemas ZFS/EC → un fuerte aumento de la latencia.
Un controlador/una red sin MPIO/redundancia.
Mezcle kits de trabajo fríos y calientes en la misma clase de medios.
No hay SLOG para cargas sync en NFS → retrasos impredecibles.
Backups sólo «dentro» de la misma matriz/cuenta → pérdida por accidente/compromiso.
Ausencia de scrub y monitoreo SMART regulares.
Ignora los patrones I/O pequeños: un gran 'recordsize' para la DB.
Características específicas para iGaming/Fintech
BD y billeteras transaccionales: grupos independientes de NVMe, RAID10/ZFS-Mirror, réplica sincrónica a la zona B, encierros independientes.
Logs/eventos crudos y antifraude: objeto + lifecycle + clases baratas, índices/escaparates - en SSD.
Contenido y medios (proveedores): NAS + CDN, caché agresivo, deduplicación.
Informes y PII: WORM/immutabilidad, cifrado, auditoría de acceso, geolocalización de datos.
Eventos pico: caché warm-up, límites de E/S, control p99 latency en grupos.
Un sistema de almacenamiento fiable es una partición de clase correcta (archivo/bloque/objeto), un esquema de codificación adecuado (RAID/ZFS/EC), una red rápida, caché/ticket, snapshots + réplica + back, SLO rígidos y operaciones automatizadas. Siguiendo estos principios, obtendrá un rendimiento predecible, una alta sostenibilidad y una economía de almacenamiento transparente, teniendo en cuenta los requisitos de seguridad y reguladores.