« Iscsi » : différence entre les versions

De Wiki doc

(Page créée avec « Category:service_partage Le protocole ISCSI permet de partager un disque dur (sous forme physique ou logique) sur le réseau en transportant les commandes SCSI dans de... »)
 
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
[[Category:service_partage]]
[[Category:service_partage]]
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 depuis le réseau, faire des test ou simplement ajouter un périphérique de stockage sur sa machine.
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 [[amorçage_iscsi_Debian|Debian]] ou [[amorçage_iscsi_Windows_7|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 :
Dans ce tuto, nous verrons :
* La mise en place d'un serveur ISCSI
* La mise en place d'un serveur ''ISCSI''
* La mise en place d'un client ISCSI
** Pour Debian Jessie (8.0)
** Pour Debian Stretch (9.0)
* La mise en place d'un client ''ISCSI''


Pré-requis :
Pré-requis :
* Debian 8
* Debian 8 ou 9
* un périphérique de type bloc (disque dur, SSD , clé USB, fichier image disque...) à partager
* un périphérique de type bloc (disque dur, SSD , clé USB, fichier image disque...) à partager


Port utilisé :
Port utilisé :
* 3260/tcp
* 3260/tcp


=Partie serveur=
=Partie serveur=
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.
==Pour Debian Jessie==
Seul la mise en place d'un partage logique (un fichier créé avec <source lang="bash" inline>dd</source>) sera expliqué, la procédure avec un vrai disque n'étant pas fondamentalement différente.


==Installation des paquets==
===Installation des paquets===
  # apt update && apt install iscsitarget
  apt update && apt install iscsitarget


==Création d'un fichier disque==
===Création d'un fichier disque===
Création du volume à partager sous forme de fichier à l'aide de dd
Création du volume à partager sous forme de fichier à l'aide de <source lang="bash" inline>dd</source>
  # dd if=/dev/zero of=fs.iscsi.disk bs=1M count=10000
  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
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 !$
  mkdir /root/iscsi && mv fs.iscsi.disk !$
==Partage du disque sur le réseau==
===Partage du disque sur le réseau===
  # vim /etc/iet/ietd.conf
  vim /etc/iet/ietd.conf
Ajouter ceci
Ajouter ceci:
<source lang="bash">
<source lang="bash">
  Target iqn.2017-01:fs.iscsi.disk
  Target iqn.2017-01:fs.iscsi.disk
Ligne 38 : Ligne 40 :
</source>
</source>
Activation du service
Activation du service
  # vim /etc/default/iscsitarget
  vim /etc/default/iscsitarget


  ISCSITARGET_ENABLE=true
  ISCSITARGET_ENABLE=true
Redémarrer le service
Redémarrer le service
  # /etc/init.d/iscsitarget restart
  /etc/init.d/iscsitarget restart
Afficher le contenu du partage
Afficher le contenu du partage
  # cat /proc/net/iet/volume
  cat /proc/net/iet/volume
la commande devrait renvoyer ceci
la commande devrait renvoyer ceci
<source lang="bash">
<source lang="bash">
Ligne 50 : Ligne 52 :
lun:0 state:0 iotype:fileio iomode:wt path:/root/iscsi/fs.iscsi.disk
lun:0 state:0 iotype:fileio iomode:wt path:/root/iscsi/fs.iscsi.disk
</source>
</source>
==Pour Debian Stretch==


=Partie client=
=Partie client=
==Installation des paquets==
==Installation des paquets==
  # apt install open-iscsi
  apt install open-iscsi
Lister les volume en partage sur une IP donnée
Lister les volume en partage sur une IP donnée
  # iscsiadm -m discovery -t sendtargets -p IP_DU_SERVEUR
  iscsiadm -m discovery -t sendtargets -p IP_DU_SERVEUR
Le résultat de la commande doit être celui-ci :
Le résultat de la commande doit être celui-ci :
  IP_DU_SERVEUR:3260,1 iqn.2010-01:fs.iscsi.disk
  IP_DU_SERVEUR:3260,1 iqn.2010-01:fs.iscsi.disk
==Connexion au volume==
==Connexion au volume==
  # iscsiadm -m node -T iqn.2010-01:fs.iscsi.disk -p IP_DU_SERVEUR --login
  iscsiadm -m node -T iqn.2010-01:fs.iscsi.disk -p IP_DU_SERVEUR --login
La commande doit renvoyer ceci :
La commande doit renvoyer ceci :
  Logging in to [iface: default, target: iqn.2010-01:fs.iscsi.disk, portal: IP_DU_SERVEUR,3260] (multiple)
  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
  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...)
Le log <source lang="bash" inline>/var/log/messages</source> 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 disque dur|partitionnement d'un disque dur sous Linux]].
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 disque dur|partitionnement d'un disque dur sous Linux]].


==Démonter le volume==
==Démonter le volume==
  # iscsiadm -m node -T iqn.2010-01:fs.iscsi.disk -p IP_DU_SERVEUR --logout
  iscsiadm -m node -T iqn.2010-01:fs.iscsi.disk -p IP_DU_SERVEUR --logout


=Source=
=Source=
http://blog.inforeseau.com/2011/01/configurer-iscsi-client-serveur-sous-gnulinux-stockage-reseau-ou-san-personnel-sur-ip
http://blog.inforeseau.com/2011/01/configurer-iscsi-client-serveur-sous-gnulinux-stockage-reseau-ou-san-personnel-sur-ip

Version du 26 décembre 2017 à 01:04

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

Source

http://blog.inforeseau.com/2011/01/configurer-iscsi-client-serveur-sous-gnulinux-stockage-reseau-ou-san-personnel-sur-ip