Table des matières
Installation d'un client iSCSI
Tout d'abord un peu de vocabulaire : en iSCSI on parle d'initiator ( le client qui “initie” un acces ) et de target (le serveur qui propose la cible a l'initiateur)
Comme d'habitude pour l'installation on se basera sur une Debian Lenny fraichement installée en netinstall via boot PXE.
Pour l'installation de la partie serveur voir la doc ici mais si vous êtes sur cette page, c'est que vous avez déja du configurer votre target.
Installation des prérequis
Le module iscsi_tcp est inclus en standard dans les noyaux debian. Il suffit donc d'installer open-isci :
aptitude install open-iscsi
Configuration du client
La configuration s'effectue dans le fichier /etc/iscsi/iscsid.conf . Nous allons accéder au target défini lors de l'installation du serveur, en utilisant l'utilisateur “monUtilisateur” associé au mot de passe “monMotDePasse” :
discovery.sendtargets.auth.authmethod = CHAP discovery.sendtargets.auth.username = monUtilisateur discovery.sendtargets.auth.password = monMotDePasse node.session.auth.authmethod = CHAP node.session.auth.username = monUtilisateur node.session.auth.password = monMotDePasse
Si vous voulez que le noeud démarre automatiquement, changer “node.startup = manual” par “node.startup = automatic” dans ce fichier par exemple grace a la commande suivante :
sed -i -e "s/node.startup = manual/node.startup = automatic/" /etc/iscsi/iscsid.conf
Connexion au serveur
- Decouverte des targets offertes par le serveur (IP 10.31.192.36) :
iscsiadm -m discovery -t st -p 10.31.192.36
qui devrait vous renvoyer un résultat similaire à :
10.31.192.36:3260,1 iqn.2010-05.com.example.mamachine:cache-debian
- On peut ensuite initier une session sur ce target en utilisant :
iscsiadm -m node --targetname "iqn.2010-05.com.example.mamachine:cache-debian" --portal "10.31.192.36:3260" --login
Si tout ce passe bien vous devriez voir s'afficher quelque chose comme :
Logging in to [iface: default, target: iqn.2010-05.com.example.mamachine:cache-debian, portal: 10.31.192.36,3260] Login to [iface: default, target: .com.example.mamachine:cache-debian, portal: 10.31.192.36,3260]: successful
Il suffit ensuite de vérifier que vous voyez bien un “nouveau disque dur” a l'aide de la commande dmesg qui devrait afficher dans les dernieres lignes
[ 8702.186708] scsi2 : iSCSI Initiator over TCP/IP
[ 8703.443905] scsi 2:0:0:0: Direct-Access IET VIRTUAL-DISK 0 PQ: 0 ANSI: 4
[ 8703.492924] Driver 'sd' needs updating - please use bus_type methods
[ 8703.497677] sd 2:0:0:0: [sda] 140633010 512-byte hardware sectors (72004 MB)
[ 8703.492924] sd 2:0:0:0: [sda] Write Protect is off
[ 8703.492924] sd 2:0:0:0: [sda] Mode Sense: 77 00 00 08
[ 8703.492924] sd 2:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 8703.498352] sd 2:0:0:0: [sda] 140633010 512-byte hardware sectors (72004 MB)
[ 8703.500518] sd 2:0:0:0: [sda] Write Protect is off
[ 8703.500524] sd 2:0:0:0: [sda] Mode Sense: 77 00 00 08
[ 8703.501422] sd 2:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 8703.501422] sda: sda1
[ 8703.509260] sd 2:0:0:0: [sda] Attached SCSI disk
- Si vous vouliez vous déconnecter de ce target, vous pourriez taper :
iscsiadm -m node --targetname "iqn.2010-05.com.example.mamachine:cache-debian" --portal "10.31.192.36:3260" --logout
Aller plus loin
Les nouveaux “disques durs” étants maintenants vus sur la machine, on peut les utiliser.
Pour formater ce volume, on peut utiliser par exemple :
mkfs.ext3 /dev/sda
Monter la partition automatiquement
Pour monter la partition automatiquement, il existe 2 méthodes :
- Utilisation des labels
- Utilisation des UUID
Utilisation des labels
Il faut tout d'abord définir le label de votre partition en suivant par exemple cette doc.
On utilise ensuite l'option _netdev dans le fichier /etc/fstab qui précise de ne tenter un montage qu'apres que le reseau de l'initiator soir up ) ainsi qu'un zero dans la derniere colone (“pass”) pour ne pas vérifier automatiquement le systeme de fichier au démarrage
voici par exemple une ligne concernant le montage d'un LUN extraite du fichier /etc/fstab :
LABEL=backports /export/mirror/debian-backports ext3 _netdev 0 0
Utilisation des UUID
Si vous préférez utiliser l'UUID a la place du label :
Pour obtenir l'UUID de votre partition, utilisez la commande blkid qui renvoie par exemple :
... /dev/sda: LABEL="backports" UUID="3bacbc00-6c54-4060-a0a4-b328ee5ffda9" SEC_TYPE="ext2" TYPE="ext3" ...
Voici la ligne correspondante a ajouter dans le fichier /etc/fstab :
UUID=3bacbc00-6c54-4060-a0a4-b328ee5ffda9 /export/mirror/debian-backports ext3 _netdev 0 0
Scanner les LUNs
Nous avons vu coté serveur que l'on peut ajouter des LUNs dynamiquement, c'est tres bien mais encore faut il pouvoir rafraichir coté client.
C'est possible entre autres avec ce superbe script de Kurt Garloff / Hannes Reinecke disponible ici : http://www.garloff.de/kurt/linux/ . Lien vers le script direct : http://www.garloff.de/kurt/linux/rescan-scsi-bus.sh-1.38 .
Utilisation du script, si par exemple vous venez d'ajouter le LUN 5 coté serveur :
# ./rescan-scsi-bus.sh-1.38 --luns=5 Host adapter 0 (iscsi_tcp) found. Scanning SCSI subsystem for new devices Scanning host 0 channels 0 for SCSI target IDs 0 1 2 3 4 5 6 7, LUNs 5 Scanning for device 0 0 0 5 ... NEW: Host: scsi0 Channel: 00 Id: 00 Lun: 05 Vendor: IET Model: VIRTUAL-DISK Rev: 0 Type: Direct-Access ANSI SCSI revision: 04 1 new device(s) found. 0 device(s) removed.
Le nouveau LUN est bien visible, et prêt a etre utilisé