Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
14 novembre 2016

htmlpdflatexmanmd




iscsi-iname

iscsi-iname

Outil de génération de nom d'initiateur iSCSI unique

OPTIONS

[-p=]prefix Préfixe passé au lieu de "iqn.2005-03.org.open-iscsi"
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-inq

iscsi-inq

Utilitaire de requête de donnée INQUIRY depuis un LUN iSCSI

OPTIONS

-i, --initiator-name=‹IQN› Spécifie le nom de l'initiateur que iscsi-ls utilise en se loggant dans la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-inq'
-e, --evpd=‹INTEGER› Par défaut affiche les données standards. à 1, affiche les pages VPD étendues.
-c, --pagecode=‹INTEGER› Spécifie quelle page VPD afficher quand evpd est demandé. Défaut: 0x00 qui représente les pages VPD supportées
-d, --debug=‹INTEGER› Mode débug

Exemples

Afficher la page INQUIRY standard
iscsi-inq iscsi://192.0.2.1/iqn.ronnie.test/1
Lister les pages disponibles
iscsi-inq -e 1 iscsi://192.0.2.1/iqn.ronnie.test/1
Affiche une page spécifique
iscsi-inq -e 1 -c 0x80 iscsi://192.0.2.1/iqn.ronnie.test/1
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-ls

iscsi-ls

Lister les targets iSCSI et les LUN

OPTIONS

-i, --initiator-name=‹IQN› Spécifie le nom de l'initiateur que iscsi-ls utilise en se loggant dans la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-ls'
-s, --show-luns Affiche en plus les LUN et leur types dans chaque cible découvertes
-d, --debug=‹INTEGER› Mode débug
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-swp

iscsi-swp

Utilitaire pour définir-obtenir la protection d'écriture dans un LUN iSCSI

OPTIONS

-i, --initiator-name=‹IQN› Spécifie le nom de l'initiateur que iscsi-ls utilise en se loggant dans la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-ls'
-s, --swp {on|off} Par défaut, affiche seulement le paramètre courant. Permet de définir le flag.
-d, --debug=‹INTEGER› Mode débug
^
14 novembre 2016

htmlpdflatexmanmd




iscsi-test-cu

iscsi-test-cu

Suite de test iSCSI/SCSI

OPTIONS

-i, --initiator-name=‹IQN› Tous les tests utilisent au moins une connection iSCSI sur la cible et le nom de l'initiateur par défaut est 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-test'
-I, --initiator-name-2=‹IQN› Certains tests utilisent une seconde connection à la cible. Défaut: 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-test-2'
-l, --list Liste tous les tests disponibles
-t, --test=‹family›|*[.‹suite›|*[.‹test›|*]] Spécifie la liste de tests à lancer. Sans cette option, tous les tests sont exécutés.
-d, --dataloss Par défaut, les tests sont non-destructeurs. Cette option permet d'exécuter les tests qui modifient les données
-s, --allow-sanitize L'opcode SBC SANITIZE prend en temps significatif avant de se terminer et les tests avec cet opcode ne sont pas prévus pour les tests normaux
-V, --Verbose-scsi Affiche toutes les commandes SCSI qui sont envoyées au périphérique, arguments, et résultat attendus.
-x, --xml Produit un résultat de test au format xml
^
14 novembre 2016

htmlpdflatexmanmd




iscsiadm

iscsiadm

Utilitaire d'administration open-iscsi

Description

   iscsiadm permet de découvrir et se connecter à des targets iSCSI, accéder et gérer la base de donnée open-iscsi. Open-iscsi n'utilise pas le terme de nœud tel que définis dans la RFC iSCSI, où un nœud est un simple initiateur ou target iSCSI. Il utilise le terme de nœud pour référer à un portail dans une target. Pour le mode session, un sid (session id) est utilisé. Il peut être affiché avec iscsiadm -m session -P 1.

OPTIONS

