Debian logo [inetdoc.LiNUX]

5. Configuration du système initiator

Dans cette partie, on prépare le système auquel on a attribué le rôle initiator.

5.1. Sélection du paquet et lancement du service

1.

Comment identifier et installer le paquet correspondant au rôle initiator ?

En effectuant une recherche simple dans le catalogue des paquets disponibles, on obtient la liste des paquets dont le nom contient la chaîne de caractères iscsi.

# aptitude search iscsi
p   iscsitarget         - iSCSI Enterprise Target userland tools
p   iscsitarget-dkms    - iSCSI Enterprise Target kernel module source - dkms version
p   iscsitarget-source  - iSCSI Enterprise Target kernel module source
p   open-iscsi          - High performance, transport independent iSCSI implementation

On remarque que le paquet open-iscsi est le seul qui ne soit pas identifié comme appartenant à la catégorie target.

# aptitude install open-iscsi

2.

Comment lancer le service initiator et valider son fonctionnement ?

À partir de la liste des fichiers du paquet on peut identifier les éléments de démarrage et de configuration du service.

# # dpkg -L open-iscsi
/.
/etc
/etc/init.d
/etc/init.d/open-iscsi
/etc/init.d/umountiscsi.sh
/etc/network
/etc/network/if-up.d
/etc/default
/etc/default/open-iscsi
/etc/iscsi
/etc/iscsi/iscsid.conf
/etc/iscsi/initiatorname.iscsi
/usr
/usr/share
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/iscsiadm.8.gz
/usr/share/man/man8/iscsid.8.gz
/usr/share/man/man8/iscsi_discovery.8.gz
/usr/share/man/man8/iscsistart.8.gz
/usr/share/man/man8/iscsi-iname.8.gz
/usr/share/initramfs-tools
/usr/share/initramfs-tools/hooks
/usr/share/initramfs-tools/hooks/iscsi
/usr/share/initramfs-tools/scripts
/usr/share/initramfs-tools/scripts/local-top
/usr/share/initramfs-tools/scripts/local-top/iscsi
/usr/share/doc
/usr/share/doc/open-iscsi
/usr/share/doc/open-iscsi/copyright
/usr/share/doc/open-iscsi/README.Debian.gz
/usr/share/doc/open-iscsi/README.gz
/usr/share/doc/open-iscsi/changelog.Debian.gz
/usr/share/doc/open-iscsi/changelog.gz
/usr/sbin
/usr/sbin/iscsi-iname
/usr/sbin/iscsid
/usr/sbin/iscsi_discovery
/usr/sbin/iscsistart
/usr/bin
/usr/bin/iscsiadm
/var
/var/lib
/var/lib/open-iscsi

Le lancement du service se fait de façon classique à partir de l'arbrescence des scripts des niveaux de démarrage (runlevels).

# /etc/init.d/open-iscsi restart

On peut ensuite consulter les journaux système pour valider l'initialisation du ou des démons.

# grep -i iscsi /var/log/syslog
2ndInitiator kernel: [50475.436562] Loading iSCSI transport class v2.0-870.
2ndInitiator kernel: [50475.471559] iscsi: registered transport (tcp)
2ndInitiator kernel: [50475.612327] iscsi: registered transport (iser)
2ndInitiator iscsid: iSCSI logger with pid=6725 started!
2ndInitiator iscsid: transport class version 2.0-870. iscsid version 2.0-871
2ndInitiator iscsid: iSCSI daemon with pid=6726 started!

On retrouve les informations correspondantes aux messages ci-dessus dans la liste des processus actifs.

# ps aux | grep -i iscsi
root      6717  0.0  0.0      0     0 ?        S    01:47   0:00 [iscsi_eh]
root      6725  0.0  0.1   4056   512 ?        Ss   01:47   0:00 /usr/sbin/iscsid
root      6726  0.0  0.4   4548  2500 ?        S<Ls 01:47   0:00 /usr/sbin/iscsid
root      6750  0.0  0.1   9612   896 pts/0    S+   01:48   0:00 grep -i iscsi

5.2. Tests de fonctionnement du service

1.

Quelle est la commande principale du rôle initiator qui permet de tester la connectivité iSCSCI ?

En consultant la liste des fichiers du paquet open-iscsi donnée ci-dessus, on ne relève qu'un seul outil binaire : la commande iscsiadm.

2.

Quelles sont les options de découverte proposées avec cette commande de configuration ? Donner un exemple fournissant l'identifiant de l'unité de stockage réseau accessible.

