Targetcli – Configurer des cibles ISCSI

RHEL7: Configuration Client/Serveur ISCSI

Présentation

Dans le monde ISCSI, il y a deux types d’agent :

  • L’ iSCSI target le serveur de stockage
  • L’iSCSI initiator le client qui se connecte sur les cibles iscsi

On dispose donc de deux machines.

Configuration des cibles iSCSI “target”

Avec Red hat 7, L’outil targetcli permet de mettre en oeuvre des cibles

Étape à suivre pour mettre en oeuvre le serveur

Installer targetcli :

# yum install -y targetcli

Activer le service au boot :

# systemctl enable target

Lancer le Shell Targetcli:

# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb34
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/;

Deux options pour le stockage:

  • On crée un stockage de type fileio, un fichier dans un répertoire . ce fichier se nomme shareIso et fait 10G in repertoire /store :
    /; backstores/fileio/ create shareIso  
    /store/shareIso .img 10G
    Created fileio shareIso with size 1048576000

     

  • On crée un stockage à partir d’un Volume logique (# lvcreate –name lv_vm_rhel –size 100G vg_iscsi):
  • /; backstores/block/ create block1 /dev/vg_iscsi/ lv_vm_rhel
    Created block storage object block1 using /dev/vg_iscsi/ lv_vm_rhel.

On crée ensuite deux IQN (Iscsi Qualified Name) nommés iqn.2016-01.lan.alphorm avec pour nom de cibles rhel et iso associés au TPG 1 (Target Portal Group) :

/; iscsi/ create  iqn.2016-01.lan.alphorm:rhel
Created target iqn.2016-01.lan.alphorm:rhel.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

 

/; iscsi/ create  iqn.2016-01.lan.alphorm:iso
Created target iqn.2016-01.lan.alphorm:iso.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

L’arborescence pour l’iqn iqn.2016-01.lan.alphorm:rhel est maintenant créée

/; cd iscsi/iqn.2016-01.lan.alphorm:rhel/tpg1
/iscsi/iqn.20...horm:rhel/tpg1; ls
o- tpg1 ................................................. [no-gen-acls, no-auth]
  o- acls ............................................................ [ACLs: 0]
  o- luns ............................................................ [LUNs: 0]
  o- portals ...................................................... [Portals: 1]
    o- 0.0.0.0:3260 ....................................................... [OK]

3 objets disponibles en dessous de tpg1L

  • les LUNSs
  • Les listes de controle d’access –
  • Le portal.

Création d’un portal

/iscsi/iqn.20...phorm:rhel/tpg1; portals/ create
Using default IP port 3260
Binding to INADDR_ANY (0.0.0.0)
Created network portal 0.0.0.0:3260.

Création des LUNs

  • Fileio backstore:
    /iscsi/iqn.20...phorm:iso/tpg1; luns/ create /backstores/fileio/shareIso
     Created LUN 0.
  • Block backstore:
    /iscsi/iqn.20...phorm:rhel/tpg1; luns/ create /backstores/block/block1
     Created LUN 0.

On positionne des acls sur l’iqn , iqn.2016-01.lan.alphorm:rhel :

/iscsi/iqn.20...phorm:rhel/tpg1; acls/ create iqn.2016-01.lan.alphorm:client
Created Node ACL for iqn.2016-01.lan.alphorm:client
Created mapped LUN 0

On peut mettre l’authentification CHAP

/iscsi/iqn.20...phorm;rhel/tpg1; cd acls/iqn.2016-01.lan.alphorm:client/
/iscsi/iqn.20...alphorm:client; set auth userid=user
Parameter userid is now 'usr'.
/iscsi/iqn.20...alphorm:client; set auth password=pwd
Parameter password is now 'pwd'.

Now, to check the configuration, type:

/iscsi/iqn.20...alphorm:iso; cd ../..
/iscsi/iqn.20...orm:iso/tpg1; ls
o- tpg1 ................................................. [no-gen-acls, no-auth]
  o- acls ............................................................ [ACLs: 1]
  | o- iqn.2016-01.lan.alphorm:client ......................... [Mapped LUNs: 1]
  |   o- mapped_lun0 ............................. [lun0 fileio/shareiso (rw)]
  o- luns ............................................................ [LUNs: 1]
  | o- lun0 .......................... [fileio/shareiso (/store/shareiso.img)]
  o- portals ...................................................... [Portals: 1]
    o- 0.0.0.0:3260 ....................................................... [OK]

On peut sortir de targetcli, la configuration est terminée :

/iscsi/iqn.20...alphorm:iso/tpg1; exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

La configuration est sauvée dans un fichier json !

On autorise le port tpc/3260 pour iscsi :

# firewall-cmd --permanent --add-port=3260/tcp
Success

Recharge le configuratioin du firewall :

# firewall-cmd --reload
Success

Configuration du client – iSCSI initiator

Installation du service initiateur iscsi

# yum install -y iscsi-initiator-utils

Éditer le fichier /etc/iscsi/initiatorname.iscsi et ajouter l’iqn du client

InitiatorName=iqn.2016-01.lan.alphorm:client

Éditer le fichier the /etc/iscsi/iscsid.conffile et ajouter les lignes suivantes :

node.session.auth.authmethod = CHAP
node.session.auth.username = user
node.session.auth.password = pwd

Démarrer le service iscsi service:

# systemctl start iscsi

Important : le service iscsim n’est pas confondre avec iscsd. LeService ISCSI doit être démarrer pour démonter les cibles lors du reboot de la machine

Découverte des cibles avec iscsiadm (le portal 192.168.10.100):

# iscsiadm --mode discovery --type sendtargets --portal 192.168.10.100
192.168.10.100:3260,1 iqn.2016-01.lan.alphorm:rhel
192.168.10.100:3260,1 iqn.2106-01.lana.alphorm:iso

Lancer iscsiadm em mode node pour se loguer sur les cibles :

# iscsiadm --mode node --targetname iqn.2016-01.lan.alphorm:rhel --portal 192.168.10.100 --login
Logging in to [iface: default, target: iqn.2016-01.lan.alphorm:rhel  portal: 192.168.10.100,3260] (multiple)
Login to [iface: default, target: iqn.2016-01.lan.alphorm:iso, portal: 192.168.10.100,3260] successful.

Afficher les périphériques bloc :

# lsblk --scsi
NAME HCTL       TYPE VENDOR   MODEL             REV TRAN
sda  2:0:0:0    disk LIO-ORG  shareiso       4.0  iscsi

T

# lsblk | egrep "NAME|sdc"
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdc                  8:0    0  10G  0 disk

Dump de la session (3=max output, 0=min output):

# iscsiadm -m session -P 3
iSCSI Transport Class version 2.0-870
version 6.2.0.873-28
Target: iqn.2016-06.lan.alphorm:rhel (non-flash)
	Current Portal: 192.168.10.100:3260,1
	Persistent Portal: 192.168.10.100:3260,1
		**********
		Interface:
		**********
		Iface Name: default
		Iface Transport: tcp
		Iface Initiatorname: iqn.2014-08.lan.alphorm:client
		Iface IPaddress: 192.168.10.10
		Iface HWaddress: 
		Iface Netdev: 
		SID: 1
		iSCSI Connection State: LOGGED IN
		iSCSI Session State: LOGGED_IN
		Internal iscsid Session State: NO CHANGE
		*********
		Timeouts:
		*********
		Recovery Timeout: 120
		Target Reset Timeout: 30
		LUN Reset Timeout: 30
		Abort Timeout: 15
		*****
		CHAP:
		*****
		username: user
		password: ********
		username_in: 
		password_in: ********
		************************
		Negotiated iSCSI params:
		************************
		HeaderDigest: None
		DataDigest: None
		MaxRecvDataSegmentLength: 262144
		MaxXmitDataSegmentLength: 262144
		FirstBurstLength: 65536
		MaxBurstLength: 262144
		ImmediateData: Yes
		InitialR2T: Yes
		MaxOutstandingR2T: 1
		************************
		Attached SCSI devices:
		************************
		Host Number: 2	State: running
		scsi2 Channel 00 Id 0 Lun: 0
			Attached scsi disk sda		State: running

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.