Objectiu:
La idea d’aquest petit tutorial és explicar d’una manera bàsica com instal·lar i configurar un target iSCSI i un initiator en Linux. Com sempre ens basarem en una instal·lació bàsica de Debian o Ubuntu.
El target que utilitzarem és ietd (iSCSI Enterprise Target) i l’initiator serà open-iscsi.
Per que iSCSI?
Amb l’alta acceptació que els sistemes d’emmagatzematge remot (SAN i NAS) estan tenint avui dia en l’entorn d’empresa feia falta un sistema que permetés de manera assequible, econòmicament parlant, de muntar el que la fibra òptica ofereix a preus força més alts.
iSCSI ens permet exportar unitats, fitxers, particions LVM o RAID per xarxa i fer que el sistema que els importa els vegi com a una unitat SCSI local (/dev/sdX).
Obtenció del software necessari:
Pel target utilitzarem ietd (iSCSI Enterprise Target). Aquest programari no està en els repositoris de Debian ni d’Ubuntu a dia d’avui pel que ens descarregarem el codi font i el compilarem en la nostra distribució.
Per obtenir el codi fem:
$ wget http://heanet.dl.sourceforge.net/sourceforge/iscsitarget/iscsitarget-0.4.16.tar.gz
Si visiteu la pàgina oficial a iscsitarget.sourceforge.net pot ser que existeixi una versió més nova.
Per a open-iscsi la cosa és molt més simple ja que es troba en els repositoris APT:
$ apt-get install open-iscsi
Configuració del target:
Un cop descarregat el programari passem a compilar-lo. Abans però ens farà falta instal·lar un parell de paquets més:
$ apt-get install build-essential linux-headers-`uname -r` linux-source-2.6.18 libssl-dev
El paquet linux-source-2.6.18 correspon al codi font del kernel. Pot ser que la versió no sigui la mateixa en el vostre Debian o Ubuntu.
Ara sí, compilem:
$ tar zxvf iscsitarget-0.4.16.tar.gz $ cd iscsitarget-0.4.16 $ make $ make install
Fem una còpia de l’arxiu original de configuració per a futures referències:
$ cp /etc/ietd.conf /etc/ietd.conf.orig
Passarem a exportar una unitat mitjançant aquest arxiu:
$ cat /etc/ietd.conf Target iqn.2008-04.com.exemple:storage Lun 0 Path=/dev/VolGroup00/LVData,Type=fileio
D’aquesta configuració s’ha de tenir en compte:
- iqn.2008-04.com.exemple:storage és el nom que farem servir per a importar en la màquina remota. Aquest nom no és aleatori, es munta a partir de:
- iqn: inici estàndard del qualificador
- 2008-04: data de l’alta de l’exportació
- com.exemple: domini al revés de la nostra xarxa
- storage: nom comú
- Path pot incloure unitats LVM, RAID, dispositius sencers (/dev/hdX, /dev/drbdX, …) o arxius.
Afegim ietd als serveis a arrencar a l’arrencada del sistema:
$ update-rc.d iscsi-target defaults
Finalment arranquem el servei:
/etc/init.d/iscsi-target start
El servei escolta en el port 3260/tcp.
Amb aixó ja tenim el target preparat per acceptar peticions dels clients.
Configuració de l’initiator:
La configuració de l’initiator és força directa, s’han de seguir una sèrie de passos trivials i tindrem una nova unitat disponible. El primer que s’ha de fer és consultar al target quines unitats ofereix, això ho farem amb la següent comanda:
$ iscsiadm -m discovery -t sendtargets -p ip_iscsi_target
Podem comprobar que realment s’han descobert els serveis amb:
$ iscsiadm -m discovery ip_iscsi_target:3260 via sendtargets
Fem login al dispositiu trobat amb:
$ iscsiadm -m node -T iqn.2008-04.com.exemple:storage -p ip_iscsi_target --login
NOTA IMPORTANT: abans de login hi ha dos guions.
Si, més tard, ens fes falta extreure la unitat el procés és molt similar:
$ iscsiadm -m node -T iqn.2008-04.com.exemple:storage -p ip_iscsi_target --logout
Després d’executar aquesta comanda podem veure en el dmesg que efectivament s’ha connectat una nova unitat scsi al sistema local:
scsi0 : iSCSI Initiator over TCP/IP PM: Adding info for No Bus:host0 PM: Adding info for No Bus:session0 PM: Adding info for No Bus:connection0:0 PM: Adding info for No Bus:target0:0:0 Vendor: IET Model: VIRTUAL-DISK Rev: 0 Type: Direct-Access ANSI SCSI revision: 04 PM: Adding info for scsi:0:0:0:0 SCSI device sda: 20971520 512-byte hdwr sectors (10737 MB) sda: Write Protect is off sda: Mode Sense: 77 00 00 08 SCSI device sda: drive cache: write through SCSI device sda: 20971520 512-byte hdwr sectors (10737 MB) sda: Write Protect is off sda: Mode Sense: 77 00 00 08 SCSI device sda: drive cache: write through sda: unknown partition table sd 0:0:0:0: Attached scsi disk sda
Aquestes dades poden variar en funció del sistema i del tractament que es faci de les unitats SCSI. En qualsevol cas ens fem una idea.
Tenim, doncs, el disc /dev/sda disponible i el podem tractar com si fos un més. El podem particionar amb fdisk, crear sistemes de fitxers (ext3, ocfs, ntfs…), muntar-lo, etc.
Més informació:
Com sempre, es recomana llegir els manuals de referència:
Per a ietd podem consultar:
$ man ietd.conf $ man ietd $ man ietadm
el Wiki d’ietd a http://iscsitarget.sourceforge.net/wiki/index.php/Main_Page
Per a open-iscsi podem consultar:
$ man iscsiadm