Passer au contenu

Les performances perfectibles de l’iSCSI

L’iSCSI encapsule le protocole SCSI sur un réseau Ethernet-IP. Sur les serveurs, il offre des mécanismes d’identification et de découverte. L’amélioration de ses performances en transfert de données passe par des implémentations matérielles.

Le principe de base paraît tout simple. L’iSCSI pourrait être réduit à une encapsulation, dans des paquets IP, des commandes SCSI émises par les applications des serveurs, en direction des ressources de stockage, où elles sont alors désencapsulées, les réponses subissant le même processus, en sens inverse. En somme, on se contenterait de déporter une à une des unités logiques, via un réseau Ethernet, en donnant l’illusion que les disques sont locaux.Cette description caricaturale fait abstraction de toute la richesse de l’iSCSI, qui, loin d’être un simple procédé de tunneling point à point, offre une connectivité point-multipoint. Il permet, en effet, de nommer chacune des ressources du réseau, de les découvrir, puis d’initier des sessions fiables et sécurisées entre n’importe quel serveur et n’importe quel sous- système de stockage.

Identifier et découvrir les ressources

L’iSCSI offre, d’abord, une méthode d’identification des ressources du réseau, qu’il s’agisse d’initiateurs (généralement des serveurs) ou de cibles (unités logiques de sous-systèmes de stockage). Le nom de chaque ressource est la concaténation de l’appellation d’une autorité de nommage (qui peut être l’entreprise elle-même ou le constructeur) et d’un numéro que cette autorité a spécifié. La ressource se voit également attribuer une adresse unique, composée de son nom, de son port TCP et de son adresse IP (ou du nom de domaine associé). Ce procédé offre la possibilité de différer plusieurs cibles qui sont sur le même port ou la même adresse IP, ou d’adresser une cible dotée de plusieurs adresses IP. On notera, en outre, que le nom ne change jamais, ce qui autorise l’identification d’une ressource en toutes circonstances, même lorsqu’on traverse un pare-feu qui réalise une translation d’adresses IP et de ports TCP.Ce système d’identification est complété par deux principales méthodes de découverte des cibles par les initiateurs. La plus simple, manuelle, consiste à spécifier, sur chaque initiateur, les adresses des cibles. L’autre a vocation à fournir seulement l’adresse d’une cible virtuelle, dont le nom par défaut est iSCSI, hébergeant un fichier des adresses des cibles réelles, qui sera interrogé via une commande spéciale prévue par l’iSCSI.Lorsqu’un initiateur a porté son dévolu sur une cible, il s’agit d’initier une session iSCSI point à point et de transporter les commandes et réponses SCSI. Dans le monde SCSI, les commandes et leurs paramètres constituent des CDB (Command descriptor blocks), que l’application transmet au pilote SCSI. Tandis qu’en sens inverse, il reçoit les réponses, qui sont des “statuts” ou des blocs de données. En iSCSI, le pilote SCSI est remplacé par un pilote iSCSI qui va recevoir les CDB, puis les ranger dans des paquets IP baptisés PDU (Protocol data units). Une négociation permet alors d’authentifier la cible. Enfin, le pilote iSCSI initie une ou plusieurs sessions TCP ?” éventuellement sous IPSec ?” afin de transporter les PDU jusqu’au contrôleur de la cible, qui en extrait les CDB. Ceux-ci sont ensuite soumis à la cible. Un processus identique autorise le contrôleur de la cible à retourner les réponses jusqu’à l’initiateur.Notons que le pilote surveille les sessions TCP et les relance lorsque celles-ci sont abandonnées, en cas, par exemple, d’engorgement d’un segment de réseau. Ce processus peut générer des délais de transit importants, ignorés des commutateurs Fibre Channel.

La différence se fait sur les débits réels

Mais, le pire se situe au niveau des débits réels. D’aucuns avancent pourtant des résultats équivalents au Fibre Channel, lorsque l’iSCSI est supporté par un backbone Gigabit Ethernet dédié, soit 1 Gbit/s. D’autant que la taille des trames est sensiblement la même ?” 2 112 octets pour le Fibre Channel, et 1 518 octets au plus pour l’Ethernet.Mais, en réalité, avec le Fibre Channel, jusqu’à 65 536 trames sont transmises en une seule séquence, sans mobiliser l’unité centrale. Tandis qu’en Ethernet-IP, les processeurs sont sollicités pour chaque trame. Dominique Barbier, responsable ventes Europe de l’Ouest d’IBM, avance une comparaison : “Le débit réel atteint de 70 à 80 Mo/s sur Fibre Channel, et 50 Mo/s avec iSCSI sur Gigabit Ethernet.”Chez Cisco Systems, on évoque une hiérarchie identique, avec des valeurs plus optimistes. Mais, les implémentations matérielles de l’iSCSI devraient fortement décharger les unités centrales, faisant passer le rendement (débit réel-débit nominal) de 50 à 80 %, valeur comparable à celle du Fibre Channel.Du côté de la cible, la mise en ?”uvre de tels circuits n’est pas urgente car les passerelles et les sous-systèmes de stockage possèdent déjà des contrôleurs dédiés à l’exécution des protocoles TCP, IP et iSCSI. En revanche, côté initiateur, ce sont les processeurs du serveur qui travaillent. Des constructeurs, comme Emulex, Intel et Adaptec, ont ainsi récemment annoncé des cartes cumulant une interface Ethernet et un processeur exécutant ces protocoles. Pour l’instant, il ne s’agit encore que de circuits généralistes.Quant à Adaptec, il offre un Motorola 8240 tournant sous un système temps réel. Mais des circuits dédiés devraient arriver fin 2002 ; ils permettront d’améliorer les performances tout en réduisant les coûts, à condition, bien sûr, que l’iSCSI bénéficie d’une très large audience.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Thierry Lévy-Abégnoli