Table des matières
Debian: Bases iSCSI
“iSCSI” est un protocole qui permet d'utiliser des disks en passant par le réseau TCP/IP.
On va voir rapidement comment mettre ça en place.
~~READMORE~~
Les serveurs, appelés “Target” maintiennent les disks “physiques”, via “LVM” par exemple, et les mettent a disposition des clients.
Les clients sont appelés “Initiator”.
iSCSI Target
Sur le serveur…
Packages
# aptitude install iscsitarget iscsitarget-dkms
le pilote est “iscsi” est compilé à la volée: changement de noyau ⇒ recompilation |
Dans “/etc/default/iscsitarget
” , faire en sorte d'avoir:
ISCSITARGET_ENABLE=true
# /etc/init.d/iscsitarget restart
“iscsitarget reload ” n'existe pas, et c'est bien enmerdant… A moins que cette solution fonctionne… |
Configuration rapide
La conf du “Target” est là: /etc/iet/ietd.conf
Pour l'exemple, on peut utiliser “LVM
” pour créer un disk :
# lvcreate -L 5G -n partage1 vg0
Et après ça, on a un disk prêt (et dans un état indéfinie) en /dev/vg0/partage1
.
On va ajouter un client , simplement protégé par un mot de passe.
Dans /etc/iet/ietd.conf
ajouter:
Target iqn.2012-09.fr.thierry-jaouen:partage-sn-7M5cMEnk IncomingUser zorro secret Lun 0 Path=/dev/vg0/partage1,Type=fileio MaxSessions 1
En clair:
“iqn.2012-09.fr.thierry-jaouen:partage-sn-7M5cMEnk
” , c'est le nom plus ou moins formaté selon une convention…
“ign.<DATE>.<REVERSED-DOMAIN>:<DISK_NAME>
” :
ign | Annonce le respect de la convention dans le nommage |
<DATE> | Année et mois de création |
<REVERSED-DOMAIN> | le domaine (FQDN?), mais écrit à l'envers ! |
<DISK_NAME> | le nom du disk, mais unique sur l'ensemble du domaine ! |
Le compte utilisé se nomme “zorro
” et a pour mot de passe “secret
”.
Le “MaxSessions 1
” n'autorise qu'une session simultanée sur ce disk.
Le seul cas de figure où l'on peut avoir plusieurs sessions simultanées, c'est lorsqu'elles sont toutes en lecture seule, sans exception.
On doit redémarrer le service:
# /etc/init.d/iscsitarget restart
La liste des disks disponibles est visible par là:
# cat /proc/net/iet/volume
La liste des sessions en cours est là:
# cat /proc/net/iet/session
Sécurité etc...
- On ira jouer avec le fichier
/etc/iet/initiators.allow
pour restreindre les accès. - On pourra utiliser un firewall en limitant l'accès au port utilisé par le “Target”. ( Port “3260” par défaut)
- Sur le Net, on activera le chiffrement IPSec …
- Pour le QoS, on mettra en place un réseau dédié rapide ( >=1Gb/s ).
iSCSI Initiator
Sur le client…
Package
# aptitude install open-iscsi
Pour info: Le client a un petit nom vis a vis du “iscsi” et il est dans /etc/iscsi/initiatorname.iscsi
.
Il est obligatoire de redémarrer le service, car la première fois, ça va créer le nom du “initiator” |
Configuration rapide
On ne va pas configurer en “automatique
” : On va charger “à la main”.
On ajoute l'authentification dans le fichier /etc/iscsi/iscsid.conf
:
# Automatic ou non ? node.startup = manual #node.startup = automatic # Authentification node.session.auth.authmethod = CHAP node.session.auth.username = zorro node.session.auth.password = secret
# /etc/init.d/open-iscsi restart
Simple montage
discovery
Découvrir les disks mis a disposition sur la “target
” :
# iscsiadm --mode discovery --type sendtargets --portal target.local.thierry-jaouen.fr 192.168.6.22:3260,1 iqn.2012-09.fr.thierry-jaouen:partage-sn-7M5cMEnk
La phase de “discovery” est obligatoire. |
En découvrant les “target
”, elles sont aussi mémorisé sur le client…
Ensuite, il suffit de taper “iscsiadm --mode node
” pour voir les disks.
show
On peut voir quelques infos comme cela:
# iscsiadm --mode node --targetname iqn.2012-09.fr.thierry-jaouen:partage-sn-7M5cMEnk --op show
delete
On peut faire “oublier” les précédentes “découverte” avec:
# iscsiadm --mode node --targetname iqn.2014-06.fr.iliad.vlq8.local.filer2:partage-sn-7M5cMEnk --op delete
N'espérez pas importer un disk après ça…
login
Importer ce disk:
# iscsiadm --mode node --targetname iqn.2012-09.fr.thierry-jaouen:partage-sn-7M5cMEnk --portal target.local.thierry-jaouen.fr --login
On jette un oeil dans “dmesg
” et on voit ce disk apparaître comme un disk physique par là: /dev/sd…
Par exemple, en /dev/sdb
.
A partir de maintenant, on peut jouer avec, comme sur un disk local…
session
# iscsiadm -m session
logout
Pour en finir avec ce disk, il faut retaper la même chose que ci-dessus, mais en remplacant “--login
” par “--logout
” :
# iscsiadm --mode node --targetname iqn.2012-09.fr.thierry-jaouen:partage-sn-7M5cMEnk --portal target.local.thierry-jaouen.fr --logout
Le “device” /dev/sdX
disparaît…
Tips
resize
On peut changer la taille d'un disk LVM, mais faire remonter ce changement à l'“Initiator” n'est pas sans risque.
Après avoir changer la taille sur le “target” , a coup de “resize2fs” et “lvresize”, il faut redémarrer le service !!
# /etc/init.d/iscsitarget restart [ ok ] Removing iSCSI enterprise target devices: :. [ ok ] Stopping iSCSI enterprise target service: :. [....] Removing iSCSI enterprise target modules: :FATAL: Module iscsi_trgt is in use. failed!
Et là, c'est le drame ! Y a pas de raison que ça “failed” !!!!
Donc, on recommence tout de suite:
# /etc/init.d/iscsitarget restart [ ok ] Removing iSCSI enterprise target devices: :. [ ok ] Removing iSCSI enterprise target modules: :. [ ok ] Starting iSCSI enterprise target service:. . ok
Ouf !
Sur le client/Initiator, il faut que le changement de taille soit détecté.
Seul moyen sans briser la session (quoiqu'elle l'est déjà un peu…) :
# iscsiadm -m node -p target.local.thierry-jaouen.fr --rescan
Voila.
Nouveaux Lun
# iscsiadm -m session --rescan