Crea una unidad de disco duro ultrarrápida en memoria para tus juegos o archivos temporales

12/09/2021
Artículo original

Imagen de un disco en el explorador.En ocasiones la velocidad de nuestro disco duro lo es todo para lograr una experiencia óptima utilizando nuestro PC. Es por esto que yo jamás compraría un ordenador nuevo que no tuviese un disco duro SSD rápido instalado. Los discos SSD son lo mejor que le ha pasado a la industria del PC en décadas, y pueden hacer que tu ordenador con 5 o 6 años y un disco convencional (HDD), solo por ponerle un SSD parezca un ordenador (casi) nuevo.

Pero, aunque los SSD son muy rápidos, ¿sabes qué es más rápido todavía? La memoria RAM de tu ordenador.

Por eso, en ocasiones, puede ser muy útil poder crear un disco duro "hecho" de memoria RAM y aprovechar su velocidad extrema con programas que deben crear muchos archivos temporales constantemente, instalar en ellos un juego o un programa que necesita leer y escribir información a toda velocidad, etc. Abrir cualquier archivo o cargar una aplicación que esté instalada en él será instantáneo. Otra utilidad muy interesante es crear un disco para crear bases de datos temporales (como tempdb en SQL Server), lo que puede acelerar mucho ciertos tipos de operaciones. Las aplicaciones son muchas, variadas y normalmente avanzadas.

Windows lo verá como un disco duro normal y corriente, pero estará creado utilizando parte de tu memoria RAM disponible:

El disco RAM visto como un disco normal en el explorador de archivos

Esta virguería es posible conseguirla gracias al uso de software especial que enseguida te voy a contar. Pero antes un par de advertencias:

  1. El disco reservará parte de tu RAM para poder ser creado y trabajar con él. Esto implica, lógicamente, que esa RAM no estará disponible para otros programas. Así que para sacarle partido, o bien creas discos pequeños (a veces pueden ser suficientes) o debes tener un ordenador con mucha RAM (mi portátil por ejemplo tiene 16GB, y eso me parece el mínimo hoy en día para el equipo de un desarrollador, así que no deberías tener problema de crear algún disco de varios GB).
  2. La memoria RAM es volátil. Es decir, si se te va la corriente o se produce un "pantallazo azul de la muerte", pierdes todo lo que tuvieras dentro. El software que te voy a describir a continuación permite almacenar los contenidos de la imagen a disco y recuperarlos al reiniciar, pero si se va la luz de golpe y no tienes batería no te valdrá de mucho. De todos modos a mi no me gusta usar esa opción porque ralentiza el cierre y el inicio del sistema mientras se sincroniza la imagen o se carga respectivamente.

Vamos a ver cómo crearlos...

Cómo crear un disco duro RAM en Windows 10

En esta ocasión vamos a usar un mítico programa Open Source llamado ImDisk Toolkit, creado por el desarrollador sueco Olof Lagerkvist.

Lo primero que tienes que hacer es descargarte el ZIP de la versión para tu sistema operativo (normalmente la de 64 bits) desde la página del programa en SourceForge (ver enlace anterior en el nombre del programa). Ojo, la descarga tarda unos segundos en iniciarse porque SourceForge pone algo de publicidad mientras esperas.

Una vez descargado debes descomprimir el ZIP a cualquier carpeta de tu equipo y lanzar la instalación haciendo doble clic sobre el archivo .bat que encontrarás en la carpeta descomprimida. Eso lanzará el programa de instalación que, como verás, es muy sencillo en cuanto a sus opciones:

Pantalla de opciones de instalación

Fíjate en que está disponible en español (aunque la traducción tiene algunas faltas: yo prefiero instalarlo en inglés). Tan solo debes elegir la ubicación donde instalarlo, y marcar las opciones que desees. Al pasarles por encima con el cursor te dicen para qué sirve cada una, pero puedes dejar las que te muestro en la imagen, e incluso desmarcar la segunda de la "Librería DiscUtils" si no tienes pensado crear imágenes a partir del contenido de carpetas para luego cargarlas en un disco RAM.

Al darle al botón Instalar, en medio segundo más o menos quedará listo y verás una pantalla de confirmación como esta:

Instalación finalizada

Ahora ya tendrás el programa en tu menú de inicio, junto a varias utilidades que trae:

 Programas instalados

El programa de configuración realmente tiene poca utilidad más allá de activar/desactivar los menñus contextuales para montar discos en memoria o crear imágenes de carpetas, o para quitar ciertas letras de unidad para que no puedas elegirlas a la hora de crear las unidades:

Ajustes generales

La manera de crear un disco RAM es a través del programa Configurar RamDisc. Esto abre una diálogo para configurarlo que consta de 3 pestañas, aunque la que vamos a utilizar en el 99% de los casos es la de ajustes básicos:

Ajustes básicos

Como ves, lo único que tienes que hacer es elegir el tamaño de tu disco duro creado sobre la RAM en KB, MB o GB, y poco más. Estas son las opciones:

  • La opción de Asignar memoria dinámicamente es muy interesante porque solo usa memoria a medida que la va necesitando, en lugar de reservarla toda de golpe. Así, puedes crear un disco incluso mayor que la memoria disponible, aunque te "petaría" si la superas, claro. Además, el hecho de crear dinámicamente le resta algo de velocidad, así que yo no marco nunca esta opción.
  • Le asignas una letra de unidad que esté libre, y será la letra con la que se verá en el explorador de archivos y que verán las aplicaciones.
  • Por defecto lo formatea con NTFS, pero puedes hacerlo con FAT, FAT32 o exFAT (probablemente solo te convenga si vas a crear una unidad mayor de 32GB).
  • Si marcas la opción de Lanzar al inicio de Windows, aunque reinicies tendrás disponible siempre la unidad (más sobre esto luego).
  • La opción para crear una carpeta temporal, lo que hace es crear una carpeta _Temp en la raíz de la nueva unidad y cambiar las variables de entorno de Windows para que todos los archivos temporales se guarden en ella. Úsalo solo si este es el propósito de haber creado tu disco en memoria, si no déjalo sin marcar.