-a, --ip=ipaddr (sous-mode ping). ipv4 ou ipv6
-A, --portal_type=[ipv4|ipv6] (sous-mode flashnode du mode host et seulement avec l'opération new) Spécifie le type de portail pour la nouvelle entrée de nœud flash à créer.
-b, --packetsize=packetsize (sous-mode ping) Taille de paquet ping
-c, --count=count (sous-mode ping) nombre d'itérations ping
-C, --submode=op Spécifie le sous-mode pour mode. op doit être le nom d'un sous-mode
-d, --debug=debug_level Mode debug, de 0 à 8
-H, --host=[hostno|MAC] Spécifie l'hôte SCSI à utiliser pour l'opération. Peut être un numéro d'hôte iscsi assigné à l'hôte par la couche scsi du kernel, ou l'adresse MAC d'un hôte scsi
-i, --interval=interval (sous-mode ping) interval entre les itérations ping
-I, --interface=[iface] Interface iSCSI à utiliser pour l'opération. les interfaces iSCSI sont définies dans /etc/iscsi/ifaces. pour (modes discovery, node et iface) iSCSI hardware (qla4xxx), la configuration iface doit avoir l'adresse hardware (iface.hwaddress = adresse MAC du port) et le driver/transport_name (iface.transport_name). Le nom de l'interface est le nom du fichier de configuration iface. Pour iSCSI logiciel, la configuration doit avoir soit l'adresse hardware (iface.hwaddress) ou le nom de l'interface de la couche réseau (iface.net_ifacename) et doit avoir le driver/transport_name.
-k, --killiscsid=[priority] Actuellement la priorité doit être 0. Celà va immédiatement stopper toutes les opértions iscsid et stopper iscsid. Il ne déconnecte aucune session. Équivalent à killall iscsid.
-D, --discover (mode discovery) Découvre les targets en utilisant la découverte avec le recid correspondant au type de découverte et portail spécifiés. S'il n'y a pas d'enregistrement découvert, il est créé en utilisant les paramètres de découvertes dans iscsid.conf. Doit être passé en mode discoverydb pour instruire iscsiadm d'effectuer la découverte.
-L, --loginall=[all|manual|automatic] (mode node) Login pour toutes les sessions avec le nœud ou les valeurs conn passée à toute session en cours, excepté celles marquées onboot.
-m, --mode op Spécifie le mode. (discovery, discoverydb, node, fw, host iface ou session)
-n, --name=name (mode node) spécifie un nom de champ dans un enregistrement. en sous-mode flashnode du mode host, spécifie le nom d'un paramètre du nœud flash. À utiliser avec l'opérateur update
-o, --op=op Spécifie un opérateur de base de données

        new, delete, update, show, nonpersistent Pour tous les modes excepté fw.
        apply et apllyall mode iface
        login et logout sous-mode flashnode
        delete ne devrait pas être utilisé sur une session en cours. delete supprime un recid spécifié. En mode discovery, si iscsiadm effectue un découverte il supprime les enregistrements pour les portals qui ne sont plus retournés.
        new créé un nouvel enregistrement de bas pour un objet donné. En mode node, recid est le nom target et portal (IP:port). En mode iface, recid est le nom iface. En mode discovery, recid est le type portal et discovery. En mode session, new logs dans une nouvelle session en utilisant le même nœud et informations iface que la session spécifiée
        update Met à jours le recid avec le nom à la valeur spécifiée. En mode discovery, si iscsiadm effectue une découverte, recid, name et value ne sont pas nécesaires. update opère sur les portails retournées par les targets, et met à jours les enregistrements de nœud avec les informations du fichier de configuration et de la ligne de commande.
        show défaut pour les modes node, discovery et iface. Également utiisés s'il n'y a pas de commandes passées dans le mode session et qu'un sid est passé. name et value sont ignorés
        nonpersistent Instruit iscsiadm de ne pas manipuler la base
        apply Les paramètres réseaux prennent effet sur l'iface spécifié
        applyall Les paramètres réseaux prennent effet sur tous les ifaces dont l'adresse MAC ou le numéro d'hôte correspond.
        login se log dans l'entrée de nœud flash spécifié
        logout Se déconnecte de l'entrée de nœud flash spécifié

-p, --portal=ip[:port] (mode discovery ou pour les opérations node) Utilise le portail spécifié. défaut pour port: 3260.
-P, --print=printlevel (mode node) affiche les nœud en arborescence.
-T, --targetname=targetname Utilise la target spécifiée
-r, --sid=sid | sysfsdir Utiliser le sid spécifié, ou utilise le chemin sysfs (ex: /sys/devices/platform/hostH/sessionS/targetH:B:I/H:B:I:L)
-R, --rescan (mode session) si le sid est également passé, rescan la session, sinon rescan toutes les sessions courantes.
-s, --stats Affiche des statistiques de session ou d'hôte.
-S, --show (mode node et session) En affichant les enregistrements, ne cache pas les valeurs masquée, comme le secret CHAP
-t, --type=type Doit être sendtargets (ou st), slp, isns ou fw (non supporté).
-u, --logout (mode node et session) déconnection du record spécifié
-U, --logoutall=[all,manual,automatic] déconnection de toutes les sessions avec le nœud ou les valeurs conn startup passé, ou toutes les sessions en cours, excepté celles marquée onboot.
-v, --value=value Spécifie une valeur à utiliser avec l'opérateur update
-x, --index=index index de l'entité sur laquelle opérer

Types de découverte

SendTargets protocole iSCSI natif qui permet à chaque target iSCSI d'envoyer une liste de targets disponibles à l'initiateur.
SLP Optionnellement, un target iSCSI peut utiliser SLP pour annoncer la disponibilité des targets.
iSNS iSNS enregistre les informations d'enregistrement sur les volumes de stockage dans un grand réseau.
fw De nombreux NIC et systèmes contiennent un mini initiateur iSCSI à utiliser au boot.

Codes de sortie

0 ISCSI_SUCCESS - commande réussie
1 ISCSI_ERR - Code d'erreur générique
2 ISCSI_ERR_SESS_NOT_FOUND - session non trouvée
3 ISCSI_ERR_NOMEM - impossible d'allouer des ressource pour l'opération
4 ISCSI_ERR_TRANS - Problème de connexion
5 ISCSI_ERR_LOGIN - erreur de login
6 ISCSI_ERR_IDBM - Erreur d'accès/gestion DB
7 ISCSI_ERR_INVAL - argument invalide
8 ISCSI_ERR_TRANS_TIMEOUT - timer de connexion expiré
9 ISCSI_ERR_INTERNAL - Erreur internel iscsi/kernel
10 ISCSI_ERR_LOGOUT - erreur de déconnexion
11 ISCSI_ERR_PDU_TIMEOUT - iSCSI PDU timedout
12 ISCSI_ERR_TRANS_NOT_FOUND - module de transport iSCSI non chargé dans le kernel
13 ISCSI_ERR_ACCESS - problème de permission d'accès iscsid ou de la commande iscsiadm
14 ISCSI_ERR_TRANS_CAPS - le module transport ne supporte pas l'opération
15 ISCSI_ERR_SESS_EXISTS - le session est connectée
16 ISCSI_ERR_INVALID_MGMT_REQ - requête IPC MGMT invalide
17 ISCSI_ERR_ISNS_UNAVAILABLE - service iSNS non supporté
18 ISCSI_ERR_ISCSID_COMM_ERR - une lecture/écriture iscsid a échoué
19 ISCSI_ERR_FATAL_LOGIN - erreur de connection iSCSI fatal
20 ISCSI_ERR_ISCSID_NOTCONN - Connection à iscsid impossible
21 ISCSI_ERR_NO_OBJS_FOUND - records/targets/sessions/portals non trouvé
22 ISCSI_ERR_SYSFS_LOOKUP - recherche dans sysfs impossible
23 ISCSI_ERR_HOST_NOT_FOUND - recherche d'hôte impossible
24 ISCSI_ERR_LOGIN_AUTH_FAILED - login failed, problème d'autorisation
25 ISCSI_ERR_ISNS_QUERY - requête iSNS échoué
26 ISCSI_ERR_ISNS_REG_FAILED - enregistrement/désenregistrement iSNS échoué

Exemples

Découvrir les target à une ip donnée
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.1.10 --discover
login, doit utiliser un enregistrement de node trouvé par la découverte
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --login
logout
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --logout
lister les enregistrements de nœuds
iscsiadm --mode node
Afficher toutes les données pour un enregistrement nœud donné
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260

Fichiers

/etc/iscsi/iscsid.conf Fichier de configuration lu par iscsid et iscsiadm au démarrage
/etc/iscsi/initiatorname.iscsi fichier contenant les initiatorname et initiatoralias iSCSI lu par iscsid et iscsiadm au démarrage
/etc/iscsi/nodes/ Base de configuration persistante Open-iSCSI
/etc/iscsi/send_targets Répertoire contenant les portails
^
14 novembre 2016

htmlpdflatexmanmd




iscsid

iscsid

Service Open-iSCSI

   iscsid implément le chemin de contrôle du protocole iSCSI, plus certaines facilités de gestion.

OPTIONS

[-c|--config=]config-file Spécifie le fichier de configuration. Défaut: /etc/iscsi/iscsid.conf
[-i|--initiatorname=]iname-file Lit le nom de l'initiateur depuis iname-file au lieu de /etc/iscsi/initiatorname.iscsi
[-f|--foreground] Ne lance pas en tâche de fond
[-d|--debug=]debug_level Affiche des informations de debuggage, de 0 à 8
[-u|--uid=]uid UID du processus
[-g|--gid=]gid GID du processus
[-n|--no-pid-file] Ne pas écrire de PID dans un fichier
[-p|--pid=]pid-file Écris le PID dans le fichier spécifié. Défaut: /run/iscsid.pid

Fichiers

/etc/iscsi/iscsid.conf Fichier de configuration lu par iscsid et iscsiadm au démarrage
/etc/iscsi/initiatorname.iscsi fichier contenant les initiatorname et initiatoralias iSCSI lu par iscsid et iscsiadm au démarrage
/etc/iscsi/nodes/ Base de configuration persistante Open-iSCSI
^
14 novembre 2016

htmlpdflatexmanmd




iscsid.conf

iscsid.conf

fichier de configuration pour open-iscsi

Options iscsid

iscsid.startup Spécifie la commande de démarrage de iscsid si vous souhaitez que iscsid démarre quand un outil iscsid doit y accéder, au lieu des scripts d'initialisation.
iscsid.safe_logout (bool) Vérifie les montages actifs dans le périphériques accessibles via une session et refuse de se déconnecter s'il y en a. Défaut: no.

Options NIC/HBA

open-iscsi peut créer une session et la lier à un NIC/HBA. pour la configuration, voir un exemple de fichier de configuration iface

Options de démarrage

node.startup = [automatic|manual] Définis le type de démarrage de session au lancement de iscsid. Défaut: manual
node.leading_login (bool) pour les nœuds 'automatic', à yes tente de se connecter sur chaque iface disponible jusqu'à un succès, puis stop. À no, tente de se connection à toutes les iface simultanément.

Options CHAP

node.session.auth.authmethod = CHAP Active l'authentification CHAP. Défaut: None
node.session.auth.username = username username pour l'authentification CHAP
node.session.auth.password = password Mot de passe pour l'authentification CHAP
discovery.sendtargets.auth.authmethod = CHAP Active l'authentification CHAP pour une session discovery sur un target. Défaut: None
discovery.sendtargets.auth.username = username username CHAP de session discovery pour l'authentification de l'initiateur par les targets.
discovery.sendtargets.auth.password = password mot de passe CHAP de session discovery
discovery.sendtargets.auth.username_in = username_in username CHAP de session discovery pour l'authentification des targets par l'initiateur
discovery.sendtargets.auth.password_in = password_in mot de passe CHAP de session discovery

Options timeouts

node.session.timeo.replacement_timeout Délai en secondes de rétablissement de session après une erreur SCSI. À 0 l'IO échoue immédiatement, ‹ 0, l'IO reste en file d'attente indéfiniment. Défaut: 120
node.conn[0].timeo.login_timeout Délai pour accomplir le login, en seconde. Défaut: 15
node.conn[0].timeo.logout_timeout Délai pour la déconnection complète, en secondes. Défaut: 15
node.conn[0].timeo.noop_out_interval Délai avant d'envoyer un ping une fois connecté, défaut: 5
node.conn[0].timeo.noop_out_timeout Délai pour une réponse Nop-out avant d'échouer. Avec dm-multipath, l'IO échoue sur la couche multipath. Défaut: 5
node.session.err_timeo.abort_timeout Délai d'attente pour une réponse avant d'échouer l'opération et tenter un reset lun. défaut: 15
node.session.err_timeo.lu_reset_timeout Délai d'attente pour une réponse d'unité logique avant l'échouer l'opération et tenter de rétablir la session. Défaut: 30
node.session.err_timeo.tgt_reset_timeout Délait d'attente pour une réponse d'un target avant d'échouer l'opération et tenter de rétablir une session. Défaut: 30

Options retry

node.session.initial_login_retry_max Pour spécifier le nombre de fois que iscsid devrait retenter un login si les tentatives de login échouent à cause de l'expiration node.conn[0].timeo.login_timeout, modifier cette option. Ce compteur, avec node.conn[0].timeo.login_timeout, déterminent le login initial. node.session.initial_login_retry_max est multiplié par node.conn[0].timeo.login_timeout pour en déterminer la quantité. défaut: 8

Options de session et de file de périphériques

node.session.cmds_max Contrôle le nombre de commande mis en file d'attente pour la session. Défaut: 128
node.session.queue_depth Contrôle la profondeur de la file d'attente du périphérique. Défaut: 32

Options de performances système

node.session.xmit_thread_priority Pour iscsi_tcp et ib_iser, chaque session a un thread utilisé pour transmettre ou mettre en file les données vers le hardware. Cette option définis la priorité de thread. Défaut: -20.

Options iSCSI

node.session.iscsi.InitialR2T Active le contrôle de flux R2T (ex: l'initiateur doit attendre une comande R2T avant d'envoyer des données)
node.session.iscsi.InitialR2T Désactive le contrôle de flux R2T (ex: l'initiateur a un R2T initial implicite "FirstBurstLength" à l'offset 0). Défaut: No
node.session.iscsi.ImmediateData Àctive les données immédiates (ex: l'initiateur envoie des données non-solicitée avec les paquets de commande iSCSI). Défaut: Yes
node.session.iscsi.FirstBurstLength Nombre d'octets entre 512 et 2^24-1 des données non-solicitée que l'initiateur peut envoyer dans un PDU iSCSI à un target. Défaut: 262144
node.session.iscsi.MaxBurstLength Payload SCSI max que l'initiateur négocie avec le target, entre 512 et 2^24-1 octets. Défaut: 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength Nombre d'octets entre 512 et 2^24-1 que l'initiateur peut reçevoir dans un PDU iSCSI d'un target. Défaut: 262144
node.conn[0].iscsi.MaxXmitDataSegmentLength Nombre d'octets entre 512 et 2^24-1 que l'initiateur envoie dans un PDU iSCSI à un target. Défaut: 0 ( utilise MaxRecvDataSegmentLength)
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength Spécifie le nombre max d'octets de données que l'initiateur peut reçevoir dans un PDU iSCSI d'un target durant une session de découverte, entre 512 et 2^24-1. Défaut: 32768
node.conn[0].iscsi.HeaderDigest = CRC32C,None Permet aux targets de contrôler la vérification de hash, par ordre de préférence. None en premier indique que l'initiateur préfère ne pas vérifier le hash. Si une seule valeur est spécifié, force ce mode. Défaut: None
node.conn[0].iscsi.DataDigest = CRC32C,None Permet aux targets de contrôler la vérification de hash, par ordre de préférence. Défaut: None

Options de contournement

node.session.iscsi.FastAbort (Bool) Certains target comme IET préfèrent, une fois que l'initiateur a envoyé une fonction de gestion de tâche comme ABORT TASK ou LOGICAL UNIT RESET, ne plus répondre aux PDU comme R2T. Défaut: Yes (permet ce comportement)
^
14 novembre 2016

htmlpdflatexmanmd




iscsistart

iscsistart

Outil de boot iSCSI

   iscsistart démarre une session avec les paramètres qui lui sont passés, ou en utilisant les informations de boot iBFT ou Open Firmware (OF). Ce programme ne devrait pas être utilisé pour gérer les sessions. Il est principalement utilisé pour démarrer les sessions utilisées pour le boot root iSCSI

OPTIONS

[-i|--initiatorname=]name Définis initiatorName
[-t|--targetname=]name Définis TargetName
[-g|--tgpt=]N Définis le target portal group tag
[-a|--address=]A.B.C.D Définis l'adresse IPv4
[-p|--port=]N Définis le port
[-u|--username=]N définis le username
[-w|--password=]N Mot de passe
[-U|-username_in=]N Définis le username entrant
[-W|--password_in=]N Mot de passe entrant
[-d|--debug=]debug_level Mode debug
[-b|--fwparam_connect] Créé une session sur le target en utilisant les infos iBFT ou OF
[-N|--fwparam_network] Définis le réseau tels que spécifié par iBFT ou OF
[-P|--param=]NAME=VALUE Définis le paramètre spécifié. Peut être spécifié plusieurs fois
^
14 novembre 2016

htmlpdflatexmanmd




iscsi_discovery

iscsi_discovery

Découvrir des targets iSCSI

   Effectue des découvertes sendtargets sur l'IP spécifié. Si un record est généré, tente de se logger au portail en utilisant le transport préféré. (défaut: TCP) Si le login réussi, marque le portail pour le login automatique et se déconnecte.

OPTIONS

[-p=]port-number Définis le port. Défaut: 3260
[-d] Mode debug
[-t=]transport-type Définis le type de transport. Défaut: TCP
[-f] Force un transport spécifique
[-m] Démarrage manuel, ne définis pas de démarrage automatique
[-l] Se log sur les nœuds découverts. Défaut: false
^
14 novembre 2016

htmlpdflatexmanmd




isnsadm

isnsadm

Utilitaire client iSNS

   isnsadm est un utilitaire permettant d'interragir avec un serveur iSNS.

OPTIONS

-c filename, --config filename Spécifie le fichier de configuration. Défaut: /etc/isns/isnsadm.conf
-d facility, --debug facility Active de débug. facility peut être:

        socket Transmission/réception réseau
        auth Informations liées à l'authentification et la sécurité
        message couche du protocole iSNS
        state État de la base de données
        scn Message SCN (state change notification)
        esi message ESI (entity status inquiry)
        all Tout

--local Utilise un socket Unix pour dialoguer avec le serveur iSNS. Uniquement disponible par root
-s servename, --server servername Serveur à utiliser.
--control Identité d'un nœud de contrôle. Les nœud de contrôle sont spéciaux et ont plus de droits d'accès et modification dans la base que les nœuds de stockage normaux.
--key attr=value mode enregistrement uniquement, et permet de spécifier une clé.
--keyfile=filename En créant une stratégie pour un nouveau client iSNS, isnsadm est capable de générer une clé DSA pour le client. La partie publique est stockée dans l'objet stratégie, et la partie privée est stockée dans le fichier spécifié par l'option keyfile.

Attributs supportés

   La plupart des modes prennent une liste d'attributs comme argument sur la ligne de commande. Le nommage et la syntaxe de ces attributs sont les même pour tous les modes. Cependant, certains mode ne supporte qu'un jeu limité d'attribut.
   Les attributs sont généralement donnés en name=value. Les attributs vides sont supportés.

entity-id (alias eid)(tag 1) Network Entity
entity-prot (tag 2) Network Entity
entity-index (tag 7)
iscsi-name (tag 32) iSCSI Storage Node
iscsi-node-type (tag 33)
iscsi-alias (tag 34)
iscsi-idx (tag 36)
iscsi-authmethod (tag 42)
portal-addr (tag 16)
portal-port (tag 17)
portal-name (tag 18)
portal-esi-port (tag 20)
portal-esi-interval (tag 21)
portal-idx (tag 22)
portal-scn-port (tag 23)
portal-group-index (tag 52) Portal Group
pg-name (tag 48)
pg-addr (tag 49)
pg-port (tag 50)
pg-tag (alias pgt)(tag 51)
pg-idx (tag 52)
dd-id (tag 2065) Discovery Domain
dd-name (tag 2066)
dd-member-iscsi-idx (tag 2067)
dd-member-name (tag 2068)
dd-member-fc-name (tag 2069)
dd-member-portal-idx (tag 2070)
dd-member-addr (tag 2071)
dd-member-port (tag 2072)
dd-features (tag 2078)
policy-name (alias spi) Policy Object
policy-key -
policy-entity -
policy-node-type -
policy-object-type -
policy-functions -

Attributs Portail

   Les informations de portail sont transportés par 2 attributs séparés dans iSNS; un attribut address maintenant l'adresseIP, et l'attribut port maintenant le numéro de port et le protocole utilisé. isnsadm supporte une notation représentant un portail comme un pseudo-attribut. Ces 2 syntaxes sont équivalentes:

  

Attributs de champ de bits

   Les attributs iSNS sont des mots représentant un champ de bit. isnsadm affiche et parcour ces attributs au format human-readable au lieu d'utiliser la valeur numérique. En spécifiant un attribut bitfield, il est possible de combiner les caractères '+' ou ',': node-type=control+initiator

Mode enregistrement

   Le mode enregistrement est séléctionné en utilisant l'option --register, suivi par une liste d'un ou plusieurs objets à enregistrer avec le serveur iSNS. Par défaut, cela créé une entité réseau pour le client s'il n'en existe pas, et place les nouveau objets dedans. Généralement, on enregistre tous les objets pour une entité réseaux en une seule opération. Chaque objet est spécifié comme un type, optionnellement suivis par une liste d'attributs: target=iqn.2005-01.org.open-iscsi.foo:disk1,alias=disk1. Les types d'objets suivants sont supportés:

        entity=name Indique au serveur de grouper tous les objets dans l'objet conteneur Network Entity. Normalement, le serveur iSNS assigne automatiquement un nom d'entité qui est en phase avec ses stratégies, et il n'y a pas besoin de le spécifier explicitement.
        initiator[=name] Enregistre ne nœud de stockage iSCSI de type initiator.
        target[=name] Enregistre un nœud de stockage de type target.
        control[=name] Enregistre un nœud de stockage de type control.
        portal=[address:port/proto] Enregistre un portail en utilisant l'adresse donnée.
        pg Ergesitre un groupe de portail joignant le portail et nœud précédant. Les groupes de portail peuvent être utilisés pour décrire les portails préférés pour un nœud donné.

   Il y a 2 options de ligne de commande additionnels utilisés exclusivement avec le mode enregistrement. --replace recréé une nouvelle entité réseau, le serveur supprime l'ancien et tous les nœud et portails qu'il contient. --key permet de remplace simplement une partie de l'entité réseaux.

par exemple, supposons une entité contenant le portail 10.1.1.1:860, et l'adresse du client changé en 10.2.7.7:
isnsadm --replace --key portal=10.1.1.1:860 portal=10.2.7.7:860

   L'option --key ne reconnaît qu'un sous-jeu d'attributs:

        Entity eid=identifier
        Portail portail=address:port
        iSCSI Node iscsi-name=name

Mode requête

   Le mode Query consiste d'une liste de paires attr=value. Tous les attributs doivent appartenir au même type d'objet. Il est également possible de spécifier un nom d'attribut sans valeur qui match tout objet possédant un tel attribut sans regarder sa valeur.

Mode liste

   Affiche tous les objets d'un type donné, optionnellement restreint aux valeurs d'attribut correspondant. Les argument sont des noms de type (entities, nodes, portails, dds, ddsets, portail-groups et policies"

Mode dé-enregistrement

   deregistration supporte le même jeu d'attributs que le mode query.

Discovery Domain Registration

   Ce mode permet d'enregistrer un domaine de découverte ou d'ajouter de nouveaux membres. Seule des attributs de domaine de découvert sont reconnus.

Discovery Domain Deregistration

   Permet de dé-enregistrer un domaine de découverte. Supporte le même jeu d'attributs que le mode query.

Enrôlement client

   Ce mode ne fonctionne que quand le serveur reconnaît le client comme ayant des capacités de nœud contrôle, qui est possible de 2 manières, avec --local en root sur l'hôte isnsd, ou --control. Pour enrôler un client, utiliser l'option --enroll, suivis par le nom source du client à enrôler. La chaîne sera utilisé comme nom de stratégie de sécurité que le client utilise pour s'identifier lui-même. Les attributs supportés sont:

name (alias spi) Nom de stratégie
key Clé publique du client
entity Identifiant d'entité assignée
node-type Types de nœud permis
node-name Noms de nœud permis
functions Bitmap des fonctions permises
object-type Masque d'accès aux objets

   Note: pour générer une clé DSA, un jeu de paramètres DSA doit être installé. Par défaut isnsadm s'attend à le trouver dans /etc/isns/sda.params. Ces paramètres sont créé par isnsd --init une fois sur le serveur. Alternativement, la commande suivante peut être utilisée: openssl dsaparam 1024 -out /etc/isns/dsa.params

Exemples

Initialiser les paramètres et clé DSA du serveur
isnsd --init
Créer un objet policy pour un nœud nommé isns.control, en lui octroyant les privilèges control
isnsadm --local --keyfile=control.key --enroll isns.control node-type=ALL functions=ALL object-type=ALL
Créer un objet nœud de stockage pour la machine de gestion
isnsadm --local --register control
dans cette machine, enrôler les hôtes supplémentaires
isnsadm --control --keyfile=somehost.key --enroll iqn.2005-01.org.open-iscsi.somehost node-type=target+initiator
Pour créer un domaine de découverte, et y ajouter de nœuds
isnsadm --control --dd-register dd-name=mydomain member-name=iqn.org.bozo.client iqn.org.bozo.jbod ...
Ajouter des membres à un DD existant
isnsadm --control --dd-register dd-id=42 member-name=iqn.com.foo member-name=iqn.com.bar
l'ID DD peut être obtenu avec
isnsadm --control --query dd-name=mydomain
En mode management, enregistrer un nœud et portail dans un hôte nommé client.bozo.org
isnsadm --control --register entity=client.bozo.org initiator=iqn.org.bozo.client portal=191.168.7.1:860
^
14 novembre 2016

htmlpdflatexmanmd




isnsadm.conf

isnsadm.conf, isnsd.conf, isnsdd.conf

Fichiers de configuration iSNS

   Tous les utilitaires Open-iSNS lisent leur configuration dans un fichier dans /etc/isns. Il y a un fichier par application, isnsd, isnsadm, et isnsdd. Des valeurs de délai acceptent une unité: d (jour), h (heure), m (minute), ou s (seconde).

Options génériques

HostName Par défaut, les applications Open-iSNS récupèrent le nom d'hôte de la machine avec gethostname(3), et utilisent une recherche DNS pour retrouver le nom canonique. Cette option remplace ce mode
SourceName Obligatoire pour toutes les applications Open-iSNS. Devrait être le nom qui identifie le client de manière unique. Il y a 2 lectures de la rfc4171, une exige qun nom iSCSI tel que 'iqn.2001-04.com.example.host', et une autre suggère un format plus simple, tel que fqdn du client.
IQNPrefix Spécifie le préfixe de nom qualifié iSCSI; doit être sous la forme iqn.YYYY-MM, YYYY étant l'année et MM le mois.
ServerAddress (client) Spécifie le nom d'hôte ou l'adresse du serveur iSNS à contacter.
SLPRegister (serveur) À 1, le service s'enregistre lui-même avec le service SLP. Cela permet aux clients de contacter le serveur sans avoir à configurer d'adresse statiquement.
PIDFile (serveur) Spécifie le nom du fichier pid. Défaut: /var/run/isnsd.pid

Options liée à la base de données

Database Spécifie comment la base est stockée. Vide, la base est conservée en mémoire, sinon, c'est le répertoire où isnsd conserve sa base.
DefaultDiscoveryDomain iSNS définis la visibilité des autres nœuds en utilisant les Discovery Domains. Un nœud de stockage A ne verra que le nœud de stockage B, s'ils sont membres du même domaine de découverte. À 1, indique à isnsd de créer un domaine de découverte virtuel, qui maintient tous les nœuds qui ne font pas partie d'un domaine de découverte configuré administrativement.
RegistrationPeriod Le serveur iSNS peut purger les entités enregistrées après une certaine période d'inactivité. Les clients qui s'enregistrent sont supposés rafraîchir leur enregistrement dans cette période.
ESIRetries Open-iSNS est capable de monitorer l'accessibilité des nœuds de stockage et leur portails en utilisant une fonctionnalité de protocole appelé ESI (Entity status inquiry). Les clients demandent à superviser ESI en enregistrant un port ESI avec chaque portail. Le serveur envoie des messages ESI à ces portails à interval régulier. Si le portail échoue à répondre plusieurs fois, il est considéré mort, et sera supprimé de la base. ESIRetries spécifie le nombre max de tentative. Défaut: 3
ESIMinInterval interval ESI minimum. Défaut: 60 secondes
ESIMaxInterval Interval ESI maximum. Défaut: 10 minutes
SCNRetries Les clients iSNS peuvent enregistrer leur message SCN (State Change Notification) reçus pour connaître les changements dans la base iSNS. Spécifie le nombre de tentatives de transmission d'une message SCN par le serveur avant abandon. Défaut: 3
SCNCallout Chemin du programme helper que isnsdd invoque quand il traite un SCN d'un serveur. Ce programme est invoqué avec un argument indiquant le type d'événement (add, update, ou remove), suivi par une liste d'attributs name=value, en utilisant les noms et conventions décris dans isnsadm.

Options liées à la sécurité

   Le standard iSNS définis une méthode d'authentification basée sur l'algorithme DSA. Les participants dans l'échange authentifient les messages en ajoutant un bloc d'authentification contenant un horodatage, une chaîne identifiant la clé utilisée, et une signature numérique du message. La même méthode est également utilisée par SLP.

   La chaîne contenue dans la bloc d'authentification est référée au SPI (Security Policy Index). Cette chaîne peut être utilisée par le serveur pour rechercher la clé publique du client; donc la chaîne peut être utilisée comme nom du fichier de clé publique dans un répertoire, ou pour récupérer un certificat dans LDAP.

   Pour les applications clientes Open-iSNS, il y a seulement 2 clés: la clé privée du client, utilisée pour signer les message qu'il envoie au serveur, et la clé publique du serveur, utilisée pour vérifier la signature des messages du serveur.

   Le serveur iSNS doit, en plus de sa clé privée, accéder à toutes les clés publiques des clients qui vont communiquer avec lui.

Security Active l'authentification DSA. à 1, le client signe tous les message, et s'attend à des messages serveur signés.
AuthName Chaîne utilisée come SPI dans tous les messages sortants qui ont un bloc auth. Défaut: le nom d'hôte (voir l'option HostName)
AuthKeyFile Chemin de la clé DSA encodé PEM. Défaut: /etc/isns/auth_key
ServerKeyFile (client), fichier contenant la clé publique DSA encodé PEM du serveur. Défaut: /etc/isns/server_key.pub
KeyStore (serveur) spécifie l'emplacement des clés.
Auth.ReplayWindow Pour compenser le décalage d'horloge entre 2 hôtes, Open-iSNS applique un léger flou en comparant les horodatages contenus dans le message et l'horloge système. Défaut: 5m
Auth.TimestampJitter En vérifiant les messages entrant, Open-iSNS vérifie que les horodatages envoyés par le pair sont augmenté monotoniquement. Pour compenser le réordonnancement des messages par le réseaux, un jitter est accepté. Si un horodatage d'un message entrant n'est pas avant cette durée en seconde, le message est accepté. Défaut: 1s

Stockage de clé et stratégie

   L'implémentation actuelle supporte 2 types de stockage de clé. Le premier utilise un simple répertoire pour stocker les clés publiques, chaque clé a un fichier PEM et nommé par le SPI du client. Ce type n'est pas recommandé puisqu'il ne stock aucune information de stratégie.

   L'approche recommandé est d'utiliser une base de donnée. Celà utilise des objets de stratégie spécifique aux vendeurs pour gérer les chaîne SPI, clé publique, noms d'entité, nom de source et d'autres bits de statégie. La base de données est configurée en définissant l'option KeyStore à la valeur DB:. Les objets de stratégie Open-iSNS ont les attributs suivants, en plus du SPI:

Source Nom de nœud source que le client doit utiliser. Défaut: la chaîne SPI
Functions bitmap détaillant quelles fonctions le client peut invoquer. Les noms de bit correspondent aux noms cours utilisé dans la rfc4711, tel que DevAttrReg, DevAttrQry, etc. Défaut: autorise l'enregistrement, requête et désenregistrement, et SCNRegister
Entity name C'est le nom de l'entité assigné au client. Si définit, un enregistrement par le client n'est pas autorisé avec un autre nom. Si le client s'enregistre sans identifiant d'entité, le serveur le nom donné par la stratégie. Défaut: pas de restriction
Object access Champ de bits de permission d'accès pour chaque type d'objet (lecture, écriture).
Node types Champ de bits décrivant quels types de nœud de stockage un client peut enregistrer. (target, initiator ou control). Défaut: initiator uniquement.

Options liées au réseau

Network.MaxSockets Nombre de connexion entrantes acceptées. Défaut: 1024.
Network.ConnectTimeout timeout d'attente d'établissement de connexion TCP. Défaut: 60s
Network.ReconnectTimeout Si une connextion échoue, délai d'attente avant de retenter. Défaut: 10s
Network.CallTimeout Délai d'attente de timeout d'un appel au serveur iSNS. Défaut: 60s.
^
14 novembre 2016

htmlpdflatexmanmd




isnsd

isnsd

Service iSNS

   isnsd implémente le protocole iSNS (Internet Storage Name Service) tel que définis dans la rfc4171. iSNS est un protocole de découverte pour iSCSI et iFCP

OPTIONS

-c filename, --config filename Fichier de configuration à utiliser. Défaut: /etc/isns/isnsd.conf
-F, --foreground Ne lance pas en tâche de fond
-4 Crée un socket IPv4 uniquement
-6 Créé un socket IPv6 iniquement. Mode par défaut
-d facility, --debug facility Active de débug. facility peut être:

        socket Transmission/réception réseau
        auth Informations liées à l'authentification et la sécurité
        message couche du protocole iSNS
        state État de la base de données
        scn Message SCN (state change notification)
        esi message ESI (entity status inquiry)
        all Tout

--dump-db Fonction helper qui lit la base et l'affiche sous forme compréhensive.
--init Créé une clé d'authentification serveur, et les paramètres DSA requis.
^
14 novembre 2016

htmlpdflatexmanmd




isnsdd

isnsdd

Service de découverte iSNS

   isnsdd est un service coté client pour iSNS. Il enregistre des nœuds de stockage et des portails avec le service iSNS, et rafraîchis ces enregistrements. Le service s'enregistre lui-même également pour recevoir les notifications SCN, et les traite. Il peut être configuré pour invoquer une application externe pour chaque notification reçue. Le nom du programme peut être appelé avec l'option SCNCallout.

OPTIONS

-c filename, --config filename Spécifie le fichier de configuration. Défaut: /etc/isns/isnsdd.conf
-F, --foreground Ne lance pas en tâche de fond
--role role Indique avec quelle capacité le service doit s'enregistrer. (initiator ou control). Défaut: initiator.
-d facility, --debug facility Active de débug. facility peut être:

        socket Transmission/réception réseau
        auth Informations liées à l'authentification et la sécurité
        message couche du protocole iSNS
        state État de la base de données
        scn Message SCN (state change notification)
        esi message ESI (entity status inquiry)
        all Tout
^
14 novembre 2016

htmlpdflatexmanmd




istgt

istgt

Target iSCSI

   istgt est un target iSCSI conçus pour les nœuds de cluster multipath.

OPTIONS

-c config fichier de configuration à utiliser.
-p pidfile Fichier PID à écrire
-l facility Facilité syslog à utiliser
-m mode Mode opérationnel 0 = traditionnel (==20100707), 1 = normal (défaut), 2 = expérimental.
-t flag Affiche des informations de suivi sur stderr (all, net, iscsi, scsi, lu, none)
-q mode silencieux
-D Ne met pas en tâche de fond

Fichiers

/etc/istgt/istgt.conf Fichier de configuration
/etc/istgt/auth.conf fichier d'information d'authentification
/var/run/istgt.pid Fichier PID
^
25 novembre 2016

htmlpdflatexmanmd




istgt.conf

istgt.conf

Fichier de configuration pour istgt

[Global]

Comment "Section Globale"
NodeBase Nom du nœud (ex: "iqn.2007‐09.jp.ne.peach.istgt")
PidFile Fichier pid. Défaut: /var/run/istgt.pid
AuthFile Fichier pour l'authentification. Défaut: /etc/istgt/auth.conf
MediaDirectory Pour les média amovibles (DVD/tape). Défaut: /var/istgt
LogFacility Facilité syslog (défaut: local7)
Timeout Timeout d'E/S socket. Défaut: 30
NopInInterval Interval d'envoie de NOPIN. Défaut: 20
DiscoveryAuthMethod Auto|CHAP Information d'authentification pour la session découverte
DiscoveryAuthGroup AuthGroup9999 idem
MaxSessions 16 Sessions maximum réservés
MaxConnections 4 Connexions maximum réservés
MaxR2T 32 Nombre maximum d'envoie R2T dans chaque connexion. 0 désactive, 1-256.
MaxOutstandingR2T
DefaultTime2Wait
DefaultTime2Retain
FirstBurstLength
MaxBurstLength
MaxRecvDataSegmentLength
InitialR2T Yes|No
ImmediateData Yes
DataPDUInOrder Yes
DataSequenceInOrder Yes
ErrorRecoveryLevel 0

[UnitControl]

Comment "Commentaire pour ce contrôleur"
AuthMethod Auto|CHAP ‹Mutual›
AuthGroup AuthGroup10000
Portal UC1 ‹IP›:3261
Netmask ‹IP›

[PortalGroup1]

Comment "Commentaire"
Portal ‹label› ‹IP›:‹port›

[InitiatorGroup1]

Comment "Initiator Group1"
InitiatorName "[!]‹iqn...›"|ALL Nom de l'initiateur. ! refuse le login/découverte
Netmask ‹ip/mask›

[LogicalUnit1]

Comment "Disque 1"
TargetName disk1 Nom du target
TargetAlias "Data Disk1" Alias pour ce target
Mapping PortalGroup1 InitiatorGroup1 Utilise les initiators via les portails
AuthMethod Auto
AuthGroup AuthGroup1
UseDigest Header Data|Auto
UnitType Disk UnitInquiry ‹vendor› ‹Product› ‹Revision› ‹Serial›
QueueDepth 0-255 0=désactivé, 1-255 activé avec la profondeur spécifiée. Défaut: 32
MaxOutstandingR2T 16
DefaultTime2Wait 2
DefaultTime2Retain 60
FirstBurstLength 262144
MaxBurstLength 1048576
MaxRecvDataSegmentLength 262144
InitialR2T Yes
ImmediateData Yes
DataPDUInOrder Yes
DataSequenceInOrder Yes
ErrorRecoveryLevel 0 Remplacer les paramètres globaux
LUN0 Storage ‹vol-path› ‹size› Volume logique pour cet unité dans LUN0
LUN0 Option RPM 7200 Spécifier la vitesse de rotation du disque. 0=non reporté, 1=SSD, ؏= vitesse de rotation.
LUN0 Option FormFactor 2 format du disque: 0=non indiqué, 1=5,25, 2=3.5, 3=2.5, 4=1.8, 5=moins de 1,8 pouces
LUN0 Option ReadCache Disable Pour une utilisation future
LUN0 Option WriteCache Disable Pour une utilisation future
^
14 novembre 2016

htmlpdflatexmanmd




istgtcontrol

istgtcontrol

Utilitaire de commande de target iSCSI

   istgtcontrol est un utilitaire de contrôle pour istgt. Il peut être utilisé pour requêter et changer le status d'une instance istgt locale ou distante. Par défaut il se connection et d'authentifite au portail de target iSCSI dans istgtcontrol.conf.

Commandes

noop Ne fait rien, test simplement la réactivité du portail et l'authentification CHAP.
version Affiche la version de istgt auquel istgtcontrol est connecté
list Lister tout, ou les targets spécifiées, qui sont partagés par le portail
load charge un nouveau média sur l'unité spécifié. Émet la même commande que si le lecteur avait été fermé dans le périphérique scsi
unload Débranche un média de l'unité spécifiée
change file Change le média chargé par l'unité spécifiée
reset Réinitialise le LUN spécifié du portail
info Affiche toutes les connexions du portail

OPTIONS

-c config Fichier de configuration à utiliser. Défaut: /etc/istgt/istgtcontrol.conf
-h host Remplace le portail de target par le nom d'hôte/IP spécifié. Défaut: localhost si rien n'est spécifié dans le fichier de configuration
-p port Remplace le port. Défaut: 3261 si rien n'est spécifié dans le fichier de configuration
-t target Spécifie le IQN target affecté par la commande
-l lun Spécifie le LUN target affecté par la commande. Défaut: 0
-f flags flags passé au portail en chargeant un nouveau média. Défaut: 'ro' (ro, rw, extend, dynamic)
-s size Spécifie la taille du media à charger.
-q mode silencieux
-v mode verbeux
-A method Définis la méthode d'authentification préférée pour la connextion au portail. (CHAP/Mutual ou CHAP/Auto)
-U user Username pour s'authentifier au portail
-S secret Mot de passe pour s'authentifier au portail
-M muser Username d'authentification mutuelle
-R msecret Password d'authentification mutuelle
^
08 décembre 2016

htmlpdflatexmanmd




targets.conf

targets.conf

Configuration pour tgt-admin

include Permet d'inclure d'autres configurations
default-driver Pilote par défaut. Défaut: iscsi
iSNSServerIP 192.168.111.222 ip du serveur iSNS
iSNSServerPort 3205 Port du serveur iSNS
iSNSAccessControl On Active le contrôle d'accès iSNS
iSNS On ACtive le support de iSNS
ignore-errors Continue même si tgtadm quitte avec un code non-zéro
‹target qn.2008-09.com.example:server.target1› Définir un target

        backing-store|direct-store /dev/LVM/somedevice Spécifie le périphérique. Chaque ligne backing|direct-store déclare un LUN, dans l'ordre. Direct-store lis les paramètres du disque avec la commande sg_inq. Dans le cas de mix, les backing-store sont traitées avant les direct-store.
        initiator-address 192.168.100.1 Autorise les connections depuis l'ip spécifiée. Peut être spécifié plusieurs fois, uniquement global et non par LUN
        write-cache on|off Active le cache d'écriture
        incominguser someuser secretpass12 Définis un user/password
        outgoinguser userA secretpassA Définis un utilisateur sortant
        controller_tid 10 tid du contrôleur
        vendor_id MyCompany Inc. Spécifie un vendeur
        product_id Spécifie un produit
        product_rev Spécifie une révision produit
        MaxRecvDataSegmentLength 8192
        MaxXmitDataSegmentLength 8192
        HeaderDigest None
        DataDigest None
        InitialR2T Yes
        MaxOutstandingR2T 1
        ImmediateData Yes
        FirstBurstLength 65536
        MaxBurstLength 262144
        DataPDUInOrder Yes
        DataSequenceInOrder Yes
        ErrorRecoveryLevel 0
        IFMarker No
        OFMarker No
        DefaultTime2Wait 2
        DefaultTime2Retain 20
        OFMarkInt Reject
        IFMarkInt Reject
        MaxConnections 1 Paramètres supplémentaires, définis au niveau global et non par LUN
        ‹direct-store|backing-store /dev/sda› Permet de spécifier les paramètres par LUN

                vendor_id,product_id,product_rev Spécifie les informations du vendeur
                lun 1 Spécifie l'id pour le lun
                device-type cd Spécifie le type de périphérique
                write-cache on Active le cache d'écriture
                mode_page 8:0:18:0x10:0:0xff....
                bs-type aio type de backing-store (rdwr, aio, etc). Défaut: rdwr
                params element_type=4,start_address=500,quantity=3,media_home=/root/tapes
                params element_type=4,address=500,tid=1,lun=1 Paramètres supplémentaires pour le LUN
                scsi_id
                scsi_sn multipath-10
                sense_format
                removable
                online
                readonly
                path
                allow-in-user yes

        ‹/direct-store|backing-store›

‹/target›

^
08 décembre 2016

htmlpdflatexmanmd




tgt-admin

tgt-admin

Outil de configuration de target SCSI

OPTIONS

-e, --execute Lit /etc/tgt/targets.conf et exécute les commandes tgtadm. Si le target existe déjà, ne le traite pas.
-d, --delete ‹value› Supprime les targets séléctionnés ou tous les targets. Le target n'est enlevé qui si aucun initiator n'est connecté
--offline Définis les targets spécifiés à l'état offline
--ready Définis les targets spécifiés à l'état ready
--update ‹value› Met à jours tous les targets ou les targets spécifiés. Uniquement si aucun initiateur n'est connecté
-s, --show Afficher tous les targets
-C, --control-port ‹NNNN› Spécifie le port de contrôle de l'instance tgtd à utiliser
--ignore-errors Continue même si tgtadm quitte avec un code non-zéro
-f, --force Force certaines opérations même si le target est utilisé
--dump Dump la configuration tgtd courante (n'inclus pas les paramètres détaillés)
-v, --verbose Mode verbeux (affiche le commandes tgtadm utilisées)

Fichiers

/etc/tgt/targets.conf Fichier de configuration de tgt-admin
^
08 décembre 2016

htmlpdflatexmanmd




tgt-setup-lun

tgt-setup-lun

script helper qui créé un target, ajoute un périphérique au target, et définis les initiators qui peuvent s'y connecter

Créer un target qui utilise /dev/sdb1 et autorise les connexions depuis 192.168.10.81
tgt-setup-lun -d /dev/sdb1 -n my_target 192.168.10.81
Créer un target qui utiliser /dev/sdb1 et autorise les connexions depuis 192.168.10.81 et 192.168.10.82
tgt-setup-lun -d /dev/sdb1 -n my_target 192.168.10.81 192.168.10.82

^
08 décembre 2016

htmlpdflatexmanmd




tgtadm

tgtadm

Utilitaire d'administration de target SCSI

OPTIONS

-C, --control-port ‹port› Port de connexion à tgtd
-v, --blocksize ‹size› Spécifie la taille de block sur laquelle opérer
-Y, --device-type ‹type› En créant un LUN, spécifie le type de périphérique à créer. Défaut: disk

        disk Émule un périphérique disque
        tape Émule un lecteur cassette
        ssc alias de tape
        changer Émule un périphérique changeur
        pt type passthrough pour exporter un périphérique /dev/sg

-E, --bstype ‹type› En créant un LUN, spécifie le type de stockage à utiliser:

        rdwr Utiliser l'E/S normal.
        aio Mode E/S asynchrone
        rbd Utilise un périphérique block RADOS Ceph
        sg type spécial pour les périphériques passthrough
        ssc Type spécial pour l'émulation tape

--lld ‹driver› --op new --mode target --tid ‹id› --targetname ‹name› ajoute un nouveau target
--lld ‹driver› --op delete --mode target --tid ‹id› Supprime le target ‹id›.
--lld ‹driver› --op delete --force --mode target --tid ‹id› Force la suppression du target ‹id›
--lld ‹driver› --op show --mode target Affiche toutes les target
--lld ‹driver› --op show --mode target --tid ‹id› Affiche les paramètres du target ‹id›
--lld ‹driver› --op new --mode logicalunit --tid ‹id› --lun ‹lun› --backing-store ‹path› --bsopts=‹backing store options› Ajoute un lun au target ‹id›. ‹path› doit être des périphériques block ou des fichiers ou une image RBD. lun0 est réservé par un périphérique spécial automatiquement créé
--lld ‹driver› --op delete --mode logicalunit --tid ‹id› --lun ‹lun› Supprime le LUN qu'un target ‹id› possède
--lld ‹driver› --op bind --mode target --tid ‹id› --initiator-address ‹address› Ajoute l'adresse à la liste d'accès au target ‹id›. Les initiators avec l'adresse peuvent accéder au target. ALL autorise l'accès à tous les initiators
--lld ‹driver› --op bind --mode target --tid ‹id› --initiator-name ‹name› Ajoute le nom de l'initiator à la liste d'accès du target ‹id›. Les initiators avec ces noms peuvent y accéder
--lld ‹driver› --op unbind --mode target --tid ‹id› --initiator-address ‹address› Supprime l'adresse d'une liste d'accès du target
--lld ‹driver› --op unbind --mode target --tid ‹id› --initiator-name ‹name› Supprime le nom de l'initiator de la liste d'accès du target
--lld ‹driver› --op update --mode target --tid ‹id› --name=‹parameter› --value=‹value› Définis/change la valeur d'un ou plusieurs paramètres de target
--lld ‹driver› --op update --mode logicalunit --tid ‹id› --lun ‹id› --params parameter=value‹,...› Définis/change la valeur d'un ou plusieurs paramètres LUN
--lld ‹driver› --op start --mode lld Démarre le lld spécifié sans redémarrer le processus tgtd.

Paramètres LUN

   Ces paramètres sont seulement applicables avec "--mode logicalunit"

vendor_id=‹string› Définis le Vendor Identification reporté par un LUN dans une donnée INQURY
product_id=‹string› Définis le Product Identification reporté par un LUN dans une donnée INQURY
product_rev=‹string› Définis le Product Revision reporté par un LUN dans une donnée INQURY
removable=‹ 0|1 › Peut être utilisé pour changer le paramètre par défaut pour le flag removable.
sense_format=‹ 0|1 › Contrôle le format du sens des données que le périphérique retourne. 0 = classique, 1 = descripteur Support
online=‹ 0|1 › Contrôle si le périphérique est en ligne ou non
mode_page=‹byte-string› Définis les pages de mode spécifique pour le périphérique et le contenu de page de mode.
readonly=‹ 0|1 › Définis le flag read-only d'un LUN
thin_provisioning=‹ 0|1 › Contrôle le provisionning pour le LUN. Ne s'applique qu'aux périphérique disk. Uniquement pour les LUN stockés dans des systèmes de fichier qui supportent FALLOC_FL_PUNCH_HOLE

Paramètres LUN SMC

   Ces paramètres ne s'appliquent qu'aux lun qui sont de type "changer".

element_type=‹ 1|2|3|4 › Contrôle le type d'élément d'un slot dans le jukebox/vtl.

        1 Medium Transport
        2 Storage Element
        3 Import/Export Element
        4 Data Transfer device (CD drive, tape drive, MO drive etc)

address=‹ 1-65535 › Utilisé pour créer/opérer sur un slot particulier
start_address=‹ 1-65535 ›,quantity=‹ 1--65535 › Utilisé pour créer/opérer sur une plage de slots.
sides=‹ 1|2 › Spécifie si le média a 1 ou 2 faces pour maintenir les données.
clear_slot=‹ 1 › Effacer un élément de stockage et supprimer tout média présent. Une fois terminé, le stockage est marqué vide.
barcode=‹string› Utilisé pour assigner un code barre à un élément. max 10 caractères
volume_tag=‹string› Permet d'assigner un tag à un volume. max 32 caractères
media_home=‹string› Spécifie un répertoire où le média virtuel pour les éléments périphérique dvd/tape sont stockés

Périphériques passthrough

   En plus de l'émulation de périphérique TGTD supporte également d'utilisation de périphériques sg sur l'hôte et l'export via un type de périphérique spécial passthrough

--bstype=sg Spécifie qu'un périphérique SG est utilisé
--device-type=pt Spécifie que le type passthrough est utilisé
--backing-store=‹/dev/sg4› Spécifie quel périphérique exporter via TGTD
--bsoflags={direct|sync} Spécifie des flags supplémentaire lors de la création d'un LUN à utiliser en ouvrant le fichier. O_DIRECT est spécifié par 'direct' et 0_SYNC par 'sync'

Hash d'en-tête et de données

   Les hash d'en-tête ed de donées peuvent être définis dans un paramètre par target. TGTD supporte 2 modes. None et CRC32C. Quand le hash est à None, tgtd négocie pour ne pas utiliser les hash, et quand CRC32C est définis, tgtd force la connection à utiliser un hash

Pour voir les paramètres courant pour le hashage
tgtadm --op show --mode target --tid 1
Pour définis le hash d'en-tête à CRC32C
tgtadm --op update --mode target --tid 1 -n HeaderDigest -v CRC32C
Pour le désactiver pour les données
tgtadm --op update --mode target --tid 1 -n DataDigest -v None

Authentification CHAP

   L'authentification CHAP est supportée pour exiger une authentification avant qu'un initiator soit autorisé à se logger et accéder aux périphériques. La passphrase est définie au niveau target. Pour créer une authentification CHAP, il faut créer un compte avec son mot de passe, puis lier le compte à un ou plusieurs target

Créer un utilisateur et le lier au target 1
tgtadm --lld iscsi --op new --mode account --user ronnie --password password
tgtadm --lld iscsi --op bind --mode account --tid 1 --user ronnie
Lister tous les comptes qui ont été créés
tgtadm --lld iscsi --op show --mode account
Aficher si un target nécessite une authentification
tgtadm --lld iscsi --op show --mode target

Sondes NOP-OUT

   tgtd peut envoyer des sondes NOP-OUT aux initiateurs connectés pour déterminer quand un initiateur est mort et quand stopper la connexion TCP. Cela peut être définis au niveau global ou par target.

Afficher les paramètres NOP-OUT
tgtadm --lld iscsi --op show --mode target
Définis NOP-OUT pour un target
tgtadm --op update --mode target --tid 1 -n nop_count -v 5
tgtadm --op update --mode target --tid 1 -n nop_interval -v 5

Portails iSCSI

   Les portails iSCSI peuvent être listés, ajoutés ou supprimés

Lister les portails définis sur le target
tgtadm --lld iscsi --op show --mode portal
Ajouter un portail
tgtadm --lld iscsi --op new --mode portal --param portal=10.1.1.101:3260
Supprimer un portail
tgtadm --lld iscsi --op delete --mode portal --param portal=10.1.1.101:3260

Connexions iSCSI

   Les connexions iSCSI peuvent être listées et fermées de force en temps réel

Lister toutes les connexions actives pour un target
tgtadm --lld iscsi --op show --mode conn --tid 1
Fermer une connexion existante
tgtadm --lld iscsi --op delete --mode conn --tid 1 --sid 2 --cid 0

Status online/offline

   Les LUN tgtd peuvent être online ou offline. Les LUN qui sont offline peut se comporter différemment d'un type de périphérique à l'autre. Les périphériques offline se comportent comme si aucun média n'était disponible et toute opération d'accès au média échoue avec une erreur. Les périphériques ne peuvent pas être mis en mode offline s'il y a des locks "PREVENT ALLOW MEDIUM REMOVAL" dans le périphérique. Similairement les média online ne peuvent pas être ejectés par logiciel quand de tels locks sont présent dans le périphérique.

Afficher le status
tgtadm --lld iscsi --mode target --op show
Changer un LUN en offline
tgtadm --tid 1 --lun 2 --op update --mode logicalunit -P Online=No

Paramètres iSNS

   La configuration iSNS pour un target se fait via tgtadm

Définis l'adresse du serveur iSNS. tgtd ne supporte qu'un serveur iSNS
tgtadm --op update --mode sys --name iSNSServerIP --value 192.168.11.133
Active/désactive iSNS
tgtadm --op update --mode sys --name iSNS --value On
Port à utiliser pour iSNS
tgtadm --op update --mode sys --name iSNSServerPort --value 3205
Active/désactiver le contrôle d'accès pour iSNS
tgtadm --op update --mode sys --name iSNSAccessControl --value Off

Exemple de création d'un jukebox DVD

Créer un jukebox DVD avec 8 tiroirs, et 2 DVD-R vides. Créer un target
tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2007-03:virtual-dvd:`hostname`
Créer un lecteur DVD et lui donner un nom. Le dvd démarre sans fichier de stockage
tgtadm --op new --mode logicalunit --tid 1 --lun 1 --device-type cd
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 --params vendor_id=STGT_DVD,product_id=DVD101,product_rev=0010,scsi_sn=STGTDVD01,removable=1
Il faut un fichier de stockage backend pour le changeur:
if [ ! -f $HOME/smc ]; then dd if=/dev/zero of=$HOME/smc bs=1k count=1; fi
Créer le périphérique SMC et lui donner un nom:
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 2 --backing-store $HOME/smc --device-type changer
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params vendor_id=STK,product_id=L700,product_rev=0010,scsi_sn=XYZZY_0,removable=1
Ajouter un périphérique de transfert de donnnées:
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=4,start_address=1,quantity=1
Spécifier que le DVD (LUN 1) est le périphérique de transfert de données à créer
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=4,address=1,tid=1,lun=1
Medium Transport Elements
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=1,start_address=16,quantity=1
Définir le chemin du média virtuel
VTL=${HOME}/vtl
mkdir -p ${VTL}
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params media_home=${VTL}
Éléments de stockages - 8 commençant à l'adresse 1024
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=2,start_address=1024,quantity=8
Ajouter 'media' au slots 1 et 2 et laisser les autres vides
tgtimg --op new --device-type cd --type dvd+r --file ${VTL}/DISK_001
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=2,address=1024,barcode=DISK_001,volume_tag="A blank disk",sides=1
Et pour le slot 2:
tgtimg --op new --device-type cd --type dvd+r --file ${VTL}/DISK_002
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 --params element_type=2,address=1025,barcode=DISK_002,volume_tag="My second blank disk",sides=1
Permettre à tous les initiateurs de se connecter à ce target:
tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address ALL
Afficher le résultat
tgtadm --lld iscsi --mode target --op show
^
25 novembre 2016

htmlpdflatexmanmd




tgtd

tgtd

Service de target SCSI

   tgtd est un service de target SCSi. Il peut être utilisé pour fournir un service de target SCSI sur un réseau, comme iSCSI. tgtd fournis le support pour des périphériques émulé et réel. tgtd peut émuler les types de périphériques suivants:

        disk Disque normal. Émule un disque SCSI
        tape Périphérique tape. Émule un lecteur cassette SCSI
        cd Périphérique CD. Émule un graveur DVD SCSI
        changer Émule un périphérique changeur pour une librairie cassette virtuel ou un jukebox DVD

OPTIONS

-d, --debug ‹INTERGER› Mode debug
-f, --foreground Ne met pas en tâche de fond
-C, --control-port ‹INTERGER› port de contrôle à utiliser pour cette instance.
--iscsi ‹...› Options spécifiques à ISCSI.

Options iSCSI

portal=‹ip-address[:port]› lie tgtd à un ip/portail et/ou port. par défaut tgtd écoute sur toutes les adresse sur le port 3260.
nop_interval=‹integer› Définis l'interval par défaut pour envoyer NOP-OUT pour sonder les initiateurs connectés. Ne contrôle que la valeur par défaut pour les targets. Défaut: 0 = désactivé
nop_count=‹integer› Nombre de NOP-OUT échoués avant de considérer l'initiateur mort et fermer la session. Défaut: 0

Variables d'environnement

TGT_IPC_SOCKET=‹path› Définis, tgtd et tgtadm utilisent le socket IPC spécifié au lieu de /var/run/tgtd/socket.0
^
08 décembre 2016

htmlpdflatexmanmd




tgtimg

tgtimg

Utilitaire de fichier image target scsi

   tgtimg est un utilitaire pour initialiser des fichiers image avec métadonnées additionnelles, tel qu'un code barre, taille total, etc. que l'émulation tgtd a besoin

OPTIONS

-o, --op {new|show} Opération.
-Y, --device-type ‹type› Spécifie le type de fichier image (cd, disk, tape)
-t, --type ‹media-type› En créant une nouvelle image, spécifie le type de média à émuler:

        dvd+r Créé un DVD+R vide
        disk Créé un disque vide
        data Créé une cassette normale
        clean Créé une cassette de nettoyage
        worm Créé un worm

-b, --barcode ‹barcode› En créant une nouvelle image, spécifie le barcode à utiliser.
-s, --size ‹size› En créant une nouvelle image, spécifie la taille en Mio pour l'image tape virtuelle
-f, --file ‹path› Le nom du fichier
-T, --thin-provisioning Rend l'allocation de l'image thin.

Exemples

Créer un nouveau disque 100Mo
tgtimg --op new --device-type disk --type disk --size 100 --file /data/hd001.raw
Créer une nouvelle image tape
tgtimg --op new --device-type tape --barcode 12345 --size 100 --type data --file /data/tape001.img
Voir le contenu d'une image existante
tgtimg --op show --device-type tape --file /data/tape001.img
Créer une nouvelle image DVD-R blanche
tgtimg --op new --device-type cd --type dvd+r --file /data/dvd001.iso