2. Technologie iSCSI

Cette section présente sommairement le protocole iSCSI et les rôles de chacune des deux machines virtuelles ou physiques en fonction de la topologie mise en œuvre. Ce support fait suite à la présentation sur le Stockage Réseau utilisée en cours.

La technologie iSCSI dont l'acronyme reprend la définition historique Internet Small Computer System Interface est un protocole réseau de stockage basé sur le modèle TCP/IP. Le principe de base consiste à encapsuler des commandes SCSI dans des paquets IP transmis entre un hôte et une unité de disque. Comme les paquets IP peuvent être perdus, retransmis ou ne pas arriver dans l'ordre d'émission. Le protocole iSCSI doit donc conserver une trace de la séquence de transmission de commandes SCSI. Les commandes sont placées dans une file d'attente dans l'ordre d'émission.

Le protocole iSCSI a initialement été développé par IBM et a ensuite été soumis à l'IETF (Internet Engineering Task Force). Le standard a été publié par le comité IP Storage Working Group en août 2002.

On peut identifier deux fonctions principales dans la technologie iSCSI. La première est la fonction target. C'est un système simple qui possède le volume de stockage à publier sur le réseau IP. Ce système peut être matériel ou logiciel. Dans le cas de ces travaux pratiques, il s'agit d'un poste physique ou virtuel avec un second disque dur ou bien un fichier comme unité de stockage DAS. La seconde fonction est baptisée initiator. Elle correspond au «client» qui utilise le volume de stockage réseau.

Fondamentalement, iSCSI est un protocole de la famille Storage Area Network (SAN). Le client ou initiator accède à une unité de stockage en mode bloc. Ce mode de fonctionnement est quasi identique à la technologie Fibre Channel. Le type de réseau constitue la principale différence entre ces deux technologies. La technologie iSCSI s'appuie sur TCP/IP alors que Fibre Channel comprend une définition de réseau propre (FC) qui nécessite des équipements spécifiques.

La technologie iSCSI a gagné en popularité relativement à son ainée pour plusieurs raisons.

  • Le prix des configurations iSCSI peut être bien meilleur marché qu'avec la technologie Fibre Channel. Si l'architecture du réseau de de stockage est adaptée, iSCSI devient très attractif.

    Il est important de bien identifier les fonctionnalités réseau que l'on associe à iSCSI pour accroître les performances du stockage. Dans ces fonctions complémentaires on trouve l'agrégation de canaux qui recouvre plusieurs dénominations et plusieurs standards de l'IEEE. Par exemple, elle est baptisée bonding sur les systèmes GNU/Linux et etherchannel sur les équipements Cisco. Côté standard, le Link Aggregation Control Protocol (LACP) pour Ethernet est couvert par les versions IEEE 802.3ad, IEEE 802.1aq et IEEE 802.1AX. L'utilisation de ces techniques est totalement transparente entre équipements hétérogènes. Une autre technique consiste à utiliser aussi plusieurs liens dans une optique de redondance et de balance de charge. Elle est appelée multipath.

  • L'utilisation d'une technologie réseau unique est nettement moins complexe à administrer. En effet, on optimise les coûts, les temps de formation et d'exploitation en utilisant une architecture de commutation homogène. C'est un des avantages majeurs de la technologie Ethernet sur ses concurrentes.

Aujourd'hui la technologie iSCSI est supportée par tous les systèmes d'exploitation communs. Côté GNU/Linux, plusieurs projets ont vu le jour dans les années qui ont suivi la publication du standard en 2002. Pour la partie initiator les développements des deux projets phares ont fusionné pour ne plus fournir qu'un seul code source ; celui disponible à l'adresse Open-iSCSI. La partie Kernelspace de ce dernier code est directement intégrée dans le noyau Linux. La mise en œuvre du rôle target ne nécessite donc que l'installation de la partie utilisateur pour paramétrer le sous-système de stockage du noyau.

$ aptitude search targetcli
p   targetcli-fb     - Command shell for managing the Linux LIO kernel target

Le choix du paquet pour le rôle initiator à l'aide de la liste ci-dessous est plus facile en combinant les deux critères de recherche. C'est le paquet open-iscsi qui convient.

$ aptitude search "?description(scsi)?description(initiator)"
p   open-iscsi            - iSCSI initiator tools
p   open-isns-discoveryd  - Internet Storage Name Service - iSNS discovery daemon
p   resource-agents       - Cluster Resource Agents