Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

eZHumanCAPTCHACode reload
retour

Le stockage

Le stockage

Dans tout projet de virtualisation se pose, à un moment ou un autre, la question du stockage. En effet, comme pour le calcul ou les entrées-sorties, la virtualisation implique généralement une couche d'abstraction supplémentaire au niveau du stockage des données. Il peut s'agir simplement de créer une arborescence de répertoires dans le cas d'un isolateur, ou de mettre en place un réseau de stockage hautes performances disposant de capacités avancées de réplication et de clichés dans le cas d'une plateforme de machines virtuelles.

Différents besoins

Quelque soit la technologie utilisée, une machine virtuelle se compose de deux élements :

  • Des ressources : part de CPU alloués, mémoire vive autorisée, nombre de cartes réseau virtuelles...
  • Des données : comme un serveur normal, on doit disposer d'un système d'exploitation, de bibliothèques, d'outils, d'applications et de leurs données.

Nous avons vu dans les parties précédentes comment étaient gérées les ressources, via diverses technologies de virtualisation et les fonctionnalités qui vont avec.
Le stockage, lui dépend généralement de la technologie de virtualisation utilisée, et surtout de sa « profondeur ».

Dans les technologies d'isolation, la virtualisation se fait au niveau de l'OS, et ne nécessite pas un dispositif de stockage particulier : chaque environnement virtualisé se présente sous la forme d'une arborescence gérable depuis le domaine de contrôle. Cette arborescence peut, de façon transparente, être située physiquement sur la même machine, sur un autre disque, sur un serveur distant, sur un réseau de stockage, etc. C'est la solution qui offre la plus grande souplesse.

Dans les technologies de machine virtuelle, l'hyperviseur ne fournit au système virtualisé qu'un espace de stockage. Il peut s'agir d'un volume, ou simplement d'un fichier, mais dans les deux cas cet espace est «hermétique» et ne peut être accédé depuis le domaine de contrôle. La encore, on peut placer l'intégralité de cet espace sur un disque local, un réseau de stockage, un autre serveur...

Dans ces deux cas, l'utilisation d'un disque local est la plus avantageuse en terme de performances et de facilité d'administration. Cependant, l'utilisation d'un stockage en réseau permet d'ouvrir la voie à de nouvelles fonctionnalités.

Stockage en réseau

Les pleines capacités des hyperviseurs modernes ne peuvent s'exprimer qu'au travers d'un stockage en réseau, en effet les hyperviseurs sont généralement gérés sous forme de «pools», formant une «force de travail» globale qui se partageront les machines virtuelles à exécuter. Cette vision n'est possible que si le stockage est lui aussi unifié : sans cela chaque hyperviseur ne peut faire tourner que les serveurs virtuels présents sur son disque local, et n'est donc pas interchangeable.

Disposant d'un réseau de stockage, chaque hyperviseur a accès à toutes les machines virtuelles, et peut donc exécuter n'importe laquelle, et la transférer sans interruption à un autre hyperviseur en fonction de sa charge.

Seul OpenVZ permet la migration d'environnements à chaud quand les serveurs physiques ne partagent pas l'espace de stockage. Dans tous les autres produits, disposer d'un stockage réseau partagé est une condition nécessaire.

Nous allons présenter quelques technologies permettant de mettre en place un réseau de stockage.

NAS et NFS

Un NAS, ou stockage réseau (Network-Attached Storage) est simplement un serveur fournissant leurs fichiers à d'autres serveurs par le réseau.

NFS est le standard universel pour l'accès aux fichiers sur un réseau, c'est le protocole le plus utilisé dans les NAS.

Dans le cadre d'un isolateur, il permet de stocker l'arborescence du serveur virtuel à distance. Dans le cadre d'une solution de virtualisation complète il permet de stocker à distance les fichiers contenant les disques durs de la machine virtuelle.

Ce dernier cas est déconseillé hors des environnements de test : NFS n'est pas adapté à la lecture aléatoire dans un seul fichier. En revanche pour un isolateur, stocker les données en NFS est intéressant, et le deviendra encore plus avec les systèmes de fichier de nouvelle génération tels que ZFS, HAMMER ou btrfs, qui permettent des snapshots instantanés, le versionnement des arborescences, et autres fonctionnalités pour l'instant réservées aux baies de stockage haut de gamme.

En plus des matériels dédiés, la plupart des systèmes d'exploitation proposent une implémentation serveur NFS, ce qui permet d'utiliser n'importe quel serveur comme serveur de stockage NFS. Ces derniers utilisent alors soit des disques locaux, soit leur propre réseau de stockage SAN.

Screenshot from 2015-04-21 16:08:43
SAN

Un SAN, ou réseau de stockage (Storage Area Network), est un réseau sur lequel circulent les données entre un système et son stockage. Cette technique permet de déporter tout le stockage interne d'une machine vers un équipement dédié.

Les SAN sont des équipements dédiés, qui ne travaillent qu'aux plus basses couches du stockage, la notion de fichier leur est inconnue ; ils travaillent simplement sur des blocs de données et les fournit par le réseau à des serveurs qui eux sauront les utiliser. Cependant, les SAN les plus hauts de gamme sont dotés de capacités avancées, tel que la prise de cliché, ou encore la copie rapide de volumes.

Les deux principaux protocoles d'accès à un SAN sont iSCSI et Fibre Channel.

iSCSI

iSCSI est un protocole d'accès disque fonctionnant sur un réseau Ethernet, il permet d'implémenter un réseau de stockage en profitant de la connectique et des équipements de commutation standards. Comme le NFS, il peut être soit implémenté par une baie de stockage dédiée, ce qui assure les meilleures performances, soit par un serveur classique disposant du logiciel adéquat, par exemple IET (iSCSI Entreprise Target) sous Linux.

Voici un exemple de SAN : parmi les machines clientes du SAN, on retrouve un NAS : ces deux techniques peuvent être combinées car elles ne travaillent pas au même niveau.

Screenshot from 2015-04-21 16:10:23
Fibre Channel

La solution la plus haut-de-gamme pour implémenter un réseau de stockage est l'utilisation d'une baie dédiée et du protocole Fibre Channel. Basé sur des fibres optiques il assure une latence et un débit bien meilleurs que iSCSI, à un prix bien sûr plus élevé. Son principe d'utilisation est le même qu'un SAN iSCSI.

Critères de choix

Le choix d'une solution de stockage est basé sur la taille de l'infrastructure, le niveau de fiabilité attendu, et les fonctionnalités. Un stockage en réseau des VM apporte une plus grande flexibilité, et la possibilité de facilement rajouter des nœuds à l'infrastructure, mais au prix d'un investissement initial élevé (un réseau de stockage coute cher) et d'une architecture plus complexe.

Bien souvent, le stockage en local des VM, et une bonne politique de sauvegarde permet une reprise d'activité rapide en cas de problème sur un hôte, et on préférera implémenter la haute disponibilité au niveau applicatif plus qu'au niveau système, via par exemple un répartiteur de charge, ou une solution telle que Linux Virtual Server, CARP, et autres.