software-defined-storageLa wikipedia lo define como una evolución en el software de gestión de los sistemas de almacenamiento, para gestionar el aprovisionamiento y la gestión del almacenamiento de datos independiente del hardware subyacente basado en políticas. Las definiciones de almacenamiento definidos por software incluyen típicamente una forma de virtualización de almacenamiento para separar el hardware de almacenamiento del software que gestiona la infraestructura de almacenamiento. El software permite a un entorno de almacenamiento definido por software (Software-Defined Storage) que también pueda proporcionar la gestión de las políticas y funcionalidades, como la deduplicación, replicación, thin provisioning, snapshots y copia de seguridad.

Cuesta mucho encontrar otra definición menos difusa y que consiga concretar en algo la definición wikipédica del término. Enmarcándolo dentro del paradigma del “Software defined Data Center” SDDC, parece un término relativamente reciente, una tendencia evolutiva natural que desplazará a los sistemas de almacenamiento tradicionales, o por lo menos parte de sus funcionalidades, en favor de una nueva capa software de abstracción.

SOFTWARE DEFINED STORAGE, LA EVOLUCIÓN Y MEJORA DE SUS FUNCIONALIDADES

Explícitamente, e implícitamente su propia definición hace referencia en muchos aspectos a la virtualización del almacenamiento, como mecanismo de abstracción del hardware, como un encapsulador de los sistemas de almacenamiento virtualizados (Software-Defined Storage), que proporciona un único interfaz de gestión independiente de los fabricantes y de los sistemas de almacenamiento que conformen los pooles.

Los sistemas de almacenamiento virtualizado (Software-Defined Storage) no son una novedad, llevan mucho tiempo entre nosotros y su evolución ha permitido la incorporación de numerosas funcionalidades para las que inicialmente no estaban pensados, no solo han unificado la gestión de los sistemas de almacenamiento, lo han dotado de funcionalidades complementarias a las que ya disponíamos en los sistemas de almacenamiento tradicionales (deduplicación, compresión, snapshots, migraciones de datos no disruptivas, volume mirroring, tiering etc …), si no que han permitido traspasar la frontera del data center, conformar almacenamiento con la máxima disponibilidad, protegiendo no solo los sistemas de almacenamiento locales si no, el data center completo con topologías de clúster extendido.

virtualizacion-software-defined-storage

La arquitectura es sencilla, cada uno de los virtualizadores de almacenamiento se compone de dos nodos o controladoras redundantes que encapsulan los sistemas de almacenamiento (back-end). Con el almacenamiento de estos sistemas se conforman pooles que proporcionarán funcionalidades adicionales a los volúmenes provisionados a los hosts.

Las comunicaciones actuales permiten separar físicamente cada uno de los nodos o controladoras que forman el sistema de almacenamiento virtualizado (Software-Defined Storage), permitiendo a los hosts de ambos data centers acceder a un volumen, que pueda estar espejado. Estas configuraciones en volúmenes espejados en ambos data centers constituyen la verdadera base de los servicios activo-activo.

Este no es más, que el uno de los primeros enfoques que pueden entrar en la difusa definición de almacenamiento definido por software, pero quizá no sea el que más de moda está en la actualidad, la irrupción de los discos flash, la rápida adopción en los data centers de redes de cada vez mayor rendimiento y sobre todo la rápida expansión de los entornos virtuales han favorecido la aparición de un nuevo modelo, la hiperconvergencia. En realidad las bases para este modelo se asentaron hace mucho tiempo: en la adopción de las arquitecturas blade para las plataformas de virtualización desplegadas en los data centers.

LA HIPERCONVERGENCIA EN EL SOFTWARE-DEFINED STORAGE: LA REVOLUCIÓN

La hiperconvergencia, sí puede suponer una pequeña revolución respecto a las arquitecturas tradicionales desplegadas. En el modelo tradicional, para el más pequeño de los entornos virtuales (con ciertas funcionalidades), se le suponía la necesidad de un sistema de almacenamiento compartido por todos los nodos que integrasen el clúster, esto llevaba implícito la necesidad una SAN o cualquier otra red almacenamiento, con el consiguiente coste y complejidad de gestión de una SAN, y del sistema de almacenamiento.

software-defined-storage-caracteristicas

Los sistemas hiperconvergentes eliminan la necesidad de la gestión de los sistemas de almacenamiento, y de las redes SAN necesarias en ciertos entornos. Se basa en que cada nodo que integra el clúster de virtualización, utilice el almacenamiento local, para conformar los pooles que albergarán las máquinas virtuales. Habitualmente cada nodo dispondrá de uno varios discos flash que desempeñaran una función similar a la cache de escritura en un sistema tradicional y una cantidad adicional de memoria que se utilizará para cache de lectura. Cada nodo se comunica con el resto a través de redes e 10Gbe, lo que le permitirá conformar un pool global con el almacenamiento local de cada uno de los nodos. Estos sistemas estarán muy vinculados a los entornos virtuales, y por lo tanto disponen de funcionalidades avanzadas (compresión, deduplicación, tiering, snapshot, replicación, etc…) con una mayor granularidad e integración que la que podrían tener con un sistema de almacenamiento tradicional.

Estas no son las dos únicas aproximaciones hay otras como el almacenamiento de objetos enfocadas para datos distribuidos geográficamente, o las VSA, versiones a escala para desplegar en hipervisores de sistemas de almacenamiento tradicionales.

Lo cierto es, que parece que solo hiperconvergencia, o el almacenamiento basado en hipervisor suponen una novedad relativa en estos últimos años, hasta ahora el resto, no parece más que una evolución, o un valioso complemento para facilitar la gestión, automatizar y dotar de mayor funcionalidad a sistemas que ya existían.