Ricerca nel sito web

Creare un'archiviazione sicura centralizzata utilizzando target/iniziatore iSCSI su RHEL/CentOS 7 - Parte 12


iSCSI è un protocollo a livello di blocco per la gestione di dispositivi di archiviazione su reti TCP/IP, specialmente su lunghe distanze. La destinazione iSCSI è un disco rigido remoto presentato da una destinazione (o) server iSCSI remoto. D'altra parte, il client iSCSI è chiamato Iniziatore e accederà allo spazio di archiviazione condiviso nel computer Target.

In questo articolo sono state utilizzate le seguenti macchine:

Server (destinazione):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.29
Ports Used : TCP 860, 3260

Cliente (iniziatore):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.30
Ports Used : TCP 3260

Passaggio 1: installazione dei pacchetti sulla destinazione iSCSI

Per installare i pacchetti necessari per il target (del client ci occuperemo più avanti), eseguire:


yum install targetcli -y

Al termine dell'installazione, avvieremo e abiliteremo il servizio come segue:


systemctl start target
systemctl enable target

Infine, dobbiamo consentire il servizio in firewalld:


firewall-cmd --add-service=iscsi-target
firewall-cmd --add-service=iscsi-target --permanent

E, ultimo ma non meno importante, non dobbiamo dimenticare di consentire il rilevamento del target iSCSI:


firewall-cmd --add-port=860/tcp
firewall-cmd --add-port=860/tcp --permanent
firewall-cmd --reload

Passaggio 2: definizione dei LUN nel server di destinazione

