Nozioni di base di iSCSI:
Il server di archiviazione iSCSI viene utilizzato per condividere dispositivi a blocchi come partizioni HDD/SSD o partizioni LVM o file di blocco sulla rete. I client iSCSI possono utilizzare queste condivisioni sulla rete proprio come qualsiasi normale HDD o SSD montato su di esso. Il client iSCSI può formattare questi dischi, montarli e archiviare file e directory come al solito.
Fig 1: architettura client-server iSCSI
Ciascun client iSCSI ha un ID iniziatore che viene utilizzato per connettersi alle destinazioni sul server.
Le destinazioni sono condivisioni sul server iSCSI. Ogni target è costituito da un nome univoco (IQN), il percorso del dispositivo a blocchi (i.e. partizione del disco o file di blocco), l'ID iniziatore che può connettersi a questa destinazione e un sistema di autenticazione basato su nome utente e password opzionale.
Nella figura 1, il server di archiviazione iSCSI consente a 3 iniziatori (3 client iSCSI) di connettersi a 4 target. iniziatore01 può connettersi a target01 e obiettivo02, iniziatore02 può connettersi a obiettivo03, e iniziatore03 può connettersi a obiettivo04.
Topologia di rete:
La topologia di rete utilizzata in questo articolo è riportata in fig 2. Qui configurerò un Ubuntu 18.04 Server LTS come server iSCSI. Il server iSCSI ha un indirizzo IP statico 192.168.20.168. Il client iSCSI è anche sulla rete 192.168.20.0/24. Quindi, può accedere al server iSCSI.
Convenzioni di denominazione di iSCSI Target e Initiator:
Il nome della destinazione iSCSI e il nome dell'iniziatore devono essere univoci.
Il formato di denominazione della destinazione è:
iqn.AAAA-MM.nome-dominio inverso: nome-obiettivoEsempio: iqn.2020-03.come.linuxhint: www, iqn.2020-03.come.linuxhint: log,
iqn.2020-03.come.linuxhint:user-bob ecc.
Il formato di denominazione dell'iniziatore è:
iqn.AAAA-MM.nome-dominio inverso: nome-iniziatoreEsempio: iqn.2020-03.come.linuxhint:initiator01, iqn.2020-03.come.linuxhint:iniziatore02,
iqn.2020-03.come.linuxhint:initiator03 ecc.
Configurazione dell'IP statico:
Innanzitutto, imposta un indirizzo IP statico sul tuo server iSCSI. Se hai bisogno di assistenza, controlla il mio articolo Configurazione dell'IP statico su Ubuntu 18.04 Sistema operativo desktop e server LTS.
Installazione del server iSCSI:
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
Ora, installa il server iSCSI come segue:
$ sudo apt install tgt
Per confermare l'installazione, premere sì e poi premere
Il server iSCSI dovrebbe essere installato.
Condivisione di blocchi di file tramite iSCSI:
Puoi condividere blocchi di file creati con il comando dd tramite iSCSI.
Innanzitutto, crea una nuova directory in cui desideri conservare tutti i blocchi di file come segue:
$ sudo mkdir -pv /iscsi/blocks
Ora, crea un nuovo blocco di file www.img nella directory /iscsi/blocks/ come segue:
$ sudo dd if=/dev/zero of=/iscsi/blocks/www.img bs=1M conteggio=1024 status=progress
Ora, crea un nuovo file di configurazione di destinazione iqn.2020-03.come.linuxhint.www.conf nel /etc/tgt/conf.d/ directory come segue:
$ sudo nano /etc/tgt/conf.d/iqn.2020-03.come.linuxhint.www.conf
Ora, digita le seguenti righe nel file di configurazione e salva il file premendo
backing-store /iscsi/blocks/www.img
nome-iniziatore iqn.2020-03.come.linuxhint:iniziatore01
incominguser linuxhint segreto
Qui, il nome del target è definito nel tag target.
backing-store è impostato sul percorso del file di blocco.
nome-iniziatore viene utilizzato per impostare l'ID iniziatore che sarà autorizzato ad accedere al target.
utente in arrivo la riga viene utilizzata per impostare il nome utente e la password che l'iniziatore utilizzerà per l'autenticazione.
Condivisione di HDD/SSD tramite iSCSI:
È inoltre possibile condividere l'intero HDD/SSD o una o più partizioni HDD/SSD tramite iSCSI. Se condividi l'intero HDD/SSD, le partizioni di quell'HDD/SSD saranno accessibili anche dall'iniziatore o dal client iSCSI.
Innanzitutto, trova il nome dell'HDD/SSD o il nome della partizione dell'HDD/SSD che desideri condividere con il seguente comando:
$ sudo lsblk
Ora, crea un nuovo file di configurazione di destinazione iqn.2020-03.come.linuxhint.dati.conf nel /etc/tgt/conf.d/ directory come segue:
$ sudo nano /etc/tgt/conf.d/iqn.2020-03.come.linuxhint.www.conf
Ora, digita le seguenti righe nel file di configurazione e salva il file.
backing-store /dev/sdb
nome-iniziatore iqn.2020-03.come.linuxhint:iniziatore01
incominguser linuxhint segreto
Ecco, ho condiviso l'intero HDD /dev/sdb tramite iSCSI. Se vuoi condividere una singola partizione, puoi impostare backing-store per /dev/sdb1 o /dev/sdb2 e così via.
Riavvio del servizio iSCSI:
Se si apportano modifiche al file di configurazione di destinazione iSCSI, eseguire il comando seguente per rendere effettive le modifiche:
$ sudo systemctl riavvia tgt
Il servizio iSCSI dovrebbe essere in esecuzione.
$ sudo systemctl status tgt
Anche la porta del server iSCSI 3260 dovrebbe essere aperta come puoi vedere nello screenshot qui sotto.
$ sudo netstat -tlpn
Aggiunta del servizio iSCSI all'avvio del sistema:
Per avviare il servizio iSCSI all'avvio, eseguire il comando seguente:
$ sudo systemctl abilita tgt
Configurazione del cliente:
È necessario disporre degli strumenti client iSCSI installati sul client per utilizzare le condivisioni iSCSI.
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
Ora installa open-iscsi pacchetto con il seguente comando:
$ sudo apt install open-iscsi
Per confermare l'installazione, premere sì e poi premere
open-iscsi dovrebbe essere installato.
Ora aggiungi il iscsid servizio all'avvio del sistema come segue:
$ sudo systemctl abilita iscsid
Ora apri il /etc/iscsi/nomeiniziatore.iscsi file di configurazione.
$ sudo nano /etc/iscsi/nomeiniziatore.iscsi
Ora, imposta Nome iniziatore al nome del tuo iniziatore e salva il file.
Ora apri il /etc/iscsi/iscsid.conf file con il seguente comando:
$ sudo nano /etc/iscsi/iscsid.conf
Ora, decommenta la riga contrassegnata.
Commenta la riga segnata.
Infine, il Impostazioni di avvio dovrebbe essere il seguente.
Decommenta le righe segnate.
Imposta qui il tuo nome utente e password e salva il file.
Ora, scansiona il server iSCSI per le destinazioni come segue:
$ sudo iscsiadm -m discovery -t sendtargets -p 192.168.20.168Come puoi vedere, gli obiettivi sono elencati.
Ora puoi accedere a un target specifico come segue:
$ sudo iscsiadm -m nodo -p 192.168.20.168 -T iqn.2020-03.come.linuxhint:www --loginQui, 192.168.20.168 è l'indirizzo IP del server iSCSI e iqn.2020-03.come.linuxhint: www è il nome di destinazione.
Puoi anche accedere a tutti i target disponibili con il seguente comando:
$ sudo iscsiadm -m nodo -p 192.168.20.168 --login
Una volta effettuato l'accesso alle destinazioni, i dischi iSCSI dovrebbero essere disponibili per il tuo client. Ora puoi partizionarli, formattarli o montarli come preferisci.
$ sudo lsblk -e7
Puoi anche creare partizioni nei tuoi dischi iSCSI usando fdisk, cdisk, parted, dischi GNOME, GParted o qualsiasi altro software di partizionamento. Per sapere come usare fdisk per partizionare i dischi, consulta il mio articolo Come usare fdisk in Linux.
Puoi anche formattare le tue partizioni.
$ sudo mkfs.ext4 -L www /dev/sdb1
Montaggio automatico di partizioni iSCSI:
Per montare una partizione iSCSI, creare un punto di montaggio come segue:
$ sudo mkdir /www
Ora apri il /etc/fstab file come segue:
$ sudo nano /etc/fstab
Ora, digita la seguente riga nel /etc/fstab file e salva il file.
/dev/sdb1 /www/ ext4 defaults,auto,_netdev 0 0
NOTA: Assicurati di aggiungere il _netdev opzione nel /etc/fstab file. Altrimenti, il tuo client non si avvierà.
Ora puoi montare la partizione iSCSI come segue:
$ sudo mount /www
La partizione deve essere montata.
Ora puoi cambiare il proprietario e il gruppo del punto di montaggio con il tuo nome utente di accesso e il nome del gruppo, se necessario.
$ sudo chown -Rfv $(whoami):$(whoami) /www
Ora puoi archiviare qualsiasi file nella tua partizione iSCSI.
Quindi, è così che configuri il server di archiviazione iSCSI su Ubuntu 18.04 LTS. Grazie per aver letto questo articolo.