VPS con HDD: dónde el disco duro sale rentable y dónde se convierte en un cuello de botella
El disco duro pierde frente al SSD en casi todo, salvo en el precio por gigabyte. Por eso un VPS con HDD no es una opción anticuada, sino una herramienta para tareas concretas: allí donde hay muchos datos y se accede a ellos rara vez y en bloques grandes. El error empieza cuando en un disco así se pone algo que vive de pequeñas operaciones aleatorias.
IOPS frente a capacidad: por qué el HDD no siempre es lento
Un disco mecánico tiene dos velocidades muy distintas. La lectura y escritura secuencial de un archivo grande es rápida, del orden de 150–250 MB/s para un disco y más para un array. En cambio, el acceso aleatorio choca con la mecánica: el cabezal tiene que desplazarse hasta la pista adecuada, y un disco solo realiza del orden de 100–200 operaciones por segundo. Un buen NVMe hace cientos de veces más. La comparación detallada de los tipos de almacenamiento está en la página VPS con NVMe.
En un VPS se suman los vecinos: el array de discos es compartido, y si alguno lanza una operación pesada, la cola de los discos crece para todos. Los proveedores salvan en parte la situación con una caché en SSD y una controladora RAID con memoria, así que el panorama real depende del nodo concreto.
De ahí un criterio de elección sencillo. Observa cómo accede tu aplicación a los datos. Si lee y escribe archivos grandes completos, de cientos de megabytes o más, el HDD casi no se queda atrás frente al SSD y cuesta varias veces menos por gigabyte. Si el programa accede constantemente a miles de archivos o registros pequeños, lo deciden todo los IOPS y la latencia, y la diferencia con el SSD se notará en cada petición. También importa el volumen de datos calientes: cuando la parte de uso frecuente cabe en la memoria RAM, el sistema la cachea y el disco trabaja sobre todo en escritura.
RAID y fiabilidad de los planes con HDD
Los discos duros fallan más a menudo que los de estado sólido, sobre todo bajo carga constante. Por eso los nodos con HDD casi siempre están montados en RAID: el fallo de un disco no detiene el servidor, pero mientras se reconstruye el array la velocidad cae de forma notable. Es un fenómeno normal del que los proveedores rara vez avisan. El RAID no sustituye a una copia de seguridad: no protege frente al borrado de archivos ni frente a errores.
Tareas para las que el HDD sirve
- Destino de copias de seguridad. Las copias se escriben en flujo y se leen rara vez, y el volumen crece con el tiempo. Es el escenario principal; véase VPS para copias de seguridad.
- Archivo de documentos, logs y exportaciones a los que se accede una vez por semana o menos.
- Distribución de archivos grandes a tus usuarios: distribuciones de tu propio software, vídeos de la empresa, imágenes de instalación. La lectura es larga y secuencial.
- Réplica secundaria o reserva en frío en la que no funciona nada mientras el servidor principal esté vivo.
Si la tarea es almacenar mucho y durante mucho tiempo, fíjate en la selección Storage VPS con discos de 500 GB en adelante.
Dónde el HDD irá lento
- Bases de datos. MySQL y PostgreSQL realizan miles de pequeñas operaciones aleatorias y llaman a fsync en cada transacción. En un HDD eso supone latencias de decenas de milisegundos por consulta.
- Webs con CMS sin caché completa: cada página son decenas de lecturas de archivos y consultas a la base de datos.
- Docker y compilaciones: descomprimir imágenes e instalar dependencias son miles de archivos pequeños.
- El propio sistema. La actualización de paquetes, la búsqueda en logs y el reinicio van varias veces más lentos en un HDD. A veces es más sensato contratar un servidor SSD pequeño para el sistema y las aplicaciones, y usar el servidor HDD o un disco adicional solo para los datos.
La señal de que chocas con el límite del disco es un wa alto en top con el procesador casi libre y valores grandes de await en iostat -x 1.
Cómo comprobar el disco después de la compra
La prueba con dd solo muestra la escritura secuencial y a menudo cae en la caché, así que en un HDD es especialmente engañosa. Usa fio y comprueba ambos escenarios con la opción --direct=1 para saltarte la caché del sistema:
- escritura secuencial:
fio --name=seq --rw=write --bs=1M --size=4G --direct=1; la referencia para un array HDD es de 100 MB/s en adelante; - lectura aleatoria:
fio --name=rand --rw=randread --bs=4k --size=2G --iodepth=16 --direct=1 --runtime=60 --time_based; un resultado normal para HDD son cientos de IOPS, y miles indican una caché en SSD.
Usa un tamaño de prueba mayor que la memoria RAM del servidor y ejecútala varias veces a distintas horas: por la noche, cuando los vecinos lanzan sus copias, el resultado puede caer bastante. Si las cifras encajan con la tarea, el HDD valdrá lo que cuesta; si no, es mejor mudarse en los primeros días que trasladar terabytes más adelante.