3. Technologie iSCSI et topologie de travaux pratiques

Cette section présente sommairement le protocole iSCSI puis attribue les rôles et les tâches de chacun des postes de travaux pratiques en fonction de la topologie mise en œuvre. Ce support fait suite à la présentation sur le Stockage Réseau utilisée en cours.

3.1. Bases de la technologie iSCSI

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 (et|ou) retransmis, ils peuvent très bien 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ée par IBM et a ensuite été soumise à 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 de travail utilisant son second disque dur ou bien un fichier comme unité de stockage SAN. La seconde fonction est baptisée initiator. Elle correspond au «client» qui utilise le volume de stockage réseau. Dans le contexte de ce document, l'autre poste de travaux pratiques joue ce rôle de client.

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.

Ces dernières années, la technologie iSCSI gagne 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. En appliquant ce principe d'agrégation de canaux, on peut pratiquement assimiler les performances de quatre liens Gigabit Ethernet à celles d'un lien Fibre Channel. Une autre technique consiste à utiliser aussi plusieurs liens dans une optique et 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.

  • Au début de son exploitation, le coût d'un réseau 10 Gigabit Ethernet est prohibitif relativement à toutes les autres solutions. Du point de vue hôte, le point déterminant est l'uniformisation de l'interface réseau. En effet, avec une interface 10GigE on ne devrait plus avoir de distinction entre NIC et HBA.

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 target a suivi un processus analogue et le code source est disponible à l'adresse Linux-IO : the Linux SCSI Target wiki. La partie Kernelspace est maintenant intégrée dans l'arborescence principale du noyau Linux. La mise en œuvre du rôle target ne nécessite donc plus de manipulations spécifiques pour compiler les modules dédiés.

À partir des informations fournies à l'adresse Linux-IO : the Linux SCSI Target wiki, on recherche le paquet utile de la distribution pour la configuration du rôle target :

$ aptitude search targetcli
p   targetcli         - administration tool for managing LIO core target

En revanche, le choix du paquet pour le rôle initiator à l'aide de la liste ci-dessous est plus délicat à priori. Cependant, si on élimine les mentions relatives au rôle target et les bibliothèques, il ne reste plus que le paquet open-iscsi.

$ aptitude search iscsi
p   iscsitarget       - iSCSI Enterprise Target userland tools
p   iscsitarget-dkms  - iSCSI Enterprise Target kernel module source - dkms version
p   libiscsi-bin      - iSCSI client shared library - utilities
p   libiscsi-dev      - iSCSI client shared library
p   libiscsi1         - iSCSI client shared library
p   open-iscsi        - High performance, transport independent iSCSI implementation

3.2. Infrastructure de stockage étudiée

Le séquencement des opérations à réaliser lors de la séance de travaux pratiques est décrit dans le tableau ci-dessous. Les deux postes occupent chacun un rôle distinct. Comme le rôle initiator demande moins de travail de préparation, c'est à ce poste que l'on confie les essais des outils de micro-benchmark.

Tableau 2. Attribution des rôles

Rôle initiator Rôle target
Préparation d'une unité de stockage locale pour évaluer les différences entre les accès DAS et SAN Préparation d'une unité de stockage iSCSI
Recherche et installation du ou des paquet(s) pour le rôle initiator Recherche et installation du ou des paquet(s) pour le rôle target
Étude des outils de configuration du service Étude des outils de configuration du service
Validation manuelle de la configuration SAN iSCSI
Validation de la configuration système
Validation de l'authentification mutuelle entre les rôles initiator et target
Mise en place de la réplication synchrone avec un tableau RAID1 entre unité de disque locale et le volume iSCSI Mise en place de la réplication asynchrone avec un volume logique de type snapshot de sauvegarde des fichiers images de volume de stockage
Étude comparative des performances d'accès