Installazione iSCSI Initiator e Target su Debian 6
Debian 6 (Squeeze) 64-bit Linux: 2.6.32-5-amd64 (usato in questo tutorial)
I sistemi da configurare
Ho usato due server debian. Un Initiator e un Target:
Initiator: server1.example.com – IP 192.168.1.100
Target: server2.example.com – IP 192.168.1.101
Installazione Debian
Installare Debian su entrambi i server senza alcun extra, deselezionare tutte le opzioni del menu Tasksel. Se l’installazione deve essere gestita in remoto, il servizio openssh può essere installato.
Configurazione Target – server2
Andare sul server 2 (192.168.1.101) e installare dai repository proprietari:
apt-get install iscsitarget iscsitarget-dkms
Aprire il file “/etc/default/iscsitarget”:
nano /etc/default/iscsitarget
localizzare la variabile “ISCSITARGET_ENABLE”:
ISCSITARGET_ENABLE=false
Cambiare in “true”:
ISCSITARGET_ENABLE=true
Configurazione spazio su disco
Il nome del Target deve essere globalmente univoco.Lo standard iSCSI definisce la “iSCSI Qualified Name” come segue:
iqn.[yyyy-mm].[reversed domain name]:[vg].[vol]
un altro esempio
iqn.2001-04.com.example:storage.lun1
La sintassi di denominazione è la seguente:
iqn = iSCSI Qualified Name 2001-04 = Date that the Organization Registered com.example = Domain Name listed backwards storage = Volume Group Name lun1 = Volume Name
Storage Alternativo 1
Usare un volume logico di 20GB chiamato “storage_lun1” in un gruppo “vg0” come configurato:
lvcreate -L20G -n storage_lun1 vg0
Editare il file “/etc/iet/ietd.conf”:
nano /etc/iet/ietd.conf
Assicurarsi che tutto nel file è commentato e alla fine, aggiungere la seguente configurazione:
Target iqn.2001-04.com.example:storage.lun1 IncomingUser myuser mysecret OutgoingUser Lun 0 Path=/dev/vg0/storage_lun1,Type=fileio Alias LUN1 #MaxConnections 6
Storage Alternativo 2
usare un immagine iso
mkdir /storage dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000
Editare il file “/etc/iet/ietd.conf “:
nano /etc/iet/ietd.conf
Assicurarsi che tutto nel file è commentato e alla fine, aggiungere la seguente configurazione:
Target iqn.2001-04.com.example:storage.lun1 IncomingUser myuser mysecret OutgoingUser Lun 0 Path=/storage/lun1.img,Type=fileio Alias LUN1 #MaxConnections 6
Abilitare le connessioni
Aprire il “/etc/iet/initiators.allow”:
nano /etc/iet/initiators.allow
Aggiungere la seguente riga
iqn.2001-04.com.example:storage.lun1 192.168.1.100
Start del servizio Target
/etc/init.d/iscsitarget start
o
service iscsitarget start
Configurazione Initiator – server1
Andare sul server 1 (192.168.1.100) e installare dai repository proprietari:
apt-get install open-iscsi
aprire il file “/etc/iscsi/iscsid.conf”:
nano /etc/iscsi/iscsid.conf
localizzare la variabile “node.startup”:
node.startup = manual
cambiare in “automatic”:
node.startup = automatic
restart initiator
/etc/init.d/open-iscsi restart
Connettere al target (server 2) e verificare se è stato montato lo storage.
Verifica il nodo
le impostazione per lo storage “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
L’username (myuser) e la Password (mysecret) per il target deve essere impostato in questo file.Questo può essere modificato il file manualmente, oppure utilizzando il comando “iscsiadm”:
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.1.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.1.101:3260" --op=update --name node.session.auth.username --value=myuser iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.1.101:3260" --op=update --name node.session.auth.password --value=mysecret
Login:Login al target, può essere fatto sia da:
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.1.101:3260" --login
Logging in to [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.1.101,3260] Login to [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.1.101,3260]: successful
sia riavviando l’ initiator:
/etc/init.d/open-iscsi restart
o
service open-iscsi restart
Logout: Se bisogna fare il logout per un test il comando è:
iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.1.101:3260" --logout
Configurazione del Disco
Fare un check del disco:
fdisk -l
Output di esempio:
Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00029d5c Device Boot Start End Blocks Id System /dev/sda1 * 1 3793 30461952 83 Linux /dev/sda2 3793 3917 992257 5 Extended /dev/sda5 3793 3917 992256 82 Linux swap / Solaris Disk /dev/sdb: 21.5 GB, 21474836480 bytes 64 heads, 32 sectors/track, 20480 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table
Dal momento che “/dev/sdb” è un disco non partizionato, fdisk segnala che non ci sono tabelle di partizione valida sul disco.Per impostare una tabella delle partizioni, utilizzare il comando “fdisk”:
fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x882944df. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 20480. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): <-- m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): <-- n Command action e extended p primary partition (1-4) <-- p Partition number (1-4): <-- 1 First cylinder (1-20480, default 1): <-- ENTER Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-20480, default 20480): <-- ENTER Using default value 20480 Command (m for help): <-- t Selected partition 1 Hex code (type L to list codes): <-- L 0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot 1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris 2 XENIX root 39 Plan 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 hidden C: c6 DRDOS/sec (FAT- 5 Extended 41 PPC PReP Boot 85 Linux extended 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 bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access 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 or Sys ab Darwin boot f2 DOS secondary 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 Hex code (type L to list codes): <-- 83 Command (m for help): <-- w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Controllare il disco con “fdisk”:
fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00029d5c Device Boot Start End Blocks Id System /dev/sda1 * 1 3793 30461952 83 Linux /dev/sda2 3793 3917 992257 5 Extended /dev/sda5 3793 3917 992256 82 Linux swap / Solaris Disk /dev/sdb: 21.5 GB, 21474836480 bytes 64 heads, 32 sectors/track, 20480 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x45bc2c81 Device Boot Start End Blocks Id System /dev/sdb1 1 20480 20971504 83 Linux
Creare un filesystem su “/dev/sdb1”:
mkfs.ext4 /dev/sdb1
Testing il drive iSCSI
Montare l’unità come unità fisica ordinaria:
mount /dev/sdb1 /mnt
Controllare il punto di montaggio:
mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/sdb1 on /mnt type ext4 (rw)
Controllare lo spazio su disco:
df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda1 29G 807M 27G 3% / tmpfs 249M 0 249M 0% /lib/init/rw udev 244M 108K 244M 1% /dev tmpfs 249M 0 249M 0% /dev/shm /dev/sdb1 20G 172M 19G 1% /mnt
Per rendere il montaggio automatico all’avvio creare una directory “storage”:
mkdir /var/storage
Editare il file “/etc/fstab”:
nano /etc/fstab
aggiungere la riga:
/dev/sdb1 /storage ext4 defaults,auto,_netdev 0 0
FINE