iSCSI Ubuntu · 9 min read · Feb 07, 2026

Utilizzare iSCSI su Ubuntu 9.04 (Inizializzatore e Destinazione)

Utilizzare iSCSI su Ubuntu 9.04 (Inizializzatore e Destinazione)

Versione 1.0
Autore: Falko Timme

Questa guida spiega come puoi configurare un target iSCSI e un initiator iSCSI (client), entrambi in esecuzione su Ubuntu 9.04. Il protocollo iSCSI è un protocollo di rete di archiviazione (SAN) che consente agli initiator iSCSI di utilizzare dispositivi di archiviazione sul target iSCSI (remoto) utilizzando normali cavi ethernet. Per l’inizializzatore iSCSI, l’archiviazione remota appare come un normale disco rigido collegato localmente.

Non rilascio alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Sto utilizzando due server Ubuntu 9.04 qui:

  • server1.example.com (Inizializzatore): indirizzo IP 192.168.0.100
  • server2.example.com (Destinazione): indirizzo IP 192.168.0.101

Poiché eseguiremo tutti i passaggi di questo tutorial con privilegi di root, possiamo sia anteporre tutte le comandi in questo tutorial con la stringa sudo, oppure diventare root subito digitando

sudo su 

2 Configurazione del Target (server2)

server2:

Prima configuriamo il target (server2):

aptitude install iscsitarget

Apri /etc/default/iscsitarget…

vi /etc/default/iscsitarget

… e imposta ISCSITARGET_ENABLE su true:

| ISCSITARGET_ENABLE=true |

Possiamo utilizzare volumi logici non utilizzati, file immagine, dischi rigidi (ad es. /dev/sdb), partizioni di dischi rigidi (ad es. /dev/sdb1) o dispositivi RAID (ad es. /dev/md0) per l’archiviazione. In questo esempio creerò un volume logico di 20GB chiamato storage_lun1 nel gruppo di volumi vg0:

lvcreate -L20G -n storage_lun1 vg0 

(Se desideri utilizzare un file immagine, puoi crearlo come segue:

mkdir /storage
dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000

Questo crea il file immagine /storage/lun1.img con una dimensione di 20GB.

)

Successivamente, modifichiamo /etc/ietd.conf…

vi /etc/ietd.conf

… e commentiamo tutto in quel file. Alla fine aggiungiamo il seguente brano:

| [...] Target iqn.2001-04.com.example:storage.lun1 IncomingUser someuser secret OutgoingUser Lun 0 Path=/dev/vg0/storage_lun1,Type=fileio Alias LUN1 #MaxConnections 6 |

Il nome del target deve essere un nome globalmente unico, lo standard iSCSI definisce il “Nome Qualificato iSCSI” come segue: iqn.yyyy-mm.[:identificatore]; yyyy-mm è la data in cui il dominio è valido; l’identificatore è liberamente selezionabile. La riga IncomingUser contiene un nome utente e una password in modo che solo gli initiator (client) che forniscono questo nome utente e password possano accedere e utilizzare il dispositivo di archiviazione; se non hai bisogno di autenticazione, non specificare un nome utente e una password nella riga IncomingUser. Nella riga Lun, dobbiamo specificare il percorso completo del dispositivo di archiviazione (ad es. /dev/vg0/storage_lun1, /storage/lun1.img, /dev/sdb, ecc.).

Ora diciamo al target che vogliamo consentire connessioni al dispositivo iqn.2001-04.com.example:storage.lun1 dall’indirizzo IP 192.168.0.100 (server1.example.com)…

vi /etc/initiators.allow

| [...] iqn.2001-04.com.example:storage.lun1 192.168.0.100 |

… e avviamo il target:

/etc/init.d/iscsitarget start  

3 Configurazione dell’Inizializzatore (server1)

server1:

Su server1, installiamo l’inizializzatore:

aptitude install open-iscsi

Successivamente, apriamo /etc/iscsi/iscsid.conf…

