GNU/Linux >> Linux Esercitazione >  >> Cent OS

Guida completa alla configurazione di iSCSI in CentOS / RHEL 7

Internet Small Computer System Interface (iSCSI) è uno standard basato su IP per la connessione di dispositivi di archiviazione. iSCSI utilizza reti IP per incapsulare i comandi SCSI, consentendo il trasferimento dei dati su lunghe distanze. iSCSI fornisce storage condiviso tra diversi sistemi client. I dispositivi di archiviazione sono collegati ai server (target). I sistemi client (iniziatori) accedono ai dispositivi di archiviazione remoti su reti IP. Ai sistemi client, i dispositivi di archiviazione sembrano essere collegati localmente. iSCSI utilizza l'infrastruttura IP esistente e non richiede alcun cablaggio aggiuntivo, come nel caso delle reti di archiviazione Fibre Channel (FC).

Configurazione di un server iSCSI

RHEL/CentOS 7 utilizza il sottosistema di destinazione del kernel Linux-IO (LIO) per iSCSI. Oltre a iSCSI, LIO supporta una serie di strutture di storage tra cui Fibre Channel over Ethernet (FCoE), accesso iSCSI su reti Mellanox InfiniBand (iSER) e accesso SCSI su reti Mellanox InfiniBand (SRP). In RHEL 7, tutte le strutture di archiviazione vengono gestite con targetcli utilità.

Per configurare il sistema RHEL come server iSCSI, inizia installando il pacchetto software targetcli:

# yum install targetcli

L'installazione del pacchetto software targetcli installa anche python-rtslib pacchetto, che fornisce il /usr/lib/systemd/system/target.service file. Prima di utilizzare l'utilità targetcli per creare, eliminare e visualizzare le destinazioni di archiviazione, utilizzare il comando systemctl per abilitare e avviare il servizio di destinazione sul server iSCSI.

# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
# systemctl start target

Utilità targetcli

L'utilità targetcli è la shell di amministrazione per creare, modificare e visualizzare la configurazione del sottosistema di destinazione del kernel. Esegui targetcli per accedere alla shell di configurazione.

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

/> help

Esegui la guida comando dal prompt di targetcli per visualizzare i comandi disponibili. Di seguito sono riportati alcuni dei comandi targetcli disponibili:

  • ls :Visualizza la gerarchia degli oggetti.
  • cd :attraversa la gerarchia degli oggetti.
  • crea :crea oggetti di archiviazione, destinazioni, LUN, portali di rete, elenchi di controllo degli accessi.
  • Esci :Esci dalla shell targetcli e salva automaticamente la configurazione.

Puoi anche inserire “targetcli [comando]”” per eseguire comandi senza entrare nella shell.

Backstore

I backstore sono i diversi tipi di risorse di archiviazione locali che la destinazione del kernel utilizza per "backup" i dispositivi SCSI che esporta nei sistemi client. Le mappature alle risorse di archiviazione locali create da ciascun backstore sono chiamate oggetti di archiviazione. Usa i cli di destinazione comando per elencare i diversi tipi di backstore.

# targetcli ls /backstores

I tipi di backstore sono descritti come segue:

  • blocco :dispositivi a blocchi Linux come /dev/sda
  • file :Qualsiasi file su un file system montato come /tmp/disk1.img
  • pscsi :qualsiasi oggetto di archiviazione che supporti i comandi SCSI pass-through
  • disco ram :dischi RAM per la copia in memoria

Per creare un backstore a blocchi dalla shell targetcli:

/> cd /backstores/block
/backstores/block> create name=LUN_1 dev=/dev/xvdb

Per creare un backstore fileio dalla shell targetcli:

/> cd /backstores/fileio
/backstores/fileio> create name=LUN_3 /root/disk1.img 5G

Creazione di una destinazione iSCSI

Per creare una destinazione iSCSI dalla shell targetcli, usa il comando cd per passare alla directory /iscsi.

/> cd /iscsi
/iscsi>

Utilizzare il comando create senza alcun argomento per creare una destinazione iSCSI utilizzando un nome di destinazione predefinito. Per impostazione predefinita, il target è identificato da un "iqn ” identificatore. Questo è un Nome qualificato iSCSI (IQN) , che identifica in modo univoco una destinazione. Gli indirizzi in formato IQN sono più comunemente usati per identificare un target. Questo indirizzo è composto dai seguenti campi:

  • Iqn letterale
  • Data (in formato aaaa-mm) in cui l'autorità di denominazione ha assunto la proprietà del dominio
  • Nome di dominio invertito dell'autorità
  • Facoltativo ":" che antepone un nome di destinazione di archiviazione specificato dall'autorità di denominazione
/> cd /iscsi 
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> 

Per elencare i target creati, usa il comando seguente.

# targetcli ls /iscsi

Per consentire ai sistemi remoti di accedere a una destinazione iSCSI sulla porta 3260, disabilitare il servizio firewalld sul server iSCSI o configurare firewalld in modo che consideri attendibile la porta 3260/tcp. L'esempio seguente utilizza firewall-cmd per aprire la porta 3260/tcp per il servizio firewalld.

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

Se includi il –permanente opzione quando si aggiunge una porta, utilizzare il comando firewall-cmd per ricaricare la configurazione.

# firewall-cmd –reload

Creazione di LUN iSCSI

