iSCSI Guide · 6 min read · Feb 07, 2026

Utilisation d'iSCSI sur Fedora 10 (Initiateur et Cible)

Utilisation d’iSCSI sur Fedora 10 (Initiateur et Cible)

Version 1.0
Auteur : Falko Timme

Ce guide explique comment vous pouvez configurer une cible iSCSI et un initiateur iSCSI (client), tous deux exécutant Fedora 10. Le protocole iSCSI est un protocole de réseau de stockage (SAN) qui permet aux initiateurs iSCSI d’utiliser des dispositifs de stockage sur la cible iSCSI (distante) en utilisant un câblage Ethernet normal. Pour l’initiateur iSCSI, le stockage distant ressemble à un disque dur normal, connecté localement.

Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque Préliminaire

J’utilise ici deux serveurs Fedora 10 :

  • server1.example.com (Initiateur) : adresse IP 192.168.0.100
  • server2.example.com (Cible) : adresse IP 192.168.0.101

2 Configuration de la Cible (server2)

server2 :

Tout d’abord, nous configurons la cible (server2). Comme les paquets nécessaires ne sont disponibles que dans le dépôt RPMFusion, nous devons d’abord l’activer :

rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Ensuite, nous pouvons installer les paquets de cible iSCSI :

yum install iscsitarget kmod-iscsitarget

Il est possible que cela mette également à jour votre noyau. Si c’est le cas, veuillez redémarrer le système par la suite :

reboot

Nous pouvons utiliser des volumes logiques inutilisés, des fichiers image, des disques durs (par exemple, /dev/sdb), des partitions de disque dur (par exemple, /dev/sdb1) ou des dispositifs RAID (par exemple, /dev/md0) pour le stockage. Dans cet exemple, je vais créer un volume logique de 20 Go nommé storage_lun1 dans le groupe de volumes VolGroup00 :

lvcreate -L20G -n storage_lun1 VolGroup00

(Si vous souhaitez utiliser un fichier image, vous pouvez le créer comme suit :

mkdir /storage
dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000

Cela crée le fichier image /storage/lun1.img d’une taille de 20 Go.

)

Ensuite, nous éditons /etc/ietd.conf…

vi /etc/ietd.conf

… et commentons tout dans ce fichier. À la fin, nous ajoutons le passage suivant :

| [...] Target iqn.2001-04.com.example:storage.lun1 IncomingUser someuser secret OutgoingUser Lun 0 Path=/dev/VolGroup00/storage_lun1,Type=fileio Alias LUN1 #MaxConnections 6 |

Le nom de la cible doit être un nom unique au niveau mondial, la norme iSCSI définit le “Nom Qualifié iSCSI” comme suit : iqn.yyyy-mm.[:identifiant] ; yyyy-mm est la date à laquelle le domaine est valide ; l’identifiant est librement sélectionnable. La ligne IncomingUser contient un nom d’utilisateur et un mot de passe afin que seuls les initiateurs (clients) qui fournissent ce nom d’utilisateur et ce mot de passe puissent se connecter et utiliser le dispositif de stockage ; si vous n’avez pas besoin d’authentification, ne spécifiez pas de nom d’utilisateur et de mot de passe dans la ligne IncomingUser. Dans la ligne Lun, nous devons spécifier le chemin complet vers le dispositif de stockage (par exemple, /dev/VolGroup00/storage_lun1, /storage/lun1.img, /dev/sdb, etc.).

Maintenant, nous disons à la cible que nous voulons autoriser les connexions au dispositif iqn.2001-04.com.example:storage.lun1 depuis l’adresse IP 192.168.0.100 (server1.example.com) :

vi /etc/initiators.allow

| [...] iqn.2001-04.com.example:storage.lun1 192.168.0.100 |

Ensuite, nous créons les liens de démarrage système pour iscsi-target et le démarrons :

chkconfig –levels 235 iscsi-target on
/etc/init.d/iscsi-target start

3 Configuration de l’Initiateur (server1)

server1 :

Sur server1, nous installons l’initiateur :

yum install iscsi-initiator-utils

Ensuite, nous ouvrons /etc/iscsi/iscsid.conf…

vi /etc/iscsi/iscsid.conf

… et nous assurons que node.startup est défini sur automatique :

| [...] node.startup = automatic [...] |

Maintenant, nous nous connectons à la cible (server2) et vérifions quels dispositifs de stockage elle a à offrir :

iscsiadm -m discovery -t st -p 192.168.0.101