vi /etc/iscsi/iscsid.conf

… e impostiamo node.startup su automatico:

| [...] node.startup = automatico [...] |

Poi riavviamo l’inizializzatore:

/etc/init.d/open-iscsi restart

Ora ci connettiamo al target (server2) e controlliamo quali dispositivi di archiviazione ha da offrire:

iscsiadm -m discovery -t st -p 192.168.0.101

server1:~# iscsiadm -m discovery -t st -p 192.168.0.101
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

iscsiadm -m node

server1:~# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

Le impostazioni per il dispositivo di archiviazione iqn.2001-04.com.example:storage.lun1 su 192.168.0.101:3260,1 sono memorizzate nel file /etc/iscsi/nodes/iqn.2001-04.com.example:storage.lun1/192.168.0.101,3260,1/default. Dobbiamo impostare il nome utente e la password per il target in quel file; invece di modificare manualmente quel file, possiamo utilizzare il comando iscsiadm per farlo per noi:

iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.authmethod –value=CHAP
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.username –value=someuser
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.password –value=secret

Ora possiamo accedere, sia eseguendo…

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --login

server1:~# iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –login
Accesso a [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]
Accesso a [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]: riuscito
server1:~#

… oppure riavviando l’inizializzatore:

/etc/init.d/open-iscsi restart 

(Se desideri disconnetterti, puoi eseguire

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --logout

)

Nell’output di

fdisk -l 

dovresti ora trovare un nuovo disco rigido (/dev/sdb in questo esempio); questo è il nostro dispositivo di archiviazione iSCSI:

server1:~# fdisk -l
Disco /dev/sda: 32.2 GB, 32212254720 byte
255 teste, 63 settori/traccia, 3916 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificatore disco: 0x00031334

Dispositivo Avvio Inizio Fine Blocchi Id Sistema
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Esteso
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

Disco /dev/sdb: 21.4 GB, 21474836480 byte
64 teste, 32 settori/traccia, 20480 cilindri
Unità = cilindri di 2048 * 512 = 1048576 byte
Identificatore disco: 0x00000000

Il disco /dev/sdb non contiene una tabella di partizione valida
server1:~#

Per utilizzare quel dispositivo, dobbiamo formattarlo:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
Il dispositivo non contiene né una tabella di partizione DOS valida, né un’etichetta disco Sun, SGI o OSF
Costruendo una nuova etichetta disco DOS con identificatore disco 0x882944df.
Le modifiche rimarranno in memoria solo fino a quando non decidi di scriverle.
Dopo, ovviamente, il contenuto precedente non sarà recuperabile.

Il numero di cilindri per questo disco è impostato su 20480.
Non c’è nulla di sbagliato in questo, ma questo è più grande di 1024,
e potrebbe in alcune configurazioni causare problemi con:

  1. software che viene eseguito all’avvio (ad es., vecchie versioni di LILO)
  2. software di avvio e partizionamento di altri OS
    (ad es., DOS FDISK, OS/2 FDISK)
    Attenzione: flag non valido 0x0000 della tabella di partizione 4 sarà corretto da w (scrivi)

Comando (m per aiuto): <– m
Azione comando
a attiva un flag avviabile
b modifica etichetta disco bsd
c attiva il flag di compatibilità dos
d elimina una partizione
l elenca i tipi di partizione conosciuti
m stampa questo menu
n aggiungi una nuova partizione
o crea una nuova tabella di partizione DOS vuota
p stampa la tabella delle partizioni
q esci senza salvare le modifiche
s crea una nuova etichetta disco Sun vuota
t modifica l’id di sistema di una partizione
u cambia unità di visualizzazione/inserimento
v verifica la tabella delle partizioni
w scrivi la tabella su disco ed esci
x funzionalità extra (solo per esperti)

