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 équivalent à un contrôleur SCSI, ou équivalent à un adaptateur de bus hôte SCSI (HBA) est nommé un initiateur. Cet appendice ne couvre que Linux en tant qu'initiateur iSCSI : comment 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èment 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, la gestion d'erreur est aussi gérée par iscsid dans l'espace-utilisateur.
iscsiadm et iscsid font tous deux partie du paquetage iscsi-initiator-utils sous Red Hat Enterprise Linux.

B.1. Disques iSCSI dans anaconda

Anaconda peut découvrir des disques iSCSI (et s'y connecter) de deux manières :
  1. Lorsqu'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. Si vous sélectionnez l'option Périphériques de stockage spécialisé pendant l'installation, l'écran de sélection des périphériques de stockages'affichera avec le bouton Ajouter une cible avancée. Si vous cliquez sur ce bouton, vous pourrez ajouter des informations sur la cible SCSI, telles que la découverte d'adresse IP. Anaconda va scanner l'adresse IP fournie, et va se connecter à toute cible qu'il trouvera. Reportez-vous à la Section 9.6.1.1, « Options de stockage avancées » pour obtenir des détails sur ce qui peut être spécifié pour les cibles iSCSI.
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'incluera 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 à /.