Annexe B. Disques iSCSI

Internet Small Computer System Interface (iSCSI) est un protocole permettant aux ordinateurs de communiquer avec des périphériques de stockage au travers de requêtes et réponses SCSI sur TCP/IP. Comme iSCSI est basé sur les protocoles standards SCSI, la terminologie trouvée dans SCSI est utilisée. Le périphérique sur le bus SCSI auquel les requêtes sont envoyées, et qui répond à ces requêtes, est appelé la cible (ou target en anglais) et le périphérique délivrant ces requêtes est appelé l'initiateur (ou initiator en anglais). En d'autres termes, un disque iSCSI est une cible et le logiciel iSCSI équivaut à un contrôleur SCSI ou à un adaptateur de bus hôte SCSI (HBA), nommé un initiateur. Cet appendice couvre Linux en tant qu'initiateur iSCSI uniquement, c'est-à-dire la manière par laquelle Linux utilise des disques iSCSI, mais pas comment Linux reçoit les disques iSCSI.
Linux possède un initiateur iSCSI logiciel dans le noyau qui prend la place et la forme d'un pilote HBA SCSI et permet ainsi à Linux d'utiliser des disques SCSI. Cependant, comme iSCSI est un protocole entièrement basé-réseau, la prise en charge de l'initiateur iSCSI nécessite plus que la simple capacité d'envoyer des paquets SCSI sur le réseau. Avant que Linux ne puisse utiliser une cible iSCSI, Linux doit trouver cette cible sur le réseau et s'y connecter. Dans certains cas, Linux doit envoyer des informations d'authentification afin d'accéder à la cible. Linux doit aussi détecter tout échec de la connexion réseau et établir une nouvelle connexion, y compris s'authentifier à nouveau si besoin est.
La découverte, la connexion et l'authentification sont gérées dans l'espace-utilisateur par l'utilitaire iscsiadm, les erreurs sont quant à elles gérées, dans l'espace-utilisateur également, par l'utilitaire iscsid.
iscsiadm et iscsid font tous deux partie du paquet iscsi-initiator-utils sous Red Hat Enterprise Linux.

B.1. Disques iSCSI dans Anaconda

Le programme d'installation Anaconda peut découvrir des disques iSCSI, et s'y connecter, de deux manières :
  1. Lorsque Anaconda démarre, il vérifie si le BIOS ou si les composants additionnels ROM de démarrage du système prennent en charge l'IBFT (de l'anglais, iSCSI Boot Firmware Table), une extension BIOS pour systèmes pouvant démarrer à partir d'iSCSI. Si le BIOS prend en charge iBFT, alors Anaconda va lire les informations de la cible iSCSI pour le disque de démarrage configuré depuis le BIOS. et va se connecter à sa cible, la rendant ainsi disponible comme cible d'installation.
  2. Vous pouvez découvrir et ajouter des cibles iSCSI manuellement dans l'interface utilisateur graphique d'Anaconda. À partir du menu principal, l'écran Sommaire de l'installation, cliquez sur l'option Destination de l'installation. Cliquez ensuite sur Ajouter un disque dans la section Disques spécialisés et Disques de réseau de l'écran. Une liste à onglets des périphériques de stockage disponibles s'affichera. En bas à droite, cliquez sur le bouton Ajouter la cible iSCSI et poursuivez le processus de découverte. Pour plus d'informations, veuillez consulter la Section 6.11.1, « Écran de sélection des périphériques de stockage ».
Pendant qu'Anaconda utilise iscsiadm pour trouver et se connecter à des cibles iSCSI, iscsiadm stocke automatiquement toutes les informations relatives à ces cibles sur la base de données iscsiadm iSCSI. Anaconda copie ensuite cette base de données sur le système installé et marque toutes les cibles iSCSI qui ne sont pas utilisées pour / afin que le système se connecte automatiquement à celles-ci lorsqu'il démarre. Si / est placé sur une cible iSCSI, alors initrd se connectera sur cette cible et Anaconda n'inclura pas cette cible aux scripts de démarrage afin d'éviter de multiples tentatives de connexion sur la même cible.
Si / est placé sur une cible iSCSI, Anaconda ajuste NetworkManager de manière à ignorer toutes les interfaces réseau qui étaient actives lors du processus d'installation. Ces interfaces seront aussi configurées par initrd lorsque le système démarre. Si NetworkManager devait reconfigurer ces interfaces, le système perdrait sa connexion à /.