Comando (m per aiuto): <– n
Azione comando
e esteso
p partizione primaria (1-4)
<– p
Numero partizione (1-4): <– 1
Primo cilindro (1-20480, valore predefinito 1): <– ENTER
Utilizzando il valore predefinito 1
Ultimo cilindro o +dimensione o +dimensioneM o +dimensioneK (1-20480, valore predefinito 20480): <– ENTER
Utilizzando il valore predefinito 20480

Comando (m per aiuto): <– t
Partizione selezionata 1
Codice esadecimale (tipo L per elencare i codici): <– L

0 Vuoto 1e Hidden W95 FAT1 80 Vecchio Minix be Solaris avvio
1 FAT12 24 NEC DOS 81 Minix / vecchio Lin bf Solaris
2 XENIX root 39 Piano 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 nascosto C: c6 DRDOS/sec (FAT-
5 Esteso 41 PPC PReP Boot 85 Linux esteso c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX avviabile 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 accesso DOS
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD o Sys ab Darwin avvio f2 DOS secondario
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
Codice esadecimale (tipo L per elencare i codici): <– 83

Comando (m per aiuto): <– w
La tabella delle partizioni è stata modificata!

Chiamando ioctl() per rileggere la tabella delle partizioni.
Sincronizzando dischi.
server1:~#

Dopo, l’output di

fdisk -l

dovrebbe apparire come segue:

server1:~# fdisk -l
Disco /dev/sda: 32.2 GB, 32212254720 byte
255 teste, 63 settori/traccia, 3916 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificatore disco: 0x00031334

Dispositivo Avvio Inizio Fine Blocchi Id Sistema
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Esteso
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

Disco /dev/sdb: 21.4 GB, 21474836480 byte
64 teste, 32 settori/traccia, 20480 cilindri
Unità = cilindri di 2048 * 512 = 1048576 byte
Identificatore disco: 0x882944df

Dispositivo Avvio Inizio Fine Blocchi Id Sistema
/dev/sdb1 1 20480 20971504 83 Linux
server1:~#

Ora creiamo un filesystem su /dev/sdb1…

mkfs.ext3 /dev/sdb1

… e montiamolo per scopi di test:

mount /dev/sdb1 /mnt

Dovresti ora vedere il nuovo dispositivo negli output di…

mount

server1:~# mount
/dev/sda1 su / tipo ext3 (rw,errors=remount-ro)
tmpfs su /lib/init/rw tipo tmpfs (rw,nosuid,mode=0755)
proc su /proc tipo proc (rw,noexec,nosuid,nodev)
sysfs su /sys tipo sysfs (rw,noexec,nosuid,nodev)
odev su /dev tipo tmpfs (rw,mode=0755)
tmpfs su /dev/shm tipo tmpfs (rw,nosuid,nodev)
devpts su /dev/pts tipo devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 su /mnt tipo ext3 (rw)
server1:~#

… e

df -h

server1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
odev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /mnt
server1:~#

Puoi smontarlo in questo modo:

umount /mnt

Per avere il dispositivo montato automaticamente all’avvio, ad esempio nella directory /storage, creiamo quella directory…

mkdir /storage

… e aggiungiamo la seguente riga a /etc/fstab:

vi /etc/fstab

| [...] /dev/sdb1 /storage ext3 defaults,auto,_netdev 0 0 |

Per scopi di test, ora puoi riavviare il sistema:

reboot

Dopo il riavvio, il dispositivo dovrebbe essere montato:

mount

server1:~# mount
/dev/sda1 su / tipo ext3 (rw,errors=remount-ro)
tmpfs su /lib/init/rw tipo tmpfs (rw,nosuid,mode=0755)
proc su /proc tipo proc (rw,noexec,nosuid,nodev)
sysfs su /sys tipo sysfs (rw,noexec,nosuid,nodev)
odev su /dev tipo tmpfs (rw,mode=0755)
tmpfs su /dev/shm tipo tmpfs (rw,nosuid,nodev)
devpts su /dev/pts tipo devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 su /storage tipo ext3 (rw,_netdev)
server1:~#

df -h

server1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
odev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /storage
server1:~#

4 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.