[root@server1 init.d]# iscsiadm -m discovery -t st -p 192.168.0.101
Démarrage d’iscsid :                                           [  OK  ]
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
[root@server1 init.d]#

iscsiadm -m node

[root@server1 init.d]# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
[root@server1 init.d]#

Les paramètres pour le dispositif de stockage iqn.2001-04.com.example:storage.lun1 sur 192.168.0.101:3260,1 sont stockés dans le fichier /var/lib/iscsi/nodes/iqn.2001-04.com.example:storage.lun1/192.168.0.101,3260,1/default. Nous devons définir le nom d’utilisateur et le mot de passe pour la cible dans ce fichier ; au lieu d’éditer ce fichier manuellement, nous pouvons utiliser la commande iscsiadm pour le faire pour nous :

iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.authmethod –value=CHAP
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.username –value=someuser
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.password –value=secret

Maintenant, nous pouvons nous connecter :

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --login

[root@server1 init.d]# iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –login
Connexion à [iface : default, cible : iqn.2001-04.com.example:storage.lun1, portail : 192.168.0.101,3260]
Connexion à [iface : default, cible : iqn.2001-04.com.example:storage.lun1, portail : 192.168.0.101,3260] : réussie
[root@server1 init.d]#

(Si vous souhaitez vous déconnecter, vous pouvez exécuter

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --logout

)

Dans la sortie de

fdisk -l 

vous devriez maintenant trouver un nouveau disque dur (/dev/sdb dans cet exemple) ; c’est notre dispositif de stockage iSCSI :

[root@server1 init.d]# fdisk -l

Disque /dev/sda: 32.2 Go, 32212254720 octets
255 têtes, 63 secteurs/trace, 3916 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Identifiant du disque : 0x000d5f46

Dispositif Démarrer      Début         Fin      Blocs   Id  Système
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26        3916    31254457+  8e  Linux LVM

Disque /dev/sdb: 21.4 Go, 21474836480 octets
64 têtes, 32 secteurs/trace, 20480 cylindres
Unités = cylindres de 2048 * 512 = 1048576 octets
Identifiant du disque : 0x00000000

Le disque /dev/sdb ne contient pas de table de partition valide
[root@server1 init.d]#

Pour utiliser ce dispositif, nous devons le formater :

fdisk /dev/sdb

[root@server1 init.d]# fdisk /dev/sdb
Le dispositif ne contient ni table de partition DOS valide, ni étiquette de disque Sun, SGI ou OSF
Création d’une nouvelle étiquette de disque DOS avec l’identifiant de disque 0xa1870fdd.
Les modifications resteront en mémoire uniquement, jusqu’à ce que vous décidiez de les écrire.
Après cela, bien sûr, le contenu précédent ne sera pas récupérable.

Le nombre de cylindres pour ce disque est défini à 20480.
Il n’y a rien de mal à cela, mais cela est plus grand que 1024,
et pourrait, dans certaines configurations, causer des problèmes avec :
1) le logiciel qui s’exécute au moment du démarrage (par exemple, anciennes versions de LILO)
2) le démarrage et le logiciel de partitionnement d’autres OS
(par exemple, DOS FDISK, OS/2 FDISK)
Avertissement : le drapeau invalide 0x0000 de la table de partition 4 sera corrigé par w(rite)

Commande (m pour aide) : <– n
Action de commande
e   étendue
p   partition primaire (1-4)
<– p
Numéro de partition (1-4) : <– 1
Premier cylindre (1-20480, valeur par défaut 1) : <– ENTRER
Utilisation de la valeur par défaut 1
Dernier cylindre, +cylindres ou +taille{K,M,G} (1-20480, valeur par défaut 20480) : <– ENTRER
Utilisation de la valeur par défaut 20480

Commande (m pour aide) : <– t
Partition sélectionnée 1
Code hexadécimal (type L pour lister les codes) : <– L

