iSCSI

iSCSI (internet SCSI) est un protocole de la couche application permettant le transport de commandes SCSI sur un réseau TCP/IP.

http://fr.wikipedia.org/wiki/ISCSI

Concrètement, il permet de partage des disques (devices) directement en SCSI. Cela peut être très très utile lors de l'utilisation de Xen.

Ce Wiki est en deux partie : tout d'abord la partie client (comment un Linux peut se connecter sur un "serveur" iSCSI, quelque soit la cible : SAN propriétaire, autre Linux, etc. Ensutie, une partie serveur, où comment transformer une distribution GNU/Linux en target (cible) iSCSI.

Client iSCSI

Cette documentation se fait en root. Fait avec Debian Lenny.

Partons du principe que votre SAN est sur l'IP 192.168.50.11.

Installation de Open iSCSI

# aptitude install open-iscsi

Exploration

Pour découvrir un nœud sur le SAN :

# iscsiadm -m discovery -t st -p 192.168.50.11
192.168.50.11:3260,1 iqn.2000-08.com.datacore:sw01a-1

Le retour de cette commande indique qu'il existe bien quelque chose.

De côté de votre SAN, vous devrez accepter la connexion, et donner un volume à la machine qui demande la connexion (ça dépend de votre SAN, DRBD ou autre propriétaire).

Connexion

On va à présent se connecter sur tous les nœuds rencontrés (ici un seul, d'où le "all" de flemmard)

# iscsiadm -m node -L all

Attention, il est parfois nécessaire de se déloger, puis reloger pour bien voir le disque. Faites ceci pour vous déloger :

# iscsiadm -m node -U all

Puis à nouveau :

# iscsiadm -m node -L all

Enfin, pour vérifier que vous êtes connecté :

# iscsiadm -m session
tcp: [3] 192.168.50.11:3260,1 iqn.2000-08.com.datacore:sw01a-1

Observation

Il est temps d'observer la liste des disques :

Disk /dev/sdc: 2198.4 GB, 2198486384640 bytes
255 heads, 63 sectors/track, 267284 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1      267284  2146958698+  83  Linux

Serveur (Target) iSCSI

Installation

aptitude install iscsitarget iscsitarget-modules-`uname -r`

Exemple concret avec LVM

Voici un exemple de création de volume qui sera utilisé comme volume partagé. LVM c'est bien, c'est beau, c'est propre.

Créons donc un volume. La partition physique qui va contenir le volume LVM se nomme /dev/sda3.

Ajout du Physical Volume (pv) dans LVM :

pvcreate /dev/sda3

Création du Volume Group (vg) :

vgcreate vg0 /dev/sda3

Création du Logical Volume (lv) :

lvcreate -L50G -n storage_lun1 vg0

Le volume crée fait 50Gio et se nomme storage_lun1, situé dans le volume groupe vg0. Ce nom (storage_lun1) sera visible dans la suite de cet article.

Activation

nano /etc/default/iscsitarget

Modifier la ligne suivant comme ceci :

ISCSITARGET_ENABLE=true

Ensuite, nous aller créer notre premier "LUN" (pointeur vers un espace de stockage). Vous pouvez en créer autant que vous voulez, voici un exemple, ceci se déroule dans le fichier :

/etc/ietd.conf

Avec ceci chez moi :

Target iqn.2010-10.local.palatin:storage.lun1
        IncomingUser
        OutgoingUser
        Lun 0 Path=/dev/vg0/storage_lun1,Type=fileio
        Alias LUN1
        #MaxConnections  6

La forme doit être iqn.[date-expiration].reverse-dns:whatever.nomlun

Je vous invite fortement à consulter ce qui est commenté de base dans ce fichier, c'est très instructif. Dans mon cas, je ne fais pas de limite sur le nom d'utilisateur. Lun 0 Path indique le chemin soit vers le disque physique, le volume LVM ou encore un fichier. Dans notre cas, ce LUN pointe donc vers le logical volume "storage_lun1" crée un peu avant. L'Alias est un moyen simple de s'y retrouver. Notez que l'on peut limiter le nombre de connexions simultannée sur ce LUN.

Autorisation

Il faut maintenant autoriser des clients iSCSI à se connecter à notre LUN. Cette étape se déroule ici :

/etc/initiators.allow

Il vous faut ajouter le nom de votre LUN, puis les IP autorisés à se connecter à celle-ci, ce qui donne dans l'exemple précédent :

iqn.2010-10.local.palatin:storage.lun1 192.168.0.2 192.168.0.3

J'autorise ici 192.168.0.2 et 192.168.0.3 à se connecter à la LUN1.

Feu !

Let's roll !

/etc/init.d/iscsitarget start
iscsi/accueil.txt · Dernière modification: 2009/09/07 14:24 par plam
Haut de page
CC Attribution-Noncommercial-Share Alike 3.0 Unported chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0