La destinazione del kernel esporta le unità logiche SCSI in sistemi remoti. Utilizzare la shell targetcli per collegare gli oggetti di archiviazione definiti in precedenza con una destinazione e per specificare quale numero di unità logica (LUN) utilizza il dispositivo. L'esempio seguente utilizza il comando create per creare due nuovi LUN per una destinazione. Dalla shell targetcli, inizia usando il comando cd per passare alla directory luns all'interno della gerarchia [target/TGP].

/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/
/iscsi/iqn.20....b0df6e328beb> cd tpg1/luns

I seguenti comandi creano una LUN dagli oggetti di archiviazione a blocchi definiti in precedenza.

/iscsi/iqn.20...beb/tpg1/luns> create /backstores/block/LUN_1 lun1
Created LUN 1.

Creazione di ACL

Gli elenchi di controllo di accesso (ACL) limitano l'accesso alle LUN da sistemi remoti. È possibile creare un ACL per ogni iniziatore per imporre l'autenticazione quando l'iniziatore si connette alla destinazione. Ciò consente di concedere a un iniziatore specifico l'accesso esclusivo a una destinazione specifica. L'esempio seguente usa il comando create per creare un ACL per un iniziatore. Dalla shell targetcli, inizia usando il comando cd per passare alla directory acls all'interno della gerarchia [target/TGP].

/> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/tpg1/acls 
/iscsi/iqn.20...beb/tpg1/acls> create iqn.1994-05.com.redhat:aabb51a64012
Created Node ACL for iqn.1994-05.com.redhat:aabb51a64012
Created mapped LUN 1.

Configurazione di un iniziatore iSCSI

Per configurare un sistema Linux come iniziatore iSCSI, installa iscsi-initiator-utils pacchetto software. Questo pacchetto è l'iniziatore Linux Open-iSCSI.

# yum install iscsi-initiator-utils

Il pacchetto installa diversi file inclusi i seguenti:

  • /etc/iscsi/iscsid.conf :il file di configurazione letto da iscsid e iscsiadm. Questo file è pesantemente commentato con descrizioni per ogni direttiva di configurazione.
  • /sbin/iscsid :il demone Open-iSCSI che implementa il percorso di controllo e le strutture di gestione
  • /sbin/iscsiadm :l'utilità di amministrazione Open-iSCSI utilizzata per rilevare e accedere a destinazioni iSCSI

Modifica /etc/iscsi/initiatorname.iscsi file e sostituire il parametro InitiatorName con il nome dell'iniziatore configurato in precedenza come ACL sulla destinazione. C'è un nome iniziatore iscsi predefinito definito in questo file. Se hai utilizzato lo stesso nome durante la configurazione dell'ACL, non dovrai modificare nulla qui.

# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:aabb51a64012

Utilizzare il comando systemctl per abilitare e avviare il servizio iscsid.

# systemctl enable iscsid
# systemctl start iscsid
Comprensione dell'utilità iscsiadm in CentOS / RHEL

Scoperta iSCSI

La scoperta è il processo che rende noti gli obiettivi a un iniziatore. L'esempio seguente usa il metodo di rilevamento SendTargets per rilevare le destinazioni sull'indirizzo IP 192.168.12.13. Questo comando avvia anche il demone iscsid, se necessario.

# iscsiadm -m discovery --type sendtargets –p 192.168.12.13

Dopo il rilevamento, la tabella nodes e le tabelle send_targets nel database vengono aggiornate:

# ls /var/lib/iscsi/nodes
iqn.2011-12.com.example.mypc:tgt1 
iqn.2011-12.com.example.mypc:tgt2 
iqn.2012-11.com.example.mypc:tgt3
# ls /var/lib/iscsi/send_targets
192.168.12.13,3260

Sessioni iniziatore iSCSI

Una sessione è una connessione TCP tra una porta del nodo iniziatore e una porta del nodo di destinazione. Le LUN non sono accessibili fino a quando non viene stabilita una sessione. Usa l'opzione -l (o –login) per stabilire una sessione:

# iscsiadm -m node -l

Per accedere a una destinazione specifica:

# iscsiadm -m node --targetname iqn.2011-12.com.example.mypc:tgt1 –p 192.0.2.102:3260 –l

Utilizzare l'opzione -u (o –logout) per chiudere una sessione. Per visualizzare le informazioni sulla sessione:

# iscsiadm -m session [-P [printlevel]]

I livelli di stampa sono 1, 2 e 3. Ciascuno mostra più dettagli.


Cent OS
  1. Una guida definitiva per aggiornare il kernel su CentOS/RHEL/Fedora

  2. CentOS / RHEL 7:configurazione di un server NFS e un client NFS

  3. Come configurare iSCSI Initiator (client) in CentOS/RHEL 6

  4. Configurazione dell'archiviazione persistente in CentOS/RHEL 5,6 per il percorso singolo utilizzando le regole udev

  5. Guida per principianti all'ottimizzazione dei profili in CentOS/RHEL

Come configurare l'archiviazione GlusterFS su CentOS 7 / RHEL 7

Configurazione di SpaceWalk / Caricamento di contenuti su SpaceWalk in CentOS 6 / RHEL 6

Come configurare il cluster ad alta disponibilità su CentOS 7 / RHEL 7

Installa e configura GlusterFS su CentOS 7 / RHEL 7

CentOS / RHEL 7:Guida per principianti alle unità di servizio systemd

Come configurare la destinazione iSCSI utilizzando targetcli in CentOS / RHEL 7