La virtualisation croissante des datacenters a fait émerger un nouveau concept, celui de software defined datacenter, une appellation créée par VMware et  qui assume qu’à terme l’ensemble des ressources physiques du datacenter (CPU, mémoire, stockage et réseau) seront virtualisées et gérées par une couche logicielle permettant non seulement d’optimiser l’usage de ces ressources mais aussi d’orchestrer plus facilement leur provisioning et leur administration.

Dans le concept de software defined datacenter, il y a d’un côté des ressources physiques distribuées et de l’autre une couche de « policy management » permettant à l’entreprise de définir comment ces ressources seront partitionnées et allouées de façon à répondre précisément aux contraintes de SLA des applications.

La virtualisation des serveurs (CPU et mémoire) étant déjà largement acquises, tous les regards et efforts de développement se sont donc tournés vers les réseaux et le stockage, les deux dernières grandes ressources du datacenter non encore virtualisées. Et l’on a vu émerger deux nouveaux concepts (ou « buzzwords » pour les plus cyniques) : Software Defined Networking (SDN) et Software Defined Storage (SDS). Dans les deux cas l’objectif, est de virtualiser les ressources pour rendre leur provisioning et leur consommation plus simple par les applications, mais aussi pour simplifier leur gestion à grande échelle.

Software Defined Storage : le concept

Dans cet article, nous nous concentrerons sur le concept de Software Defined Storage. Le terme est aujourd’hui utilisé de façon abusive pour décrire deux choses très différentes.

En quête de reconnaissance, certains acteurs ont appelé Software Defined Storage une implémentation logicielle de leurs baies de stockage. La ficelle est un peu grosse : le seul fait de faire fonctionner un OS de stockage dans une VM ne fait pas de ce dernier une solution de Software Defined Storage, mais juste une version virtuelle d’une baie de stockage physique. Si virtualiser un OS disposant de capacité de stockage suffisait à faire du SDS, les machines virtuelles simulant les baies VNX, Isilon ou NetApp, ainsi que des OS comme Nexenta, Solaris ou Windows Storage Server serait du SDS.

Une vraie solution de Software Defined Storage, à l’instar d’une solution de software defined networking, dissocie la couche de contrôle (gestion des ressources, allocation des ressources, gestion des politiques de qualité de service, de protection…) de la couche de stockage proprement dite (qui va par exemple s’occuper de la gestion des volumes Raid, du thin provisioning, de la compression/déduplication de données…). Elle doit aussi fournir les mécanismes nécessaires pour faciliter la consommation des ressources virtualisées par les applications. Enfin, elle peut fournir un ensemble de services de stockage avancés en plus de ses fonctions de base.

Virtualiser les ressources de stockage

La première mission d’une solution de SDS est la virtualisation des ressources de stockage : elle crée un niveau d’abstraction entre le stockage physique  et les applications, en agrégeant des ressources multiples, parfois hétérogènes. Il s’agit par exemple de créer des pools de stockage à partir de multiples ressources sous-jacentes (qui peuvent être des baies de stockage traditionnelles, des disques locaux, des systèmes de stockage distribués…) et de les rendre accessibles aux applications sous forme de volumes traditionnels, de vVols pour VMware, ou de ressources de stockage Cinder pour OpenStack.

ViPR va permettre de simplifier l'administration du stockage et de rendre son utilisation plus flexible en créant une couche d'abstraction, d'administration et de services avancés au dessus de systèmes de stockage hétérogène

La solution de Software Defined Storage ViPR d’EMC va permettre de simplifier l’administration du stockage et de rendre son utilisation plus flexible en créant une couche d’abstraction, d’administration et de services avancés au dessus de systèmes de stockage hétérogène

Fournir une couche de pilotage et de services avancés

Il s’agit ensuite de délivrer les interfaces requises pour permettre le pilotage et l’allocation de ces ressources par les hyperviseurs, les applications et les frameworks de cloud. L’idée est notamment de permettre l’automatisation du provisioning, la gestion de la qualité de service et la gestion des services de protection de données (snapshot, réplication, mouvement de données…).

Enfin, certaines solutions de SDS permettent aussi d’offrir des services de stockage additionnels. Par exemple la couche VIPR d’EMC ajoute aux fonctions de SDS des services de passerelle permettant par exemple d’offrir des services de stockage en mode objet ou en mode Hadoop (HDFS) depuis un pool de stockage géré par la technologie. D’autres solutions comme VMware vSAN embarquent leur propre technologie de gestion du stockage distribué.

Si la technologie tient ses promesses, le SDS devrait permettre une fois pour toutes de découpler la couche de « policy management » et de services, de la couche de stockage proprement dite et faciliter ainsi grandement l’administration du stockage ainsi que les évolutions d’infrastructure (ajouts/retraits de capacités, remplacement et migration de baies…). Il devrait aussi faciliter l’émergence et l’adoption d’une nouvelle génération de services de protection de données. Et délivrer enfin les promesses de la virtualisation au niveau de la couche de stockage elle-même.