Montare un disco remoto tramite ISCSI

Oggi parliamo di come montare un dispositivo iSCSI su Linux. Tale disco remoto potrebbe essere messo a disposizione da un NAS o una SAN

Prima di proseguire, introduciamo questi due termini:

  • Target, è il disco remoto che vogliamo montare. Viene messo a disposizione dal NAS/SAN ed ha un nome (IQN)
  • Initiator, è il client che deve utilizzare il disco remote (cioè la nostra linux box)
Una nota importante: utilizzate sempre connessioni ethernet ad alta velocità per avere performance decenti! (quindi almeno 1gigabit/s)

Procediamo con la configurazione di Linux, supponendo che il disco remoto sia raggiungibile all'indirizzo IP 10.0.0.3 e che abbia il nome (IQN) "iqn.discoremoto1".
Per prima cosa installiamo il pacchetto open-iscsi (esempi relativi ad Ubuntu Linux)

$ sudo apt-get install open-iscsi

Utilizzando il seguento comando visualizzeremo tutti i target presenti sul NAS

$ sudo iscsiadm -m discovery -t st -p 10.0.0.3 10.0.0.3:3260,1 iqn.discoremoto1

Adesso configuriamo lo connessione verso il target, fornendo username e password che sono stati impostati sul NAS.

$ sudo iscsiadm --mode node --targetname "iqn.discoremoto1" -p 10.0.0.3:3260 --op=update --name node.session.auth.authmethod --value=CHAP $ sudo iscsiadm --mode node --targetname "iqn.discoremoto1" -p 10.0.0.3:3260 --op=update --name node.session.auth.username --value=USERNAME $ sudo iscsiadm --mode node --targetname "iqn.discoremoto1" -p 10.0.0.3:3260 --op=update --name node.session.auth.password --value=PASSWORD $ sudo iscsiadm --mode node --targetname "iqn.discoremoto1" -p 10.0.0.3:3260 --op=update --name node.startup --value=automatic $ sudo iscsiadm --mode node --targetname "iqn.discoremoto1" -p 10.0.0.3:3260 --login

Adesso il dispositivo è disponibile sul nostro sistema. Dobbiamo scoprire quale nome gli è stato assegnato, ad esempio utilizziamo

$ dmesg | grep sd [ 23.131189] sd 8:0:0:0: [sdc] 4294967296 512-byte logical blocks: (2.19 TB/2.00 TiB) [ 23.132637] sd 8:0:0:0: [sdc] Write Protect is off [ 23.132640] sd 8:0:0:0: [sdc] Mode Sense: 43 00 00 08 [ 23.158651] sd 8:0:0:0: [sdc] Attached SCSI disk

quindi il dispositivo si chiama "sdc".

Se è la prima volta che viene utilizzato procediamo con la formattazione e la creazione di partizioni e filesystem, altrimenti saltate questo passaggio (che vi farebbe perdere tutti i dati presenti sul disco :-O ). Nell'esempio seguente creiamo un'unica partizione con filesystem EXT4.

$ sudo parted /dev/sdc mklabel gpt mkpart primary 0 100% $ sudo mkfs.ext4 /dev/sdc1

Bene, è tutto pronto. Non ci resta che montare il disco (nell'esempio nella cartella /storage):

$ sudo mkdir /storage $ sudo mount -t auto /dev/sdc1 /storage $ sudo vi /etc/fstab # aggiungere la riga seguente /dev/sdc1 /storage ext4 defaults,auto,_netdev,noatime,nodiratime 0 0

Terminato! Da questo momento il disco remoto è utilizzabile come se fosse fisicamente sul vostro pc/server.