Iscsi

De BlaxWiki
Révision datée du 6 mai 2013 à 16:51 par 217.174.199.129 (discussion)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Explication du protocol Iscsi (pris de http://www.linux-france.org/prj/inetdoc/cours/admin.reseau.iscsi/index.html)

Introduction[modifier]

Le iSCSI a pour but de fournir un emulateur d'un disque scsi en utilisant le reseau. Plus techniquement, cela permet d'avoir un block device a travers le reseau plutot qu'un montage NFS. Le serveur, via le iscsi, va donc considerer qu'il a un disque dur. Il existe 2 versions de iscsi, une pour noyau 2.4 (cisco iscsi), et une pour noyau 2.6 (open iscsi). La version pour noyau 2.4 est evidemment obsolete.

Installation[modifier]

Open ISCSI[modifier]

L'open iscsi est a present integre dans l'image des Centos 5 qui sont cree. Cela permet d'avoir et le noyau/module et le support iscsi (qui necessite les sources du noyau courant pour etre compile). Si une recompilation est necessaire, il suffit d'avoir les sources du noyau actuel (deja compile, les sources non compile ne suffiront pas), et de faire un make KSRC=<path to kernel src> install

Il ne faut donc qu'un seul initiatorname par serveur, mais un serveur peut avoir acces a plusieurs lun

Cote serveur. Une fois les binaires disponibles (donc il n'y a rien a faire sur les images preinstalles), il faut s'assurer que l'initiatorname est bien unique (au pire en recreer un avec iscsi-iname). Il est present dans le fichier /etc/iscsi/iscsi.initiatorname. Lancer ensuite la commande : iscsiadm -m discovery -t st -p <IP du NETAPP> -I default -P 1

Cela va lister l'ensemble des lun disponible sur le netapp. Comme le netapp va bloquer l'utilisation du lun uniquement a l'initiatorname du serveur, cela n'est pas grave au niveau securite. Cela implique par contre que l'initiatorname est bien unique.

La commande va donc lister les luns et creer des fichiers de ce type /etc/iscsi/nodes/<IQN du netapp>/<IP du netapp>,<port iscsi>,<port channel iscsi>/default. Si le fichier existe deja, cela va le remplacer. Pour activer la connexion iSCSI au lancement du daemon, il suffit donc de modifier le fichier default correspondant a l'ip du netapp (qui est donc sur le bon reseau) pour mettre

[...] node.startup = automatic [...] node.conn[0].startup = automatic

Le lun sera donc reconnu au lancement du daemon et accessible. Il reste ensuite a formatter le lun et a modifier le fichier /etc/fstab.iscsi pour y ajouter le montage (il sera lu au demarrage du script d'init si celui-ci a ete modifie pour utiliser les scripts /sbin/iscsi-mountall et /sbin/iscsi-umountall, ce qui est le cas sur l'image CentOS). La syntaxe du fichier est la meme que pour fstab.

Pour ajouter un lun a un serveur en possedant deja c'est extremement simple, il suffit de taper la commande : iscsiadm -m session -R . Cela va rescanner le netapp pour recuperer tout nouveau lun ou supprimer les anciens. Dans le cas d'une suppression un stop/start de open-iscsi est a preferer pour eviter des erreurs I/O sur la partition supprimee.

cisco iscsi (obsolete)[modifier]

Sous linux et plus particulierement redhat, l'installation du iscsi est tres simple. Elle est integre au script d'installation redhat pour la plus grande partie. Pour installer le iscsi il faut 2 elements. Les sources du noyau courant, les sources de iscsi.

Une fois les sources disponibles (dans /usr/src/linux), il suffit de faire un make/make install pour installer le iscsi. Une fois cela, fait, le iscsi est installe mais pas configure. Pour le configurer il faut cree le fichier /etc/iscsi.conf comme suit :

DiscoveryAddress=IP_DU_NETAPP
HeaderDigest=never
DataDigest=never
PortalFailover=no
Continuous=no
ImmediateData=yes

Une fois fait, il faut lancer iscsi (service iscsi start). Dans les logs du serveur, l'apparition d'un device (si le netapp est correctement configure) doit apparaitre. Il s'appelera generalement /dev/sda.

Il suffit ensuite de le partitionne et le formatter comme souhaite. (fdisk + mkfs.ext3 generalement).

Une fois formatte et partitionne, il faut creer le fichier /etc/fstab.iscsi. Cela servira a monter la partition iscsi au demarrage. La syntaxe est la meme que pour fstab. Afin de valider que tout fonctionne, il suffit de faire un service iscsi restart et voir si le ou les partitions ont ete montes.

Commandes utiles[modifier]

Pour connaître la liste des montages accessibles au serveur: iscsiadm -m node

L'id du lun est entre "[ ]"

Information diverses[modifier]

Pour Linux : partitionner avec fdisk le LUN iSCSI en alignant sa géométrie avec celle des blocs de 4096 bytes de WAFL (performances)