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 *