Requisitos
Cluster
- Kubernetes con soporte CSI (probado en k3s y distribuciones estándar).
- Al menos 3 nodos de almacenamiento para RF3, o 2 para RF2.
- Red entre nodos de almacenamiento con baja latencia; se recomienda separar la red de replicación de la de gestión.
Nodos de almacenamiento
| Recurso | Requisito |
|---|---|
| CPU | x86-64. La imagen de SPDK debe estar compilada para la generación de CPU más antigua del cluster. |
| Hugepages | 4 GiB de hugepages de 2 MiB por nodo (el agente las reserva al arrancar). |
| Discos | NVMe (driver nvme, por dirección PCI) o dispositivos de bloques (driver uring o aio). |
| Kernel | Módulo nvme-tcp disponible en los nodos que montan volúmenes. |
:::tip Hipervisores
Algunos hipervisores (p. ej. VMware) bloquean io_uring dentro de la VM. En ese caso usa driver: aio para esos discos.
:::
Preparar los discos
Los discos que vayas a usar deben estar vacíos. Si han tenido un uso anterior (otro RAID, otro sistema de archivos), borra los metadatos del principio y del final del disco antes de añadirlos a un pool:
DISK=/dev/disk/by-id/<id-del-disco>
SIZE_MB=$(( $(blockdev --getsize64 "$DISK") / 1024 / 1024 ))
dd if=/dev/zero of="$DISK" bs=1M count=2 oflag=direct
dd if=/dev/zero of="$DISK" bs=1M count=2 seek=$(( SIZE_MB - 2 )) oflag=direct
peligro
Esta operación destruye los datos del disco de forma irreversible.
Etiquetar los nodos
El agente de QuasarSDS solo se ejecuta en los nodos etiquetados como de almacenamiento:
kubectl label node <nodo> quasarsds.io/storage-node=true