Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
informatique:linux:open-iscsi [2008/04/23 14:54] benoit |
informatique:linux:open-iscsi [2018/09/06 19:10] (Version actuelle) |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Installation et configuration de l'initiateur (client) ====== | ||
| + | |||
| ==== Installation ==== | ==== Installation ==== | ||
| apt-get install open-iscsi | apt-get install open-iscsi | ||
| + | | ||
| + | ou | ||
| + | yum install iscsi-initiator-utils | ||
| + | |||
| + | |||
| ==== Configuration ==== | ==== Configuration ==== | ||
| - | Editer le fichier de configuration ''/etc/iscsi/iscsid.conf'' ou ''~/.iscsid.conf'' et configurer node.session.auth.username, node.session.auth.password et les autres paramètres de la façon suivante : | + | Il faut générer un identifiant iscsi pour le poste : |
| + | iscsi-iname | ||
| + | |||
| + | Exemple de résultat attendu : | ||
| + | iqn.2005-03.org.open-iscsi:7d70b64d277f | ||
| - | node.startup = automatic | + | Editer le fichier : ''/etc/iscsi/initiatorname.iscsi'' et insérer la châine générée : |
| - | node.session.auth.username = MY-ISCSI-USER | + | #GenerateName=yes |
| - | node.session.auth.password = MY-ISCSI-PASSWORD | + | InitiatorName=iqn.2005-03.org.open-iscsi:7d70b64d277f |
| - | discovery.sendtargets.auth.username = MY-ISCSI-USER | + | |
| - | discovery.sendtargets.auth.password = MY-ISCSI-PASSWORD | + | |
| - | node.session.timeo.replacement_timeout = 120 | + | |
| - | node.conn[0].timeo.login_timeout = 15 | + | |
| - | node.conn[0].timeo.logout_timeout = 15 | + | |
| - | node.conn[0].timeo.noop_out_interval = 10 | + | |
| - | node.conn[0].timeo.noop_out_timeout = 15 | + | |
| - | node.session.iscsi.InitialR2T = No | + | |
| - | node.session.iscsi.ImmediateData = Yes | + | |
| - | node.session.iscsi.FirstBurstLength = 262144 | + | |
| - | node.session.iscsi.MaxBurstLength = 16776192 | + | |
| - | node.conn[0].iscsi.MaxRecvDataSegmentLength = 65536 | + | |
| - | Pour prendre en compte la configuration, redémarrer le service ainsi : | + | Découvrir les target iSCSI : |
| - | /etc/init.d/open-iscsi restart | + | iscsiadm -m discovery -t sendtargets -p 192.168.133.102 |
| + | Exemple de résultat attendu (vous verrez autant de nœuds qu'il y a de ports réseau sur la baie de stockage) : | ||
| + | 192.168.132.101:3260,1 iqn.xxxxxxxxxxxx | ||
| + | 192.168.131.102:3260,2 iqn.xxxxxxxxxxxx | ||
| + | 192.168.130.101:3260,1 iqn.xxxxxxxxxxxx | ||
| + | 192.168.131.101:3260,1 iqn.xxxxxxxxxxxx | ||
| + | 192.168.130.102:3260,2 iqn.xxxxxxxxxxxx | ||
| + | 192.168.133.102:3260,2 iqn.xxxxxxxxxxxx | ||
| + | 192.168.132.102:3260,2 iqn.xxxxxxxxxxxx | ||
| + | 192.168.133.101:3260,1 iqn.xxxxxxxxxxxx | ||
| - | ==== découverte d'un serveur iSCSI ==== | + | Se connecter à la cible : |
| - | Maintenant il faut lancer une découverte des serveurs iSCSI cible : | + | iscsiadm -m node -T iqn.xxxxxxxxxxxx -p 192.168.133.102:3260 -l |
| - | iscsiadm -m discovery -t sendtargets -p ISCSI-SERVER-IP-ADDRESS | + | |
| - | Si 192.168.1.60 est l'adresse IP d'un serveur iSCSI, entrer : | + | Lister les LUN : |
| - | iscsiadm -m discovery -t sendtargets -p 192.168.1.60 | + | cat /proc/scsi/scsi |
| - | Pour terminer, redémarrer une nouvelle fois le service : | + | Exemple de résultat |
| - | /etc/init.d/open-iscsi restart | + | Host: scsi5 Channel: 00 Id: 00 Lun: 00 |
| + | Vendor: DELL Model: MD32xxi Rev: 0780 | ||
| + | Type: Direct-Access ANSI SCSI revision: 05 | ||
| + | Host: scsi5 Channel: 00 Id: 00 Lun: 02 | ||
| + | Vendor: DELL Model: MD32xxi Rev: 0780 | ||
| + | Type: Direct-Access ANSI SCSI revision: 05 | ||
| + | Host: scsi5 Channel: 00 Id: 00 Lun: 31 | ||
| + | Vendor: DELL Model: Universal Xport Rev: 0780 | ||
| + | Type: Direct-Access ANSI SCSI revision: 05 | ||
| + | Pour identifier le nom du périphérique : | ||
| + | tail -f /var/log/messages | ||
| + | Exemple de ligne à identifier : | ||
| + | Apr 26 16:05:06 localhost kernel: [2075842.768921] sd 5:0:0:2: [sdb] 3041000423 512-byte logical blocks: (1.55 TB/1.41 TiB) | ||
| + | | ||
| + | Pour formater le disque voir : [[fdisk]] | ||
| - | ==== Gérer un volume iSCSI ==== | + | Activer le disque au lancement du système : |
| + | iscsiadm -m node -T iqn.xxxxxxxxxxxx -p 192.168.133.102:3260 -o update -n node.startup -v automatic | ||
| - | === Formater un volume iSCSI === | + | Pour désactiver au démarrage : |
| + | iscsiadm -m node -T iqn.xxxxxxxxxxxx -p 192.168.133.102:3260 -o update -n node.startup -v manual | ||
| - | Après la phase de découverte on devrait voir un nouveau lecteur sur le système, voir ''/var/log/messages'' pour trouver son nom : | + | === Astuce === |
| - | tail -f /var/log/messages | + | |
| + | Le réseau et l'iSCSI sont démarrés bien après la détection initiale des disques sous Linux. Il est donc nécessaire de forcer à nouveau le montage. | ||
| + | Dans le cas de l'usage de LVM, il est nécessaire de re-scanner toutes les ressources de stockage une fois le réseau et l'iSCSI démarrés. Dans ce cas nous aurons recours à un script d'initialisation. | ||
| + | |||
| + | Vous pouvez donc créer le fichier ''/etc/init.d/lvmscan.sh'' avec le contenu suivant (destiné à Debian ou Ubuntu) : | ||
| + | #!/bin/sh | ||
| + | ### BEGIN INIT INFO | ||
| + | # Provides: lvmscan.sh | ||
| + | # X-Start-After: open-iscsi | ||
| + | # Required-Start: open-iscsi | ||
| + | # Required-Stop: | ||
| + | # Default-Start: 2 3 4 5 | ||
| + | # Default-Stop: 0 1 6 | ||
| + | # Short-Description: Rescan LVM volumes et mount them | ||
| + | ### END INIT INFO | ||
| + | |||
| + | # Le réseau et l'iSCSI sont démarrés bien après la détection initiale des disques sous Linux. | ||
| + | # Il est donc nécessaire de forcer à nouveau le montage. | ||
| + | # Dans le cas de l'usage de LVM, il est nécessaire de re-scanner toutes les ressources | ||
| + | # de stockage une fois le réseau et l'iSCSI démarrés. | ||
| + | # Dans ce cas nous avons recours à ce script. | ||
| + | case "$1" in | ||
| + | start) | ||
| + | # Detection des disques physiques | ||
| + | pvscan | ||
| + | # Detection des groupes de volumes | ||
| + | vgscan | ||
| + | # Detection des volumes | ||
| + | lvscan | ||
| + | # Reactivation de tous les volumes inactifs | ||
| + | for vol in $(lvscan |grep inactive |awk '{print $2}' |sed "s/'//g") | ||
| + | do lvchange -a y $vol | ||
| + | done | ||
| + | # Montage des volumes restants de la fstab | ||
| + | mount -a | ||
| + | ;; | ||
| + | stop) | ||
| + | echo "nothing to do" | ||
| + | ;; | ||
| + | esac | ||
| + | |||
| + | Pour activer le script au lancement du système (sous Debian ou Ubuntu) | ||
| + | update-rc.d lvmscan.sh defaults | ||
| + | |||
| + | ==== Désactiver et supprimer une cible iSCSI ==== | ||
| + | |||
| + | Pour désactiver : | ||
| + | iscsiadm -m node -T iqn.xxxxxxxxxxxx -p 192.168.133.102:3260 -u | ||
| + | |||
| + | Pour supprimer : | ||
| + | iscsiadm -m node -o delete -T iqn.xxxxxxxxxxxx -p 192.168.133.102:3260 | ||
| + | |||
| + | |||
| + | ====== Installation et configuration de la cible (Serveur) ====== | ||
| + | |||
| + | |||
| + | ==== Installation ==== | ||
| + | |||
| + | apt-get install scsi-target-utils | ||
| + | |||
| + | ==== Configuration ==== | ||
| - | Si le lecteur est nommé par exemple ''/dev/sdc'', lancer la commande suivante pour créer des partitions : | + | Editer le fichier de configuration ''/etc/ietd.conf'' |
| - | fdisk /dev/sdc | + | |
| - | Une fois les partitions créer, il en reste plus qu'a les formater... | + | Target iqn.2009-08.local.fog:storage.lvm |
| - | mkfs.ext3 /dev/sdc1 | + | # Users, who can access this target |
| + | # (no users means anyone can access the target) | ||
| + | #IncomingUser | ||
| + | #OutgoingUser | ||
| + | # Lun definition | ||
| + | # (right now only block devices are possible) | ||
| + | Lun 0 Path=/dev/hdb | ||
| + | # Alias name for this target | ||
| + | Alias iSCSI | ||
| + | # various iSCSI parameters | ||
| + | # (not all are used right now, see also iSCSI spec | ||
| - | ... Et à les monter : | + | ==== Lancement du service ==== |
| - | mkdir /iscsi | + | /etc/init.d/iscsi-target start |
| - | mount /dev/sdc1 /iscsi | + | |