iSCSI Ubuntu · 10 min read · Feb 07, 2026

Utilisation d'iSCSI sur Ubuntu 9.04 (Initiateur et Cible)

Utilisation d’iSCSI sur Ubuntu 9.04 (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 fonctionnant sous Ubuntu 9.04. 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 (à distance) 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 Ubuntu 9.04 :

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

Comme nous allons exécuter toutes les étapes de ce tutoriel avec des privilèges root, nous pouvons soit préfixer toutes les commandes de ce tutoriel avec la chaîne sudo, soit devenir root tout de suite en tapant

sudo su 

2 Configuration de la Cible (server2)

server2 :

Tout d’abord, nous configurons la cible (server2) :

aptitude install iscsitarget

Ouvrez /etc/default/iscsitarget…

vi /etc/default/iscsitarget

… et définissez ISCSITARGET_ENABLE sur true :

| ISCSITARGET_ENABLE=true |

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 vg0 :

lvcreate -L20G -n storage_lun1 vg0 

(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/vg0/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/vg0/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 |

… et démarrons la cible :

/etc/init.d/iscsitarget start  

3 Configuration de l’Initiateur (server1)

server1 :

Sur server1, nous installons l’initiateur :

aptitude install open-iscsi

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

vi /etc/iscsi/iscsid.conf

… et définissons node.startup sur automatique :

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

Puis nous redémarrons l’initiateur :

/etc/init.d/open-iscsi restart

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

server1:~# iscsiadm -m discovery -t st -p 192.168.0.101
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

iscsiadm -m node

server1:~# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

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 /etc/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, soit en exécutant…

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

server1:~# 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éussi
server1:~#

… ou en redémarrant l’initiateur :

/etc/init.d/open-iscsi restart 

(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 :

server1:~# fdisk -l
Disque /dev/sda : 32.2 Go, 32212254720 octets
255 têtes, 63 secteurs/piste, 3916 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Identifiant de disque : 0x00031334

Dispositif Démarrer Fin Blocs Id Système
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Étendu
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

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

Le disque /dev/sdb ne contient pas de table de partition valide
server1:~#

Pour utiliser ce dispositif, nous devons le formater :

fdisk /dev/sdb

server1:~# 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 0x882944df.
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 fixé à 20480.
Il n’y a rien de mal à cela, mais c’est plus grand que 1024,
et cela pourrait, dans certaines configurations, causer des problèmes avec :

  1. le logiciel qui s’exécute au démarrage (par exemple, anciennes versions de LILO)
  2. le démarrage et le partitionnement de logiciels d’autres systèmes d’exploitation
    (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 l’aide) : <– m
Action de commande
a basculer un drapeau amorçable
b éditer l’étiquette de disque bsd
c basculer le drapeau de compatibilité dos
d supprimer une partition
l lister les types de partition connus
m imprimer ce menu
n ajouter une nouvelle partition
o créer une nouvelle table de partition DOS vide
p imprimer la table de partition
q quitter sans enregistrer les modifications
s créer une nouvelle étiquette de disque Sun vide
t changer l’identifiant système d’une partition
u changer les unités d’affichage/entrée
v vérifier la table de partition
w écrire la table sur le disque et quitter
x fonctionnalité supplémentaire (réservée aux experts)

Commande (m pour l’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) : <– ENTER
Utilisation de la valeur par défaut 1
Dernier cylindre ou +taille ou +tailleM ou +tailleK (1-20480, valeur par défaut 20480) : <– ENTER
Utilisation de la valeur par défaut 20480

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

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

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

Appel de ioctl() pour relire la table de partition.
Synchronisation des disques.
server1:~#

Ensuite, la sortie de

fdisk -l

devrait ressembler à ceci :

server1:~# fdisk -l
Disque /dev/sda : 32.2 Go, 32212254720 octets
255 têtes, 63 secteurs/piste, 3916 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Identifiant de disque : 0x00031334

Dispositif Démarrer Fin Blocs Id Système
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Étendu
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

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

Dispositif Démarrer Fin Blocs Id Système
/dev/sdb1 1 20480 20971504 83 Linux
server1:~#

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

server1:~# mount
/dev/sda1 sur / type ext3 (rw,errors=remount-ro)
tmpfs sur /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc sur /proc type proc (rw,noexec,nosuid,nodev)
sysfs sur /sys type sysfs (rw,noexec,nosuid,nodev)
odev sur /dev type tmpfs (rw,mode=0755)
tmpfs sur /dev/shm type tmpfs (rw,nosuid,nodev)
devpts sur /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 sur /mnt type ext3 (rw)
server1:~#

… et

df -h

server1:~# df -h
Système de fichiers Taille Utilisé Disponibilité Utilisé% Monté sur
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
odev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /mnt
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

server1:~# mount
/dev/sda1 sur / type ext3 (rw,errors=remount-ro)
tmpfs sur /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc sur /proc type proc (rw,noexec,nosuid,nodev)
sysfs sur /sys type sysfs (rw,noexec,nosuid,nodev)
odev sur /dev type tmpfs (rw,mode=0755)
tmpfs sur /dev/shm type tmpfs (rw,nosuid,nodev)
devpts sur /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 sur /storage type ext3 (rw,_netdev)
server1:~#

df -h

server1:~# df -h
Système de fichiers Taille Utilisé Disponibilité Utilisé% Monté sur
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
odev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /storage
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.