Iscsi
Le protocole ISCSI permet de partager un disque dur (sous forme physique ou logique) sur le réseau en transportant les commandes SCSI dans des paquets IP. On peut ce servir d'un disque partagé via ISCSI pour démarrer un système Debian ou Windows depuis le réseau, faire des tests ou simplement ajouter un périphérique de stockage sur sa machine.
Dans ce tuto, nous verrons :
- La mise en place d'un serveur ISCSI
- Pour Debian Jessie (8.0)
- Pour Debian Stretch (9.0)
- La mise en place d'un client ISCSI
Pré-requis :
- Debian 8 ou 9
- un périphérique de type bloc (disque dur, SSD , clé USB, fichier image disque...) à partager
Port utilisé :
- 3260/tcp
Partie serveur
Pour Debian Jessie
Seul la mise en place d'un partage logique (un fichier créé avec dd
) sera expliqué, la procédure avec un vrai disque n'étant pas fondamentalement différente.
Installation des paquets
apt update && apt install iscsitarget
Création d'un fichier disque
Création du volume à partager sous forme de fichier à l'aide de dd
dd if=/dev/zero of=fs.iscsi.disk bs=1M count=10000
On peut mettre ce fichier de 10Go dans un répertoire pour pas que ça soit le foutoir
mkdir /root/iscsi && mv fs.iscsi.disk !$
Partage du disque sur le réseau
vim /etc/iet/ietd.conf
Ajouter ceci:
Target iqn.2017-01:fs.iscsi.disk
Lun 0 Path=/root/iscsi/fs.iscsi.disk,Type=fileio
Si on partage une partition de disque dur physique, mettre ça
Target iqn.2010-01:sdb2
Lun 0 Path=/dev/sdb2,Type=fileio
Activation du service
vim /etc/default/iscsitarget
ISCSITARGET_ENABLE=true
Redémarrer le service
/etc/init.d/iscsitarget restart
Afficher le contenu du partage
cat /proc/net/iet/volume
la commande devrait renvoyer ceci
tid:1 name:iqn.2010-01:sdb2
lun:0 state:0 iotype:fileio iomode:wt path:/root/iscsi/fs.iscsi.disk
Pour Debian Stretch
Partie client
Installation des paquets
apt install open-iscsi
Lister les volume en partage sur une IP donnée
iscsiadm -m discovery -t sendtargets -p IP_DU_SERVEUR
Le résultat de la commande doit être celui-ci :
IP_DU_SERVEUR:3260,1 iqn.2010-01:fs.iscsi.disk
Connexion au volume
iscsiadm -m node -T iqn.2010-01:fs.iscsi.disk -p IP_DU_SERVEUR --login
La commande doit renvoyer ceci :
Logging in to [iface: default, target: iqn.2010-01:fs.iscsi.disk, portal: IP_DU_SERVEUR,3260] (multiple) Login to [iface: default, target: iqn.2010-01:fs.iscsi.disk, portal: IP_DU_SERVEUR,3260] successful
Le log /var/log/messages
indique qu'un nouveau disque a été détecté et donne son nom (sur ma VM qui a comme disque principal vda, le volume ISCSI s'appel sda. Il y a des chances pour que sur une machine physique ce soit sdb...)
Il suffit maintenant de créer une table de partition, une partition avec un formatage et de monter cette partition comme s'il s'agissait d'un vrai disque dur, comme expliqué dans notre documentation sur le partitionnement d'un disque dur sous Linux.
Démonter le volume
iscsiadm -m node -T iqn.2010-01:fs.iscsi.disk -p IP_DU_SERVEUR --logout