# iscsiadm -m discovery --type sendtargets --portal=192.200.0.12:3260
192.200.0.12:3260,1 iqn.2011-04.lab.stri:1stInitiator.disk
192.200.0.12:3260,1 iqn.2011-04.lab.stri:2ndInitiator.disk

3.

Quelles sont les options de connexion proposées avec cette même commande ? Donner un exemple illustrant l'établissement d'une connexion.

# iscsiadm -m node -T iqn.2011-04.lab.stri:1stInitiator.disk -p 192.200.0.12 -l
Logging in to [iface: default, target: iqn.2011-04.lab.stri:1stInitiator.disk, portal: 192.200.0.12,3260]
Login to [iface: default, target: iqn.2011-04.lab.stri:1stInitiator.disk, portal: 192.200.0.12,3260]: successful

4.

Comment obtenir les caractéristiques de l'unité de stockage iSCSI utilisée ?

On peut consulter les journaux système. Voici un extrait du fichier /var/log/syslog.

# egrep '(sd|scsi)' /var/log/syslog
1stInitiator kernel: [51051.744035] iscsi: registered transport (tcp)
1stInitiator kernel: [51051.783694] iscsi: registered transport (iser)
1stInitiator iscsid: iSCSI logger with pid=6546 started!
1stInitiator iscsid: transport class version 2.0-870. iscsid version 2.0-871
1stInitiator iscsid: iSCSI daemon with pid=6547 started!
1stInitiator kernel: [51066.871258] scsi3 : iSCSI Initiator over TCP/IP
1stInitiator kernel: [51067.138424] scsi 3:0:0:0: Direct-Access     IET      VIRTUAL-DISK     0    PQ: 0 ANSI: 4
1stInitiator kernel: [51067.139571] sd 3:0:0:0: Attached scsi generic sg1 type 0
1stInitiator kernel: [51067.144997] sd 3:0:0:0: [sda] 67108864 512-byte logical blocks: (34.3 GB/32.0 GiB)
1stInitiator kernel: [51067.146307] sd 3:0:0:0: [sda] Write Protect is off
1stInitiator kernel: [51067.146310] sd 3:0:0:0: [sda] Mode Sense: 77 00 00 08
1stInitiator kernel: [51067.146965] sd 3:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
1stInitiator kernel: [51067.148615]  sda: unknown partition table
1stInitiator kernel: [51067.152320] sd 3:0:0:0: [sda] Attached SCSI disk
1stInitiator iscsid: connection1:0 is operational now

5.3. Configuration système

Une fois la connexion à la ressource iSCSI testée, on peut passer à la configuration système de façon à retrouver le volume de stockage après une réinitialisation du système initiator.

1.

Comment rendre la connexion à l'unité de stockage automatique lors de l'initialisation du système initiator ?

Le fichier /etc/iscsi/iscsid.conf contient une directive dans la section Startup settings qui rend automatique l'accès à une ressource déjà enregistrée. Voici le contenu de cette section extraite du fichier de configuration.

#*****************
# Startup settings
#*****************

# To request that the iscsi initd scripts startup a session set to "automatic".
node.startup = automatic

2.

Comment authentifier la connexion entre les systèmes initiator et target ?

Le mécanisme d'authentification le plus communément utilisé dans le déploiement des connexions iSCSI s'appuie sur CHAP (Challenge-Handshake Authentication Protocol. Il s'agit d'une méthode d'authentification entre deux hôtes pairs sans échange de mot de passe en clair sur le réseau. Cette méthode suppose que les deux hôtes utilisent le même mot de passe.

Le nom d'utilisateur et le mot de passe sont respectivement définis dans les fichiers /etc/ietd.conf et /etc/iscsi/iscsid.conf des systèmes target et initiator.

  • Système target :

    Target iqn.2010-04.lab.stri:san.disk
            # Users, who can access this target. The same rules as for discovery
            # users apply here.
            # Leave them alone if you don't want to use authentication.
            IncomingUser etu-san MyS3cr3t-54n
    <snipped/>
  • Système initiator :

    # *************
    # CHAP Settings
    # *************
    
    # To enable CHAP authentication set node.session.auth.authmethod
    # to CHAP. The default is None.
    node.session.auth.authmethod = CHAP
    
    # To set a CHAP username and password for initiator
    # authentication by the target(s), uncomment the following lines:
    node.session.auth.username = etu-san
    node.session.auth.password = MyS3cr3t-54n
    

    Le même principe peut être appliqué au mécanisme de découverte en appliquant un couple login/password identique ou non à la suite de ce fichier de configuration.