Initiateur iSCSI

iSCSI (Internet Small Computer System Interface) is a protocol that allows SCSI commands to be transmitted over a network. Typically iSCSI is implemented in a SAN (Storage Area Network) to allow servers to access a large store of hard drive space. The iSCSI protocol refers to clients as initiators and iSCSI servers as targets.

Ubuntu Server can be configured as both an iSCSI initiator and a target. This guide provides commands and configuration options to setup an iSCSI initiator. It is assumed that you already have an iSCSI target on your local network and have the appropriate rights to connect to it. The instructions for setting up a target vary greatly between hardware providers, so consult your vendor documentation to configure your specific iSCSI target.

Installation de l'initiateur iSCSI

Pour configurer un serveur Ubuntu en tant qu'initiateur iSCSI, installez le paquet open-iscsi. Dans un terminal tapez :

sudo apt install open-iscsi

Configuration de l'initiateur iSCSI

Une fois le paquet open-iscsi installé, modifiez /etc/iscsi/iscsid.conf en changeant ce qui suit :

node.startup = automatic

Vous pouvez vérifier quelles cibles sont disponibles en utilisant l'utilitaire iscsiadm. Entrez la commande suivante dans un terminal :

sudo iscsiadm -m discovery -t st -p 192.168.0.10
  • -m : détermine le mode dans lequel iscsiadm s’exécute.

  • -t : spécifie le type de détection.

  • L'option -p : indique l'adresse IP cible.

Remplacez l'exemple 192.168.0.10 par l'adresse IP cible sur votre réseau.

Si la cible est disponible, vous devriez voir une sortie semblable à ce qui suit :


192.168.0.10:3260,1 iqn.1992-05.com.emc:sl7b92030000520000-2

Le numero iqn et l’adresse IP ci-dessus varieront en fonction de votre matériel.

Vous devriez maintenant être en mesure de vous connecter à la cible iSCSI, et en fonction de la configuration de votre cible, vous devrez saisir les informations d'identification de l'utilisateur. Connectez-vous au nœud iSCSI :

sudo iscsiadm -m node --login

Assurez-vous que le nouveau disque a été détecté à l'aide de dmesg :

dmesg | grep sd

[    4.322384] sd 2:0:0:0: Attached scsi generic sg1 type 0
[    4.322797] sd 2:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
[    4.322843] sd 2:0:0:0: [sda] Write Protect is off
[    4.322846] sd 2:0:0:0: [sda] Mode Sense: 03 00 00 00
[    4.322896] sd 2:0:0:0: [sda] Cache data unavailable
[    4.322899] sd 2:0:0:0: [sda] Assuming drive cache: write through
[    4.323230] sd 2:0:0:0: [sda] Cache data unavailable
[    4.323233] sd 2:0:0:0: [sda] Assuming drive cache: write through
[    4.325312]  sda: sda1 sda2 < sda5 >
[    4.325729] sd 2:0:0:0: [sda] Cache data unavailable
[    4.325732] sd 2:0:0:0: [sda] Assuming drive cache: write through
[    4.325735] sd 2:0:0:0: [sda] Attached SCSI disk
[ 2486.941805] sd 4:0:0:3: Attached scsi generic sg3 type 0
[ 2486.952093] sd 4:0:0:3: [sdb] 1126400000 512-byte logical blocks: (576 GB/537 GiB)
[ 2486.954195] sd 4:0:0:3: [sdb] Write Protect is off
[ 2486.954200] sd 4:0:0:3: [sdb] Mode Sense: 8f 00 00 08
[ 2486.954692] sd 4:0:0:3: [sdb] Write cache: disabled, read cache: enabled, doesn't
 support DPO or FUA
[ 2486.960577]  sdb: sdb1
[ 2486.964862] sd 4:0:0:3: [sdb] Attached SCSI disk

Dans la sortie ci-dessus sdb est le nouveau disque iSCSI. Rappelez-vous que ceci est un exemple, la sortie que vous aurez sur votre écran sera différente.

Ensuite, créez une partition, formatez le système de fichiers et montez le nouveau disque iSCSI. Dans un terminal saisissez :

sudo fdisk /dev/sdb
n
p
enter
w

The above commands are from inside the fdisk utility; see man fdisk for more detailed instructions. Also, the cfdisk utility is sometimes more user friendly.

Maintenant, formatez le système de fichiers montez le dans /srv à titre d'exemple :

sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /srv

Enfin, ajoutez une entrée dans /etc/fstab pour monter le disque iSCSI lors du démarrage :

/dev/sdb1       /srv        ext4    defaults,auto,_netdev 0 0

C'est une bonne idée de s'assurer que tout fonctionne comme prévu en redémarrant le serveur.