Skip to content

iSCSI

iSCSI (Internet Small Computer System Interface) est un protocole de stockage qui utilise TCP/IP pour les communications entre les clients (serveurs MS Windows / Linux) et les serveurs que sont les baies de stockages.

Le stockage iSCSI est un stockage de type SAN (Storage Area Network) — partage de stockage de type bloc — contrairement au partage de fichiers (genre NFS/Samba/CIFS) qui est appelé NAS (Network Attached Storage). Dans le cas du iSCSI et des configuration SAN en général, le partage se fait au niveau d'un disque — LUN (Logical Unit Number) — et pas de fichiers ou répertoires.

Le nom iSCSI vient de la méthode utilisée pour accéder aux disques distants, qui transporte des commandes SCSI sur un réseau TCP/IP classique. Ceci permet d'utiliser du stockage distant et (potentiellement) partagé sans nécessiter une infrastructure dédiée et coûteuse en fiber channel (FC).

INFO

Fiber Channel (FC) est un protocole de communication haute vitesse dédié au stockage, utilisant une infrastructure réseau spécialisée. Contrairement à iSCSI qui s'appuie sur TCP/IP standard, FC offre des performances supérieures et une latence réduite, mais nécessite un investissement matériel plus important en équipements dédiés.

Le port par défaut est le TCP 3620

CaractéristiqueiSCSINFSSamba/CIFS
Type de partageBloc (SAN)Fichiers (NAS)Fichiers (NAS)
Ce que voit le clientDisque brut (LUN) — /dev/sdXSystème de fichiers monté — /mnt/sharePartages réseau monté — /mnt/smbshare
FilesystemGéré par le client (ext4…)Géré par le serveurGéré par le serveur
Cas d'usageVirtualisation, bases de données, haute performancePartage générique Unix/LinuxPartage générique Windows/Linux
PortsTCP 3620TCP/UDP 111, 2049TCP 139, 445

Les composants

Les éléments présents dans une infrastructure iSCSI sont :

  • la target qui est le périphérique de stockage qui partage l'espace disque et;
  • l'initiator, le composant software qui tourne sur le serveur qui doit accéder au stockage. Dans notre cas, ce sera le serveur Proxmox;
  • un identifiant unique, IQN (iSCSI Qualified Name) de la forme : iqn.AAAA-MM-domain:identifier;
  • un LUN (Logical Unit Number), un disque exposé à travers iSCSI dans un point d'accès TPG (Target Portal Group) de la forme : IP:port;
  • un backstore qui représente le disque là ou le LUN représente plutôt la baie logique (une partition, un volume LVM…);

INFO

Il existe un composant spécifique qui est appelé passerelle iSCSI, en général du hardware dédié, qui permet de donner accès à des baies de stockage FC qui ne sont pas capable de communiquer en iSCSI nativement. C'est un équipement qui fait la conversion entre iSCSI et FC.

Configuration

Il y a plusieurs manières de mettre en œuvre un SAN sous linux : LIO (linux-IO target), TrueNAS…

LIO (linux-IO target)

LIO (linux-IO target) est le framework cible iSCSI intégré au noyau, piloté par la commande targetcli. Il permet de configurer une machine comme target.

REMARQUE

targetcli-fb est le package qui va bien et targetcli la commande associée.

Le serveur

Préparer le stockage, c'est, une fois la commande targetcli lancée :

  • créer un ou plusieurs backstores

    bash
    /> cd /backstores/block
    /backstores/block> create <lun name> /dev/vdb

    INFO

    Ils existent de 2 types : block et fileio. Nous utilisons le type block.

  • créer une ou plusieurs target

    bash
    /> cd /iscsi
    /iscsi> create iqn.2026-03.zeus:target01
  • créer des ACL pour autoriser un ou plusieurs initiator

    bash
    /> cd /iscsi/iqn.2026-03.zeus:target01/tpg1/acls
    /iscsi/.../acls> create iqn.2026-03.zeus:<login>
  • ajouter un login / password pour la connection via CHAP (Challenge-Handshake Authentication Protocol)

    bash
    /> cd /iscsi/iqn.2026-03.zeus:target01/tpg1/acls/iqn.2026-03.zeus:<login>
    /iscsi/.../iqn.2026-03.zeus:<login>> set attribute authentication=1
    /iscsi/.../iqn.2026-03.zeus:<login>> set auth userid=<login>
    /iscsi/.../iqn.2026-03.zeus:<login>> set auth password=<password>
  • associer le ou les backstores à la target

    bash
    /> cd /iscsi/iqn.2026-03.zeus:target01/tpg1/luns
    /iscsi/iqn.20...mes/tpg1/luns create /backstores/block/<lun name>
  • vérifier et sauvegarder

    bash
    /> ls /
    /> cd /
    /> saveconfig
    /> exit

Le reste se fait ensuite du côté des clients.

Un client

C'est l'initiator le client qui se connecte à la target pour utiliser les disques. Sous linux — et donc également pour Proxmox — c'est le paquet open-iscsi qui s'en charge.

ASTUCE

Sur une machine Proxmox le paquet est déjà installé mais on peut le vérifier. Dans la foulée, installer le paquet lsscsi s'il ne l'est pas.

  • configurer le nom de l'initiator dans le fichier /etc/iscsi/initiatorname.iscsi. Ce nom correspond exactement à celui défini plus haut iqn.2026-03.zeus:target01 et correspondant à une ACL sur la target.

    conf
    InitatorName=iqn.2026-03.zeus:target01
  • donner ses credentials. Dans le fichier /etc/iscsi/iscsid.conf, chercher les lignes suivantes et les mettre à jour :

    bash
    node.session.auth.authmethod = CHAP
    node.session.auth.username = <login>
    node.session.auth.password = <password>

Il est possible de vérifier (la connexion et) la liste des ressources sur la target :

  • lister les ressources disponibles sur la target

    bash
    iscsiadm -m discovery -t sendtargets -p <IP>
  • se connecter

    bash
    iscsiadm -m node \
        -T iqn.2026-03.zeus:target01 \
        -p <IP> --login
  • lister les sessions actives

    bash
    iscsiadm -m session -o show
  • vérifier les disques disponibles (LUN logic unit)

    bash
    lsscsi

Le reste pourra se faire à partir de l'interface de Proxmox en ajoutant un stockage iSCSI.

screenshot

En quelques étapes :

  • Ajout du stockage iSCIS distant

    screenshot

    L'id peut être choisi, le portal est l'IP et les targets devraient apparaitre. screenshot

  • Ajouter un disque, par exemple LVM

    screenshot

    Les LUN disponibles devraient apparaitre, en choisir un.

    screenshot

TrueNAS

TrueNAS est une solution complète et intégrée de stockage en réseau basée sur FreeBSD. Contrairement à LIO qui est un framework bas niveau nécessitant une configuration manuelle détaillée, TrueNAS offre une interface web intuitive et une gestion centralisée du stockage.

REMARQUE

TrueNAS est bien plus qu'une simple solution de stockage en réseau. Elle permet également de créer des vms (machines virtuelles), des conteneurs, d'installer des applications…

Son utilité est plutôt orientée « usage domestique » ou petite entreprise.

TrueNAS partie partages (shares) où l'on voit qu'il est également possible de créer de simples partages SMB/CIFS ou NFS.

Configuration d'un partage iSCSI en utilisant le sorcier (wizard) :

  • création de la cible

  • association à du storage local

  • exposition de l'iqn (dont on ne choisira pas le nom)

La support iSCSI est alors disponible sur Proxmox