Différences entre les versions de « Iscsi »
| Ligne 42 : | Ligne 42 : | ||
formater en créant un nouveau volume. | formater en créant un nouveau volume. | ||
Pour que ce montage ce fasse automatiquement au démarage, il faut aller dans "configurer l'initiateur iscsi", "Volume et devices", cliquer sur "Autoconfigure", et dans le "Volume list" on doit voir la lettre montée | Pour que ce montage ce fasse automatiquement au démarage, il faut aller dans "configurer l'initiateur iscsi", "Volume et devices", cliquer sur "Autoconfigure", et dans le "Volume | ||
list" on doit voir la lettre montée | |||
</pre> | </pre> | ||
Version du 26 avril 2012 à 08:36
Explication du protocol Iscsi (pris de http://www.linux-france.org/prj/inetdoc/cours/admin.reseau.iscsi/index.html)
Introduction
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.
Configuration sur un Netapp
Creation du Lun
Créer un lun depuis l'interface web :
path : /vol/vol0/nomdulun (ou /vol/vol1 suivant ce qui est créé sur le netapp) lun protocol type : dépend de l'OS où sera monté le lun space reserved : à laisser cocher
Creation de l'initiator groups
Il faut donner au netapp l'initiator group qui est généré sur le serveur ou sera monté le lun (voir comment générer cet initiator groupe suivant l'OS) Sur le netapp : lun / initiator groups / add :
group name : sorte de description type : fcp (si connexion en fiber channel depuis le serveur) / iscsi (si connexion depuis le serveur via le reseau) initiators : l'initiator qui est généré par le serveur (on le trouve sur le serveur windows, dans l'iscsi initiator, onglet configuration "Initiator name")
On doit alors le voir dans la partie lun / initiator groups / manage. On va maintenant mapper (associer) cet initiator groups au lun créé. Dans lun / manage, cliquez sur "no maps" sur le lun en question, puis "add groups to map", choisir le bon group, et définir un lun id à 0. On ne peut pas avoir 2 id identiques dans un meme group.
On s'assurera que le lun est bien online via lun / manage. Il faudra aussi créer une interface networks dans le bon vlan / subnet correspondant à l'ip de storage sur le serveur.
Montage du lun sur windows
Il faut démarrer le service Iscsi (Microsoft iSCSI Initiator Service) et le mettre en automatique. Puis dans le panneau de configuration, via "configurer l'initiateur iscsi"
Dans l'onglet "Decouverte", cliquez sur "Decouvrir un portail", rentrer l'ip du netapp. Puis dans l'onglet "cible", cliquez sur "actualiser". On va avoir dans la partie "cibles découvertes" l'initiator iscsi du netapp. Il doit être en statut inactif, le selectionner, puis cliquer sur "connexion", la case "ajouter ... à la liste des cible favorites" doit être cochée. On doit maintenant retrouver cet initiator dans l'onglet "cibles favorites". En allant dans le gestionnaire d'ordinateur, ou dans la partie Stockage / Gestion des disques, on doit voir le lun qui n'est pas initialisé. Il faut donc l'initialiser puis le formater en créant un nouveau volume. Pour que ce montage ce fasse automatiquement au démarage, il faut aller dans "configurer l'initiateur iscsi", "Volume et devices", cliquer sur "Autoconfigure", et dans le "Volume list" on doit voir la lettre montée
Installation
Open ISCSI
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
La partie netapp se compose de 3 phases :
* Creation du Lun * Creation du groupe compose de l'initiatorname du serveur. Dans le cas de l'ajout d'un second lun a un serveur, cette phase n'est pas a realiser. * Association du lun et de groupe comportant l'initiatorname (pour que seul le serveur ait acces au lun).
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)
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
Pour connaître la liste des montages accessibles au serveur: iscsiadm -m node
L'id du lun est entre "[ ]"
Information diverses
Pour Linux : partitionner avec fdisk le LUN iSCSI en alignant sa géométrie avec celle des blocs de 4096 bytes de WAFL (performances)