La virtualización de almacenamiento, también conocida como almacenamiento definido por software, se trata de un concepto de virtualización que tiene como objetivo la representación virtual de los diversos recursos de almacenamiento de una empresa, tales como discos duros, memorias flash o unidades de cinta, con el objetivo de hacerlos disponibles como un grupo de recursos interrelacionado. Esta solución de virtualización establece una capa de abstracción entre los distintos medios de almacenamiento físicos y el nivel lógico, en el cual se puede gestionar al conjunto de recursos de almacenamiento de forma centralizada a través de software.
Las memorias virtuales también se pueden dividir en partes y asignarse a las aplicaciones seleccionadas. Aunque se trate de datos almacenados mediante virtualización, los usuarios pueden acceder a ellos con la ruta de archivos habitual, incluso si se ha modificado el espacio físico de almacenamiento. Todo ello es posible gracias a una tabla de asignaciones o tabla de mapeo gestionada por el software de virtualización, a lo que se denomina asignación (mapeo) de los medios físicos de almacenamiento en la unidad lógica (en ocasiones también llamadas volúmenes).
Las unidades lógicas no están sujetas a los límites de capacidad física de cada uno de los medios de almacenamientos individuales, esto es, este tipo de virtualización ofrece una mayor flexibilidad en lo que respecta a la asignación de recursos de almacenamiento y permite utilizar el hardware dispuesto para el guardado de datos a pleno rendimiento. Para las empresas esto se traduce en una mayor rentabilidad de la capacidad de almacenamiento del centro de datos.
Normalmente, en el ámbito corporativo se suele recurrir a la virtualización de almacenamiento basada en bloques, en la que los datos se reparten en bloques de igual tamaño. Cada bloque de datos tiene una dirección única que el software de virtualización almacena en la tabla de mapeo, es decir, esta tabla contiene todos los metadatos necesarios para encontrar el espacio de almacenamiento físico de los distintos bloques de datos. Gracias al mapeo es posible gestionar los datos del nivel virtual de forma separada al controlador correspondiente del medio físico de almacenamiento y de este modo reducirlos, duplicarlos o moverlos sin que afecte al medio físico.
En la práctica, en la virtualización de almacenamiento se distinguen tres enfoques distintos:
- Basada en host
- Basada en matriz
- Basada en red
Virtualización de almacenamiento basada en host
Este enfoque de la virtualización de almacenamiento suele combinarse con máquinas virtuales. En este concepto, un sistema anfitrión (o host) presenta a uno o varios sistemas huésped (ver la virtualización de hardware) unidades lógicas virtuales en un nivel de abstracción, que bien se implementan mediante un gestor de volúmenes de sistema operativo interno o un software independiente (hipervisor de almacenamiento). El controlador del dispositivo del sistema host permite tener acceso al hardware (discos duros y otros sistemas de almacenamiento), por encima del cual se encuentra el gestor de volúmenes o hipervisor de almacenamiento como capa de software, que gestiona tanto la entrada y salida (E/S) en la tabla de mapeo, como la búsqueda metadatos.
Las funciones nativas que permiten crear unidades lógicas virtuales están disponibles en todos los sistemas operativos:
- Windows: Logical Disk Manager (LDM)
- macOS: CoreStorage (desde OS X Lion)
- Linux: Logical Volume Manager (LVM)
- Solaris y FreeBSD: zPools del sistema de archivos Z File Systems (ZFS)
La virtualización de almacenamiento basada en host no requiere hardware adicional, es compatible con cualquier dispositivo de almacenamiento y se puede implementar sin apenas esfuerzo. En comparación con otros conceptos, este enfoque ofrece el mejor rendimiento, ya que cada dispositivo reacciona inmediatamente y, en consecuencia, sin periodo de latencia. No obstante, los usuarios tienen que tener en cuenta que la virtualización de almacenamiento, su optimización y consumo de memoria se limita a cada host.
Virtualización de almacenamiento basada en matriz
Las matrices de discos, dispositivos de almacenamiento masivos con los que se pueden suministrar discos duros en la red, ofrecen también la posibilidad de virtualizar recursos de almacenamiento. Para ello se utilizan los esquemas RAID, siglas de Redundant Array of Independent Disks (matriz redundante de discos independientes), que designan un concepto de almacenamiento de datos en el que varios discos duros físicos se combinan en una plataforma de almacenamiento virtual. El objetivo que persigue este enfoque de virtualización es garantizar la seguridad contra fallos mediante redundancia. Es por ello que los datos se replican en una matriz de discos y se distribuyen en diferentes discos duros.