Guide des technologies

iSCSI — serveur et clients pour tests de cluster

6 min read Stockage Mis à jour 19 Oct 2025
iSCSI : config serveur et clients pour tests
iSCSI : config serveur et clients pour tests

Ce guide explique comment installer et configurer un serveur iSCSI (iscsitarget) et des clients Linux pour tester un cluster à deux nœuds. Vous trouverez les commandes de compilation, les extraits de configuration (ietd.conf, initiatorname), la vérification des périphériques SCSI côté client et des checklists pour le déploiement et la validation.

Important : cette configuration est destinée aux environnements de test ou d’apprentissage. Ne l’utilisez pas telle quelle en production sans durcissement, sauvegardes et redondance matérielle.

Contexte

iSCSI (Internet Small Computer Systems Interface) est un protocole de Storage Area Network (SAN) qui permet de partager du stockage via une infrastructure réseau existante. Dans cet exemple, le serveur est basé sur iscsitarget (site source : http://iscsitarget.sourceforge.net) et les clients utilisent les utilitaires iscsi-initiator.

Définitions rapides :

  • iSCSI : protocole qui transporte des commandes SCSI sur TCP/IP.
  • LUN : Logical Unit Number, unité de stockage exposée au client.
  • Initiator : logiciel client qui se connecte au target iSCSI.

1. Installation et configuration du serveur iSCSI

1.a Compilation de l’archive iscsitarget

Cette étape se réalise sur l’hôte physique (serveur).

  • Téléchargez le tarball depuis SourceForge et placez-le dans /usr/local/src.
  • Rendez-vous dans /usr/local/src :
cd /usr/local/src
  • Décompressez les fichiers :
tar xvf iscsitarget-0.4.16.tar.gz  
cd iscsitarget-0.4.16
  • Compilez et installez :
make  
make install

Note : adaptez ces étapes si votre distribution fournit un paquet binaire (RPM/DEB) compatible.

1.b Configuration (extrait de ietd.conf)

Voici une configuration d’exemple (fichier /etc/ietd.conf) qui définit deux LUNs exposés aux initiators. Les chemins peuvent pointer vers des volumes logiques (LVM), des partitions ou des fichiers image.

#/etc/ietd.conf
# NOTE: the config files has more entries than what i'm showing here.
# but i've commented out the original entries and made the following
Target iqn.2008-07.NODE00:LUN01.NODE00
   MaxConnections         2
   Lun 1 Path=/dev/Virtual00VG/lvLUN01,Type=fileio
   Alias LUN01
Target iqn.2008-07.NODE00:LUN02.NODE00
   MaxConnections         2
   Lun 2 Path=/dev/Virtual00VG/lvLUN02,Type=fileio
   Alias LUN02
# end of ietd.conf

Dans mon système physique, j’ai créé deux volumes logiques de 50 Go chacun (50 Go ≡ 50 GiB selon votre configuration). Vous pouvez également utiliser des fichiers ou des partitions disque : modifiez simplement les entrées Path dans ietd.conf.

1.c Contrôle d’accès (ACL)

iscsitarget utilise /etc/initiators.allow et /etc/initiators.deny, de façon similaire à hosts.allow/hosts.deny. Permettez explicitement l’accès pour les initiators (nœuds clients) sur les LUNs concernés.

#/etc/initiators.allow
#this should correspond to the definition in your /etc/ietd.conf
iqn.2008-07.NODE00:LUN01.NODE00 192.168.100.10, 192.168.100.20
iqn.2008-07.NODE00:LUN02.NODE00 192.168.100.10, 192.168.100.20
# endof initiators.allow

Démarrez ensuite le service iscsi-target et activez son démarrage automatique :

service iscsi-target start

Puis pour le rendre persistent au démarrage :

chkconfig --add iscsi-target  
chkconfig iscsi-target on  
chkconfig --list iscsi-target

Exemple de sortie :

iscsi-target 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2. Côté client

Le paquet iscsi-initiator-utils (ex. iscsi-initiator-utils-6.2.0.865-0.8.el5) doit être installé sur chaque nœud client.

2.a Configuration de l’initiator

  • Éditez le fichier /etc/iscsi/initiatorname.iscsi pour définir le nom d’initiator (InitiatorName). Exemple :
#/etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2008-07.NODE00:LUN01.NODE00
InitiatorName=iqn.2008-07.NODE00:LUN02.NODE00
# end of #/etc/iscsi/initiatorname.iscsi

Remarque : certaines distributions n’autorisent qu’une seule déclaration InitiatorName par fichier ; vérifiez la documentation de votre version.

Démarrez le démon iscsid et effectuez la découverte :

service iscsid start

Exemple de sortie lors du démarrage :

Turning off network shutdown. Starting iSCSI daemon: [ OK ]

Découverte des cibles sur le serveur (à adapter avec l’adresse du serveur) :

iscsiadm -m discovery -t st -p node00

Exemple de découverte retournée :

192.168.222.1:3260,1 iqn.2008-07.NODE00:LUN01.NODE00  
192.168.222.1:3260,1 iqn.2008-07.NODE00:LUN02.NODE00

Ensuite, démarrez le service iscsi pour établir les sessions :

service iscsi start

Sortie indicative :

    iscsid (pid 964 963) is running...
    Setting up iSCSI targets: Login session [iface: default, target: \

    iqn.2008-07.NODE00:LUN02.NODE00, portal: 192.168.222.1,3260]
    Login session [iface: default, target: iqn.2008-07.NODE00:LUN01.\
    NODE00, portal: 192.168.222.1,3260] [  OK  ]

2.b Vérification des disques côté client

Consultez les logs du noyau pour vérifier la détection des périphériques SCSI :

dmesg

Extrait de sortie montrant les disques iSCSI (ici sda et sdb, ~53,6 Go) :

        scsi0 : iSCSI Initiator over TCP/IP
         Vendor: IET       Model: VIRTUAL-DISK      Rev: 0
         Type:   Direct-Access                      ANSI SCSI revision: 04
        scsi 0:0:0:2: Attached scsi generic sg0 type 0
        SCSI device sda: 104857600 512-byte hdwr sectors (53687 MB)
        sda: Write Protect is off
        sda: Mode Sense: 77 00 00 08
        SCSI device sda: drive cache: write through
        SCSI device sda: 104857600 512-byte hdwr sectors (53687 MB)

        ...

        sd 1:0:0:1: Attached scsi disk sdb

        sd 1:0:0:1: Attached scsi generic sg1 type 0

Vous pouvez aussi lister les disques et partitions :

fdisk -l

Extrait :

        Disk /dev/sda: 53.6 GB, 53687091200 bytes
        Disk /dev/sdb: 53.6 GB, 53687091200 bytes
        Disk /dev/sda doesn't contain a valid partition table
        Disk /dev/sdb doesn't contain a valid partition table

Répétez la même procédure pour node02. Une fois que les disques sont accessibles depuis les deux clients, vous pouvez configurer un cluster à deux nœuds, par exemple pour tester Oracle RAC 10gR2 avec ASM partagé et OCFS2.

Conseils de débogage et vérification

  • Vérifiez la connectivité réseau (port TCP 3260 par défaut).
  • Assurez-vous que les noms IQN (Initiator/Target) correspondent entre serveur et clients.
  • Si le client n’aperçoit pas le target, contrôlez /var/log/messages ou syslog et les règles iptables/Firewalld.
  • Pour voir les sessions iSCSI établies :
iscsiadm -m session
  • Pour forcer la reconnexion :
iscsiadm -m node -T  -p  --login

Quand ce montage échoue (contre-exemples)

  • Réseau non fiable ou latence élevée provoque des timeouts et corruption potentielle si vous n’utilisez pas des mécanismes de reprise.
  • Utiliser un stockage iSCSI simple sans redondance ni multipath en production peut entraîner un point de défaillance unique.
  • Utiliser un seul initiatorname partagé sur plusieurs machines sans coordination peut troubler la gestion des sessions.

Alternatives et extensions

  • Utiliser LIO (Linux I/O target) moderne plutôt que iscsitarget selon la distribution (meilleur support et fonctionnalités).
  • Pour haute disponibilité : activer multipath (DM-Multipath) et configurer plusieurs chemins réseau/stockage.
  • Pour des tests plus simples, exposez des fichiers images loopback (fallocate/truncate + losetup) au lieu de LVM.

Mini-playbook de déploiement (étapes rapides)

  1. Préparer le serveur : créer volumes LVM (50 Go) ou fichiers images.
  2. Installer iscsitarget (ou LIO) et configurer /etc/ietd.conf.
  3. Définir /etc/initiators.allow avec IQN et adresses IP clients.
  4. Démarrer iscsi-target, vérifier écoute sur 3260.
  5. Sur chaque client : installer iscsi-initiator-utils, définir InitiatorName, démarrer iscsid.
  6. Découvrir les targets, démarrer iscsi, vérifier dmesg et fdisk.
  7. Configurer système de fichiers distribué ou ASM/OCFS2 si nécessaire.

Checklist par rôle

  • Administrateur stockage
    • Créer PV/VG/LV ou images de taille appropriée
    • Vérifier permissions et ownership des fichiers/images
  • Administrateur réseau
    • Ouvrir le port 3260 entre initiators et target
    • Assurer isolation réseau pour tests (VLAN ou réseau dédié)
  • Administrateur système
    • Installer iscsitarget/iscsid
    • Scripter le démarrage automatique des services

Critères d’acceptation

  • Les sessions iSCSI sont visibles avec iscsiadm -m session.
  • Les disques apparaissent dans dmesg et fdisk -l sur chaque client.
  • Les deux nœuds peuvent monter un système de fichiers partagé (test en lecture seule d’abord) ou initier ASM/OCFS2 sans collisions.

Faits et points à retenir

  • Port par défaut : TCP 3260.
  • MaxConnections dans l’exemple : 2.
  • Taille des LUNs dans l’exemple : ~50 Go chacun.
  • iscsitarget est un projet plus ancien ; pour des nouvelles installations préférez LIO si disponible.

Sécurité et conformité rapides

  • Ne pas exposer un target iSCSI sur un réseau public.
  • Restreindre l’accès par IQN et par adresse IP (initiators.allow).
  • En production, utiliser chiffrement réseau (IPsec) et authentification CHAP si nécessaire.

Résumé

Ce guide montre comment configurer un serveur iSCSI simple avec iscsitarget, comment configurer les clients initiators, vérifier que les LUNs sont visibles, et quelles précautions prendre pour l’usage en test. Il fournit également des checklists et alternatives pour un passage ultérieur en environnement plus robuste.

Lectures complémentaires

Auteur
Édition

Matériaux similaires

X2Go + WiKID : 2FA sur Ubuntu 12.04
Sécurité

X2Go + WiKID : 2FA sur Ubuntu 12.04

WikiLeaks: Grasshopper — outils CIA pour Windows
Cybersécurité

WikiLeaks: Grasshopper — outils CIA pour Windows

Emplacement par défaut sous Windows 10
Windows

Emplacement par défaut sous Windows 10

Ouvrir un fichier PowerPoint en ligne
Productivité

Ouvrir un fichier PowerPoint en ligne

Ouvrir l’Invite de commandes en administrateur
Windows

Ouvrir l’Invite de commandes en administrateur

Corriger CPU élevé : Office Click-to-Run
Dépannage

Corriger CPU élevé : Office Click-to-Run