0  Vide           1e  FAT1 W95 caché 80  Ancien Minix       bf  Solaris
1  FAT12           24  NEC DOS         81  Minix / ancien Lin c1  DRDOS/sec (FAT-
2  XENIX root      39  Plan 9          82  Linux swap / So c4  DRDOS/sec (FAT-
3  XENIX usr       3c  PartitionMagic  83  Linux           c6  DRDOS/sec (FAT-
4  FAT16 <32M      40  Venix 80286     84  OS/2 caché C:  c7  Syrinx
5  Étendue        41  Démarrage PPC PReP   85  Linux étendu  da  Données Non-FS
6  FAT16           42  SFS             86  ensemble de volumes NTFS db  CP/M / CTOS / .
7  HPFS/NTFS       4d  QNX4.x          87  ensemble de volumes NTFS de  Dell Utility
8  AIX             4e  QNX4.x 2ème part 88  Linux plaintext df  BootIt
9  AIX bootable    4f  QNX4.x 3ème part 8e  Linux LVM       e1  Accès DOS
a  Gestionnaire de démarrage OS/2 50  OnTrack DM      93  Amoeba          e3  DOS R/O
b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor
c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs
e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  GPT
f  W95 Ext’d (LBA) 54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b
11  FAT12 caché invisible 56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor
12  Diagnostic Compaq 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor
14  FAT16 caché invisible <3 61  SpeedStor       a9  NetBSD          f2  DOS secondaire
16  FAT16 caché invisible 63  GNU HURD ou Sys ab  Démarrage Darwin  fb  VMware VMFS
17  HPFS/NTF caché invisible 64  Novell Netware  b7  BSDI fs          fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  W95 FAT3 caché invisible 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  W95 FAT3 caché invisible 75  PC/IX           be  Démarrage Solaris    ff  BBT
Code hexadécimal (type L pour lister les codes) : <– 83

Commande (m pour aide) : <– w
La table de partition a été modifiée !

Appel de ioctl() pour relire la table de partition.
Synchronisation des disques.
[root@server1 init.d]#

Ensuite, la sortie de

fdisk -l

devrait ressembler à ceci :

[root@server1 init.d]# fdisk -l

Disque /dev/sda: 32.2 Go, 32212254720 octets
255 têtes, 63 secteurs/trace, 3916 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Identifiant du disque : 0x000d5f46

Dispositif Démarrer      Début         Fin      Blocs   Id  Système
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26        3916    31254457+  8e  Linux LVM

Disque /dev/sdb: 21.4 Go, 21474836480 octets
64 têtes, 32 secteurs/trace, 20480 cylindres
Unités = cylindres de 2048 * 512 = 1048576 octets
Identifiant du disque : 0xa1870fdd

Dispositif Démarrer      Début         Fin      Blocs   Id  Système
/dev/sdb1               1       20480    20971504   83  Linux
[root@server1 init.d]#

Maintenant, nous créons un système de fichiers sur /dev/sdb1…

mkfs.ext3 /dev/sdb1

… et le montons à des fins de test :

mount /dev/sdb1 /mnt

Vous devriez maintenant voir le nouveau dispositif dans les sorties de…

mount

[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 sur / type ext3 (rw)
/proc sur /proc type proc (rw)
sysfs sur /sys type sysfs (rw)
devpts sur /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 sur /boot type ext3 (rw)
tmpfs sur /dev/shm type tmpfs (rw)
none sur /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc sur /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 sur /mnt type ext3 (rw)
[root@server1 ~]#

… et

df -h

[root@server1 ~]# df -h
Système de fichiers            Taille  Utilisé Disponible Utilisé% Monté sur
/dev/mapper/VolGroup00-LogVol00
29G  2.2G   25G   9% /
/dev/sda1             190M   13M  168M   8% /boot
tmpfs                 251M     0  251M   0% /dev/shm
/dev/sdb1              20G  173M   19G   1% /mnt
[root@server1 ~]#

Vous pouvez le démonter comme ceci :

umount /mnt

Pour que le dispositif soit monté automatiquement au démarrage, par exemple dans le répertoire /storage, nous créons ce répertoire…

mkdir /storage

… et ajoutons la ligne suivante à /etc/fstab :

vi /etc/fstab

| [...] /dev/sdb1 /storage ext3 defaults,auto,_netdev 0 0 |

Pour des raisons de test, vous pouvez maintenant redémarrer le système :

reboot

Après le redémarrage, le dispositif devrait être monté :

mount

[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 sur / type ext3 (rw)
/proc sur /proc type proc (rw)
sysfs sur /sys type sysfs (rw)
devpts sur /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 sur /boot type ext3 (rw)
tmpfs sur /dev/shm type tmpfs (rw)
none sur /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc sur /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 sur /storage type ext3 (rw,_netdev)
[root@server1 ~]#

df -h

[root@server1 ~]# df -h
Système de fichiers            Taille  Utilisé Disponible Utilisé% Monté sur
/dev/mapper/VolGroup00-LogVol00
29G  2.2G   25G   9% /
/dev/sda1             190M   13M  168M   8% /boot
tmpfs                 251M     0  251M   0% /dev/shm
/dev/sdb1              20G  173M   19G   1% /storage
[root@server1 ~]#

4 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.