Prima di procedere alla definizione dei LUN nel Target, dobbiamo creare due volumi logici come spiegato nella Parte 6 della serie RHCSA (“Configurazione dello storage di sistema ").

Questa volta li chiameremo vol_projects e vol_backups e li posizioneremo all'interno di un gruppo di volumi chiamato vg00, come mostrato in Fig. 1. Sentitevi liberi di scegli lo spazio assegnato a ciascun LV:

Dopo aver creato i LV, siamo pronti a definire i LUN nel Target per renderli disponibili per la macchina client.

Come mostrato nella Fig. 2, apriremo una shell targetcli ed eseguiremo i seguenti comandi, che creeranno due backstore di blocchi (risorse di archiviazione locale che rappresentano il LUN che l'iniziatore utilizzerà effettivamente) e un Nome qualificato Iscsi (IQN), un metodo per indirizzare il server di destinazione.

Fare riferimento alla pagina 32 della RFC 3720 per maggiori dettagli sulla struttura dell'IQN. In particolare, il testo dopo i due punti (:tgt1) specifica il nome del target, mentre il testo prima di (server:) indica l'hostname del target all'interno del dominio.


targetcli
cd backstores
cd block
create server.backups /dev/vg00/vol_backups
create server.projects /dev/vg00/vol_projects
cd /iscsi
create iqn.2016-02.com.tecmint.server:tgt1

Con il passaggio precedente, è stato creato un nuovo TPG (Target Portal Group) insieme al portale predefinito (una coppia composta da un indirizzo IP e una porta che è il modo in cui gli iniziatori può raggiungere il target) in ascolto sulla porta 3260 di tutti gli indirizzi IP.

Se desideri associare il tuo portale a un IP specifico (l'IP principale di Target, ad esempio), elimina il portale predefinito e creane uno nuovo come segue (altrimenti, salta i seguenti comandi targetcli. Nota che per semplicità li abbiamo saltati):


cd /iscsi/iqn.2016-02.com.tecmint.server:tgt1/tpg1/portals
delete 0.0.0.0 3260
create 192.168.0.29 3260

Ora siamo pronti per procedere con la creazione delle LUN. Tieni presente che stiamo utilizzando i backstore che abbiamo creato in precedenza (server.backups e server.projects). Questo processo è illustrato in Fig. 3:


cd iqn.2016-02.com.tecmint.server:tgt1/tpg1/luns
create /backstores/block/server.backups
create /backstores/block/server.projects

L'ultima parte della configurazione di destinazione consiste nella creazione di un elenco di controllo di accesso per limitare l'accesso in base all'iniziatore. Poiché il nostro computer client si chiama "client ", aggiungeremo quel testo all'IQN. Fare riferimento alla Fig. 4 per i dettagli:


cd ../acls
create iqn.2016-02.com.tecmint.server:client

A questo punto possiamo la shell targetcli per mostrare tutte le risorse configurate, come possiamo vedere in Fig. 5:


targetcli
cd /
ls

Per uscire dalla shell targetcli, digita semplicemente exit e premi Invio. La configurazione verrà salvata automaticamente in /etc/target/saveconfig.json.

Come puoi vedere nella Fig. 5 sopra, abbiamo un portale in ascolto sulla porta 3260 di tutti gli indirizzi IP come previsto. Possiamo verificarlo utilizzando il comando netstat (vedi Fig. 6):


netstat -npltu | grep 3260

Questo conclude la configurazione del Target. Sentiti libero di riavviare il sistema e verificare che tutte le impostazioni sopravvivano al riavvio. In caso contrario, assicurati di aprire le porte necessarie nella configurazione del firewall e di avviare il servizio di destinazione all'avvio. Ora siamo pronti per configurare l'iniziatore e connetterci al client.

Passaggio 3: configurazione dell'iniziatore client

Nel client dovremo installare il pacchetto iscsi-initiator-utils, che fornisce il demone del server per il protocollo iSCSI (iscsid) così come iscsiadm<, l'utilità di amministrazione:


yum update && yum install iscsi-initiator-utils

Una volta completata l'installazione, aprire /etc/iscsi/initiatorname.iscsi e sostituire il nome dell'iniziatore predefinito (commentato in Fig. 7) con il nome precedentemente impostato nel ACL sul server (iqn.2016-02.com.tecmint.server:client).

Quindi salva il file ed esegui iscsiadm in modalità rilevamento puntando alla destinazione. In caso di successo, questo comando restituirà le informazioni sul target come mostrato in Fig. 7:


iscsiadm -m discovery -t st -p 192.168.0.29

Il passo successivo consiste nel riavviare e abilitare il servizio iscsid:


systemctl start iscsid
systemctl enable iscsid

e contattare il bersaglio in modalità nodo. Ciò dovrebbe comportare messaggi a livello di kernel che, una volta acquisiti tramite dmesg, mostrano l'identificazione del dispositivo fornita ai LUN remoti nel sistema locale (sde e sdf nella Fig. 8):


iscsiadm -m node -T iqn.2016-02.com.tecmint.server:tgt1 -p 192.168.0.29 -l
dmesg | tail

Da questo punto in poi, puoi creare partizioni o anche LV (e filesystem sopra di essi) come faresti con qualsiasi altro dispositivo di archiviazione. Per semplicità, creeremo una partizione primaria su ogni disco che occuperà tutto lo spazio disponibile e la formatteremo con ext4.

Infine, montiamo /dev/sde1 e /dev/sdf1 rispettivamente su /projects e /backups ( nota che queste directory devono essere create prima):


mount /dev/sde1 /projects
mount /dev/sdf1 /backups

Inoltre, puoi aggiungere due voci in /etc/fstab affinché entrambi i filesystem vengano montati automaticamente all'avvio utilizzando l'UUID di ciascun filesystem come restituito da blkid forte>.

Nota che l'opzione di montaggio _netdev deve essere utilizzata per rinviare il montaggio di questi filesystem fino all'avvio del servizio di rete:

Ora puoi utilizzare questi dispositivi come faresti con qualsiasi altro supporto di memorizzazione.

Riepilogo

In questo articolo abbiamo spiegato come impostare e configurare un target iSCSI e un iniziatore nelle distribuzioni RHEL/CentOS 7. Sebbene il primo compito non faccia parte delle competenze richieste per l'esame EX300 (RHCE), è necessario per implementare il secondo argomento.

Non esitate a farci sapere se avete domande o commenti su questo articolo: sentitevi liberi di scriverci utilizzando il modulo di commento qui sotto.

Se desideri configurare la destinazione iSCSI e l'iniziatore client su RHEL/CentOS 6, segui questa guida: Configurazione dell'archiviazione iSCSI centralizzata con l'iniziatore client.