iSCSI entre una Solaris (Initiator) y un Linux (target)

Respondiendo al comentario de gonzo34 a ese post solicitando mas informacion sobre como usar iSCSI en Solaris, voy a poner aqui mis notas sobre el tema.

En el linux, que “exporta” por iSCSI el disco (o el lvol), instalamos el iSCSI Target. Una vez instalado, indicamos al demonio qué disco/lvol exportar (por ejemplo el /dev/vg01/lviscsi01):

# vi /etc/ietd.conf
#IncomingUser nwsmith secretsecret
Target iqn.2006-06.com.alegrome:storage.lvm
Lun 0 /dev/vg01/lviscsi01
Alias iscsitest01

Iniciamos el demonio (o lo reiniciamos):

# service iscsi-target start
Starting iSCSI target service:    [  OK  ]

Comprobamos que este arriba el demonio:

# netstat -ntlp | grep 3260
tcp  0  0  0.0.0.0:3260  0.0.0.0:*  LISTEN 3160/ietd
# tail /var/log/messages
Jan 14 15:59:02 server kernel: iSCSI Enterprise Target Software - version 0.4.5
Jan 14 15:59:02 server kernel: iotype_init(91) register fileio
Jan 14 15:59:03 server kernel: target_param(109) d 1 8192 262144 65536 2 20 8 0
Jan 14 15:59:03 server iscsi-target: ietd startup succeeded

alegrome# cat  /proc/net/iet/volume
tid:1 name:iqn.2006-06.com.alegrome:storage.lvm
        lun:0 state:0 iotype:fileio iomode:wt path:/dev/vg01/lviscsi01

Ahora en la solaris (cambiar IP por la IP del Linux):

# iscsiadm add discovery-address IP:3260

# iscsiadm modify discovery --sendtargets enable

# iscsiadm list discovery
Discovery:
        Static: disabled
        Send Targets: enabled
        iSNS: disabled

# devfsadm -v -i iscsi
devfsadm[752]: verbose: symlink /dev/dsk/c1t2d0s0 -> ../../devices/iscsi/disk@0000iqn.2006-06.com.alegrome%3Astorage.lvm0001,0:a
[...]

Ya vemos el disco con el format:

# format
Searching for disks...done

c1t2d0: configured with capacity of 1008.00MB

AVAILABLE DISK SELECTIONS:
       0. c0t0d0
          /pci@1f,0/pci@1,1/ide@3/dad@0,0
       1. c1t2d0
          /iscsi/disk@0000iqn.2006-06.com.alegrome%3Astorage.lvm0001,0
Specify disk (enter its number): ^D

Vemos los targets descubiertos:

# iscsiadm list target
Target: iqn.2006-06.com.alegrome:storage.lvm
        Alias: -
        TPGT: 1
        ISID: 4000002a0000
        Connections: 1
...

Y mas informacion sobre cada uno:

# iscsiadm list target-param -v iqn.2006-06.com.alegrome:storage.lvm
Target: iqn.2006-06.com.alegrome:storage.lvm
        Alias: -
        Bi-directional Authentication: disabled
        Authentication Type: NONE
        Login Parameters (Default/Configured):
                Data Sequence In Order: yes/-
                Data PDU In Order: yes/-
                Default Time To Retain: 20/-
                Default Time To Wait: 2/-
                Error Recovery Level: 0/-
                First Burst Length: 65536/-
                Immediate Data: yes/-
                Initial Ready To Transfer (R2T): yes/-
                Max Burst Length: 262144/-
                Max Outstanding R2T: 1/-
                Max Receive Data Segment Length: 8192/-
                Max Connections: 1/-
                Header Digest: NONE/-
                Data Digest: NONE/-
        Configured Sessions: 1

Por otra parte en la Linux, vemos la session iSCSI:

alegrome# cat  /proc/net/iet/session
tid:1 name:iqn.2006-06.com.alegrome:storage.lvm
        sid:281475681353792 initiator:iqn.1986-03.com.sun:01:0800209efab9.46bc3c8b
                cid:0 ip:192.168.0.30 state:active hd:none dd:none

Espero que le sirva a alguien ;-)

Una respuesta para “iSCSI entre una Solaris (Initiator) y un Linux (target)”

  1. Iván Dice:

    Como ya te comenté Alex, deberías probar ATA over Ethernet (AoE) porque vas a ganar mucha velocidad (eliminas todo el overhead del TCP) y trabajas a nivel 2 en lugar de 3.
    No sé cómo estará el soporte de AoE en Solaris, pero con linux no hay ningún problema y supongo que en Solaris tampoco lo debería haber.

    Pruébalo porque seguro que te sorprende.

    Saludos, Iván.

Escribe un comentario