Chapitre 24. Online Storage Management
sysfs
. Red Hat tient à vous informer que les noms d'objets et la structure des répertoires sysfs
pourraient faire l'objet de changements lors des publications de versions majeures de Red Hat Enterprise Linux. Ceci est dû au fait que le noyau Linux en amont ne fournit pas d'API interne stable. Pour obtenir des directives sur la manière de référencer les objets sysfs
de manière transportable, veuillez vous reporter au document /usr/share/doc/kernel-doc-version/Documentation/sysfs-rules.txt
dans l'arborescence source du noyau.
Avertissement
24.1. Installation de la Cible Copier lienLien copié sur presse-papiers!
targetcli
comme un front-end pour l’affichage, l'édition et l'enregistrement de la configuration de la cible Linux-IO sans avoir besoin de manipuler directement les fichiers de configuration de la cible du noyau. targetcli
est une interface de ligne de commande qui permet à un administrateur d’exporter les ressources de stockage locales (soutenues par des fichiers, volumes, périphériques SCSI locaux ou disques RAM) vers des systèmes distants. Il a une disposition arborescente, qui comprend la saisie semi-automatique par tabulation intégrée et fournit une documentation en ligne et un support complet semi-automatique.
Note
targetcli
ne correspond pas toujours à l'interface du noyau. C'est parce qu'elle est conçue pour être simplifiée le plus possible.
Important
targetcli
sont persistants, démarrer et activer le service cible :
systemctl start target systemctl enable target
~]# systemctl start target
~]# systemctl enable target
24.1.1. Installer et exécuter targetcli Copier lienLien copié sur presse-papiers!
targetcli
, exécuter :
yum install targetcli
# yum install targetcli
systemctl start target
# systemctl start target
systemctl enable target
# systemctl enable target
targetcli
, exécuter targetcli
et obtenir une installation des trois interfaces, exécuter ls
:
Note
targetcli
du bash (par exemple, targetcli iscsi/ create
) ne fonctionnait pas, ni ne donnait de code d'erreur. Cela a été corrigé dans Red Hat Enterprise Linux 7.1 qui fournit un code d'erreur, ce qui en facilite l'utilisation avec les scripts shell.
24.1.2. Créer un Backstore Copier lienLien copié sur presse-papiers!
Note
- FILEIO (Stockage par sauvegarde de fichiers de Linux)
- Les objets de stockage FILEIO peuvent soit supporter l'opération
write_back
ouwrite_thru
. L'opérationwrite_back
active le cache du système de fichiers local. Cela améliore la performance mais réduit le risque de perte de données. Il est conseillé d'utiliser la commandewrite_back=false
afin de désactiverwrite_back
au bénéfice dewrite_thru
.Pour créer un objet de stockage fileio, exécuter la commande/backstores/fileio create file_name file_location file_size write_back=false
. Exemple :/> /backstores/fileio create file1 /tmp/disk1.img 200M write_back=false Created fileio file1 with size 209715200
/> /backstores/fileio create file1 /tmp/disk1.img 200M write_back=false Created fileio file1 with size 209715200
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - BLOCK (périphériques BLOCK Linux)
- Le pilote de blocs permet l'utilisation de n'importe quel périphérique en bloc situé dans
/sys/block
à utiliser dans LIO. Inclut les périphériques physiques comme les HDDs, SSDs, CDs, DVDs) et les périphériques logiques comme les logiciels ou matériels de volumes RAID, ou les volumes LVM.Note
Les backstores BLOCK fournissent généralement la meilleure performance.Pour créer un backstore BLOCK par le périphérique block/dev/sdb
, utiliser la commande suivante :/> /backstores/block create name=block_backend dev=/dev/sdb Generating a wwn serial. Created block storage object block_backend using /dev/sdb.
/> /backstores/block create name=block_backend dev=/dev/sdb Generating a wwn serial. Created block storage object block_backend using /dev/sdb.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - PSCSI (périphériques Linux pass-through SCSI)
- Tout objet de stockage qui supporte Direct Pass Through des commandes SCSI sans émulation SCSI, avec un périphérique SCSI sous-jacent qui apparaît avec lsscsi dans
/proc/scsi/scsi
(comme un disque dur SAS) peut être configuré en tant que backstore. SCSI-3 et versions supérieures sont pris en charge dans ce sous-système.Avertissement
PSCSI doit être uniquement utilisé par les utilisateurs avancés. Les commandes avancées de SCSI comme ALUA (Aysmmetric Logical Unit Assignment) ou Persistant Reservations (utilisées par VMware ESX et vSphere) ne sont généralement pas implémentées dans le firmware et peuvent provoquer des dysfonctionnements ou des pannes. En cas de doute, utilisez BLOCK pour les intallations en production à la place.Pour créer un backstore PSCSI de périphérique physique SCSI, unpériphériqueTYPE_ROM
utilisant/dev/sr0
dans ce exemple, exécutez :/> backstores/pscsi/ create name=pscsi_backend dev=/dev/sr0 Generating a wwn serial. Created pscsi storage object pscsi_backend using /dev/sr0
/> backstores/pscsi/ create name=pscsi_backend dev=/dev/sr0 Generating a wwn serial. Created pscsi storage object pscsi_backend using /dev/sr0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Memory Copy RAM disk (Linux RAMDISK_MCP)
- Les disques Memory Copy RAM (
ramdisk
) vous donnent des disques de RAM avec émulation SCSI et des mappages de mémoire séparés qui utilisent les mappages en copiant la mémoire des initiateurs. Cela vous donne une capacité sur plusieurs sessions et c'est particulièrement utile pour un stockage en massse volatile à but de production.Pour créer 1Go Disque RAM Backstore, exécuter la commande suivante :/> backstores/ramdisk/ create name=rd_backend size=1GB Generating a wwn serial. Created rd_mcp ramdisk rd_backend with size 1GB.
/> backstores/ramdisk/ create name=rd_backend size=1GB Generating a wwn serial. Created rd_mcp ramdisk rd_backend with size 1GB.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.1.3. Créer une Cible iSCSI Copier lienLien copié sur presse-papiers!
Procédure 24.1. Créer une Cible iSCSI
- Exécuter
targetcli
. - Rendez-vous sur le chemin de configuration iSCSI :
/> iscsi/
/> iscsi/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
La commandecd
est également acceptée pour les changements de répertoires, ainsi que pour indiquer le chemin vers lequel se déplacer. - Créer une cible iSCSI en utilisant un nom de cible par défaut.
/iscsi> create Created target iqn.2003-01.org.linux-iscsi.hostname.x8664:sn.78b473f296ff Created TPG1
/iscsi> create Created target iqn.2003-01.org.linux-iscsi.hostname.x8664:sn.78b473f296ff Created TPG1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ou bien créer une cible iSCSI en utilisant un nom spécifique./iscsi > create iqn.2006-04.com.example:444 Created target iqn.2006-04.com.example:444 Created TPG1
/iscsi > create iqn.2006-04.com.example:444 Created target iqn.2006-04.com.example:444 Created TPG1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Vérifier que la cible nouvellement créée soit visible quand les cibles sont répertoriées par la commande
ls
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Note
24.1.4. Configuration d'un Portail iSCSI Copier lienLien copié sur presse-papiers!
Note
/iscsi/iqn-name/tpg1/portals delete ip_address=0.0.0.0 ip_port=3260
, puis créer un nouveau portail avec les informations requises.
Procédure 24.2. Créer un portail iSCSI
- Se rendre dans le TPG.
/iscsi> iqn.2006-04.example:444/tpg1/
/iscsi> iqn.2006-04.example:444/tpg1/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Il y a deux façons de créer un portail : créer un portail par défaut, ou créer un portail spécifiant quelle adresse IP écouter.Créer un portail par défaut qui utilise le port par défaut 3260 et qui permet à la cible d'écouter sur toutes les adresses IP de ce port.
/iscsi/iqn.20...mple:444/tpg1> portals/ create Using default IP port 3260 Binding to INADDR_Any (0.0.0.0) Created network portal 0.0.0.0:3260
/iscsi/iqn.20...mple:444/tpg1> portals/ create Using default IP port 3260 Binding to INADDR_Any (0.0.0.0) Created network portal 0.0.0.0:3260
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour créer un portail spécifiant sur quelle adresse IP écouter, exécuter la commande suivante./iscsi/iqn.20...mple:444/tpg1> portals/ create 192.168.122.137 Using default IP port 3260 Created network portal 192.168.122.137:3260
/iscsi/iqn.20...mple:444/tpg1> portals/ create 192.168.122.137 Using default IP port 3260 Created network portal 192.168.122.137:3260
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Vérifier que le portail nouvellement créé soit visible par la commande
ls
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.1.5. Configurer les LUN Copier lienLien copié sur presse-papiers!
Procédure 24.3. Configurer les LUN
- Créer des LUN d'objets de stockage déjà créés.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Afficher les changements.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Nous vous rappelons que le nom LUN par défaut démarre par 0, et non 1, ce qui était le cas avectgtd
dans Red Hat Enterprise Linux 6.
Important
Procédure 24.4. Créer un LUN en lecture-seule
- Pour créer un LUN avec les permissions lecture-seule, exécuter la commande suivante pour commencer :
/> set global auto_add_mapped_luns=false Parameter auto_add_mapped_luns is now 'false'.
/> set global auto_add_mapped_luns=false Parameter auto_add_mapped_luns is now 'false'.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela évite l'auto-mappage des LUN en ACL existants, ce qui permet le mappage manuel des LUN. - Puis, créer manuellement le LUN par la commande
iscsi/target_iqn_name/tpg1/acls/initiator_iqn_name/ create mapped_lun=next_sequential_LUN_number tpg_lun_or_backstore=backstore write_protect=1
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow La ligne mapped_lun1 a maintenant (ro) à la fin (à la différence de mapped_lun0's (rw)) ce qui indique « read-only » (lecture-seule).
24.1.6. Configurez les ACL Copier lienLien copié sur presse-papiers!
/etc/iscsi/initiatorname.iscsi
.
Procédure 24.5. Configurez les ACL
- Déplacez-vous dans le répertoire acls.
/iscsi/iqn.20...mple:444/tpg1> acls/
/iscsi/iqn.20...mple:444/tpg1> acls/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Créer un ACL. Vous pouvez soit utliser le nom d'initiateur qui se trouve dans
/etc/iscsi/initiatorname.iscsi
sur l'initiateur, ou si vous utilisez un nom facile à retenir, voir Section 24.2, « Créer un initiateur iSCSI » pour vous assurer que l'ACL corresponde à l'initiateur. Ainsi :/iscsi/iqn.20...444/tpg1/acls> create iqn.2006-04.com.example.foo:888 Created Node ACL for iqn.2006-04.com.example.foo:888 Created mapped LUN 2. Created mapped LUN 1. Created mapped LUN 0.
/iscsi/iqn.20...444/tpg1/acls> create iqn.2006-04.com.example.foo:888 Created Node ACL for iqn.2006-04.com.example.foo:888 Created mapped LUN 2. Created mapped LUN 1. Created mapped LUN 0.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Le comportement de l'exemple ci-dessus dépend de la configuration qui aura été utilisée. Dans ce cas, le paramètre globalauto_add_mapped_luns
sera utilisé. Cela fait correspondre les LUN aux ACL créés automatiquement. - Afficher les changements.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.1.7. Installation de l'une cible Fibre Channel over Ethernet (FCoE) Copier lienLien copié sur presse-papiers!
targetcli
.
Important
fcoeadm -i
affiche les interfaces FCoE configurées.
Procédure 24.6. Configurer un cible FCoE
- Configurer une cible FCoE requiert l'installation du package
targetcli
et de ses dépendances. Voir Section 24.1, « Installation de la Cible » pour obtenir plus d'informations sur les bases detargetcli
et son installation. - Créer une instance de cible FCoE sur une interface FCoE.
/> tcm_fc/ create 00:11:22:33:44:55:66:77
/> tcm_fc/ create 00:11:22:33:44:55:66:77/> tcm_fc/ create 00:11:22:33:44:55:66:77
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si des interfaces FCoE sont présentes sur le système, la complétion par la touche de tabulation après la saisie decreate
répertoriera les interfaces disponibles. Si ce n'est pas le cas, assurez-vous quefcoeadm -i
affiche bien des interfaces actives. - Mettre en correspondance d'un « backstore » avec une instance cible.
Exemple 24.1. Exemple de mise en correspondance d'un « backstore » avec l'instance cible.
/> tcm_fc/00:11:22:33:44:55:66:77
/> tcm_fc/00:11:22:33:44:55:66:77/> tcm_fc/00:11:22:33:44:55:66:77
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /> luns/ create /backstores/fileio/example2
/> luns/ create /backstores/fileio/example2/> luns/ create /backstores/fileio/example2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Autoriser l'accès au LUN à partir d'un initiateur FCoE.
/> acls/ create 00:99:88:77:66:55:44:33
/> acls/ create 00:99:88:77:66:55:44:33/> acls/ create 00:99:88:77:66:55:44:33
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le LUN devrait désormais être accessible à cet initiateur. - Pour rendre les changements persistants à travers les démarrages, utiliser la commande
saveconfig
et tapezyes
lorsqu'on vous y invite, sinon la configuration sera perdue au second démarrage. - Quittez
targetcli
en saisissantexit
ou ctrl+D.
24.1.8. Supprimer les objets par la commande targetcli Copier lienLien copié sur presse-papiers!
/> /backstores/backstore-type/backstore-name
/> /backstores/backstore-type/backstore-name
/> /iscsi/iqn-name/tpg/acls/ delete iqn-name
/> /iscsi/iqn-name/tpg/acls/ delete iqn-name
/> /iscsi delete iqn-name
/> /iscsi delete iqn-name
24.1.9. Références targetcli Copier lienLien copié sur presse-papiers!
targetcli
, référez-vous aux ressources suivantes :
man targetcli
- La page man
targetcli
inclut un exemple. - Linux SCSI Target Wiki
- Screencast par Andy Grover
Note
Chargé le 28 février 2012. Le nom du service a changé. Il est passé detargetcli
àtarget
.