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:58] 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 |
- | Maintenant il faut lancer une découverte des serveurs iSCSI cible : | + | Exemple de résultat attendu (vous verrez autant de nœuds qu'il y a de ports réseau sur la baie de stockage) : |
- | iscsiadm -m discovery -t sendtargets -p ISCSI-SERVER-IP-ADDRESS | + | 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 | ||
- | Si 192.168.1.60 est l'adresse IP d'un serveur iSCSI, entrer : | + | Se connecter à la cible : |
- | iscsiadm -m discovery -t sendtargets -p 192.168.1.60 | + | iscsiadm -m node -T iqn.xxxxxxxxxxxx -p 192.168.133.102:3260 -l |
- | Pour terminer, redémarrer une nouvelle fois le service : | + | Lister les LUN : |
- | /etc/init.d/open-iscsi restart | + | cat /proc/scsi/scsi |
- | ==== Formater un volume iSCSI ==== | + | Exemple de résultat |
+ | 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 | ||
- | 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 : | + | Pour identifier le nom du périphérique : |
tail -f /var/log/messages | tail -f /var/log/messages | ||
- | Si le lecteur est nommé par exemple ''/dev/sdc'', lancer la commande suivante pour créer des partitions : | + | Exemple de ligne à identifier : |
- | fdisk /dev/sdc | + | 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]] | ||
+ | |||
+ | 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 | ||
+ | |||
+ | 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 | ||
+ | |||
+ | === Astuce === | ||
+ | |||
+ | 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 ==== | ||
+ | |||
+ | Editer le fichier de configuration ''/etc/ietd.conf'' | ||
- | 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 | + |