Una vez has marcado o desmarcado las opciones que te interesen, dale al botón OK y en unos segundos tendrás creada y formateada una nueva unidad de disco, del tamaño elegido, que ¡está trabajando contra la RAM de tu equipo!

Nota: seguramente te saltará un diálogo de elevación de privilegios para poder hacerlo, así que deberás tener permisos de administración en la máquina.

Se mostrarán automáticamente sus propiedades, que son como las de cualquier otro disco duro (en este caso he creado una de 100MB para pruebas):

Las propiedades de la nueva unidad

IMPORTANTE: si tienes configurado Windows para hacer uso del inicio rápido del sistema (cosa que es bastante interesante en general, aunque yo jamás lo apago salvo para instalar actualizaciones) te saltará un dialogo como el siguiente cuando vayas a crear la unidad en memoria:

Advertencia de arranque rápido activado

Lo que te está diciendo es que si tienes el arranque rápido activado, cuando apagues el equipo lo que ocurrirá es que la RAM se escribirá toda a disco par luego restaurarla en el próximo arranque, por lo que la sincronización del contenido del disco a una imagen no funcionará. Si te preocupa perder datos entre reinicios, deberías desactivar el inicio rápido de Windows (dale al botón que te muestra ese diálogo y te abre la configuración necesaria). Si solo vas a usar el disco para archivos temporales o no te importa perder algo de información, puedes dejarlo así.

Bueno, ahora ya tienes tu disco duro en memoria montado y listo para ser utilizado como cualquier disco convencional.

Vamos a comprobar cómo de rápido es. Para esto he utilizado el famoso programa de verificación de rendimiento de discos duros Crystal Disk Mark del desarrollador japonés Noriyuki Miyazaki. La probé primero en el disco duro SSD de mi portátil, y luego en el disco duro RAM. Según el tipo de lectura o escritura que se haga las mejoras de rendimiento van de casi imperceptibles a 11 veces más rápido en función del tipo de lectura y escritura que se haga al disco, consiguiendo al menos 3 veces más rendimiento en la mayoría de los casos, así que no está nada mal:

Resultados del test de Crystal Disk Mark

Cuando no quieras usar el disco RAM más, puedes desmontarlo. Para ello, desde el mismo programa con el que lo creaste, selecciona la letra de la unidad y el botón ahora pondrá Desmontar estará habilitado. Al darle saltará un diálogo como este:

Diálogo de desmontar

que te pregunta si quieres almacenar los contenidos del disco en memoria como una imagen a disco, para poder preservar sus contenidos. Si le dices que sí te permitirá crear un archivo .img y persistir así lo que tengas en él.

Este tipo de imágenes se pueden montar luego automática o manualmente a nuevas unidades RAM, y mantenerlos sincronizados si así lo deseamos.

Si vas a la pestaña Datos antes de montar una unidad RAM verás que puedes indicarle un archivo de imagen (que puede ser incluso un disco virtual .vhd o un .iso), de modo que tengas sus contenidos disponibles en la nueva unidad:

La pestaña de datos

Puedes además sincronizarlo automáticamente al apagar el equipo (por ejemplo, en un servidor cuando se reinicie tras una actualización), de modo que no pierdas nunca los contenidos del disco, e incluso sincronizarlo a mano cuando quieras desde esta pestaña.

Finalmente en la pestaña Avanzado puedes tocar algunos parámetros complejos, como el tamaño de los clústeres de disco, la compresión NTFS o el uso de AWE (Address Windowing Extensions) para poder crear discos grandes en sistemas Windows de 32bits (que están limitados a usar solo 4Gb de RAM aunque haya más memoria disponible. Necesitas que tu licencia de Windows 32 permita acceder a esa memoria adicional con AWE, y no deberías usar Imdoskc en un sistema de 32bits de todos modos...), montar el disco en una carpeta en lugar de como una unidad con una letra asignada o pasar parámetros adicionales avanzados:

Opciones avanzadas

En el 99,9% de los casos no tocarás esta pestaña para nada.

Nota: si usas este programa para crear discos RAM y le sacas mucha utilidad o los utilizas empresarialmente, por favor, dónale algo a Olof para poder mantener el desarrollo, ya que los certificados para poder firmar los drivers cuestan un pastón al año y redundará en tu interés para que saque más versiones en el futuro.

Desinstalar ImDisk

Si en un momento dado no quieres utilizar más esta utilidad, puedes desinstalarla desde el panel de control del sistema, como cualquier otro programa, a pesar del programa de instalación tan sui generis que tiene:

ImDisk en la lista de programas para desinstalar

En resumen

El uso de discos duros montados directamente sobre memoria RAM permite disponer de unidades de disco ultrarrápidas que podrás utilizar para leer y escribir archivos temporales más rápido, ejecutar aplicaciones a la máxima velocidad, crear espacios para bases de datos temporales que acelerarán tu aplicación, etc... En este artículo te he contado cómo puedes crearlos y administrarlos, sus pros y sus contras y cómo persistirlos a disco y restaurarlos automáticamente o de manera manual.

¡Espero que te haya resultado útil!