iSCSI Ubuntu · 9 min read · Feb 07, 2026

Uso de iSCSI en Ubuntu 9.04 (Iniciador y Destino)

Uso de iSCSI en Ubuntu 9.04 (Iniciador y Destino)

Versión 1.0
Autor: Falko Timme

Esta guía explica cómo puedes configurar un destino iSCSI y un iniciador iSCSI (cliente), ambos ejecutándose en Ubuntu 9.04. El protocolo iSCSI es un protocolo de red de área de almacenamiento (SAN) que permite a los iniciadores iSCSI utilizar dispositivos de almacenamiento en el destino iSCSI (remoto) utilizando cableado ethernet normal. Para el iniciador iSCSI, el almacenamiento remoto se ve como un disco duro normal conectado localmente.

¡No ofrezco ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

Estoy usando dos servidores Ubuntu 9.04 aquí:

  • server1.example.com (Iniciador): dirección IP 192.168.0.100
  • server2.example.com (Destino): dirección IP 192.168.0.101

Dado que ejecutaremos todos los pasos de este tutorial con privilegios de root, podemos anteponer todos los comandos en este tutorial con la cadena sudo, o podemos convertirnos en root ahora mismo escribiendo

sudo su 

2 Configurando el Destino (server2)

server2:

Primero configuramos el destino (server2):

aptitude install iscsitarget

Abre /etc/default/iscsitarget…

vi /etc/default/iscsitarget

… y establece ISCSITARGET_ENABLE en true:

| ISCSITARGET_ENABLE=true |

Podemos usar volúmenes lógicos no utilizados, archivos de imagen, discos duros (por ejemplo, /dev/sdb), particiones de disco duro (por ejemplo, /dev/sdb1) o dispositivos RAID (por ejemplo, /dev/md0) para el almacenamiento. En este ejemplo, crearé un volumen lógico de 20GB llamado storage_lun1 en el grupo de volúmenes vg0:

lvcreate -L20G -n storage_lun1 vg0 

(Si deseas usar un archivo de imagen, puedes crearlo de la siguiente manera:

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

Esto crea el archivo de imagen /storage/lun1.img con un tamaño de 20GB.

)

A continuación, editamos /etc/ietd.conf…

vi /etc/ietd.conf

… y comentamos todo en ese archivo. Al final, agregamos la siguiente estrofa:

| [...] 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 |

El nombre del destino debe ser un nombre globalmente único, el estándar iSCSI define el “Nombre Calificado iSCSI” de la siguiente manera: iqn.yyyy-mm.[:identificador]; yyyy-mm es la fecha en la que el dominio es válido; el identificador es seleccionable libremente. La línea IncomingUser contiene un nombre de usuario y una contraseña para que solo los iniciadores (clientes) que proporcionen este nombre de usuario y contraseña puedan iniciar sesión y utilizar el dispositivo de almacenamiento; si no necesitas autenticación, no especifiques un nombre de usuario y contraseña en la línea IncomingUser. En la línea Lun, debemos especificar la ruta completa al dispositivo de almacenamiento (por ejemplo, /dev/vg0/storage_lun1, /storage/lun1.img, /dev/sdb, etc.).

Ahora le decimos al destino que queremos permitir conexiones al dispositivo iqn.2001-04.com.example:storage.lun1 desde la dirección IP 192.168.0.100 (server1.example.com)…

vi /etc/initiators.allow

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

… y comenzamos el destino:

/etc/init.d/iscsitarget start  

3 Configurando el Iniciador (server1)

server1:

En server1, instalamos el iniciador:

aptitude install open-iscsi

A continuación, abrimos /etc/iscsi/iscsid.conf…

vi /etc/iscsi/iscsid.conf

… y establecemos node.startup en automático:

| [...] node.startup = automatic [...] |

Luego reiniciamos el iniciador:

/etc/init.d/open-iscsi restart

Ahora nos conectamos al destino (server2) y verificamos qué dispositivos de almacenamiento tiene para ofrecer:

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:~#

Los ajustes para el dispositivo de almacenamiento iqn.2001-04.com.example:storage.lun1 en 192.168.0.101:3260,1 se almacenan en el archivo /etc/iscsi/nodes/iqn.2001-04.com.example:storage.lun1/192.168.0.101,3260,1/default. Necesitamos establecer el nombre de usuario y la contraseña para el destino en ese archivo; en lugar de editar ese archivo manualmente, podemos usar el comando iscsiadm para hacerlo por nosotros:

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

Ahora podemos iniciar sesión, ya sea ejecutando…

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
Iniciando sesión en [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]
Inicio de sesión en [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]: exitoso
server1:~#

… o reiniciando el iniciador:

/etc/init.d/open-iscsi restart 

(Si deseas cerrar sesión, puedes ejecutar

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

)

En la salida de

fdisk -l 

debes encontrar ahora un nuevo disco duro (/dev/sdb en este ejemplo); ese es nuestro dispositivo de almacenamiento iSCSI:

server1:~# fdisk -l
Disco /dev/sda: 32.2 GB, 32212254720 bytes
255 cabezales, 63 sectores/cilindro, 3916 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0x00031334

Dispositivo Boot Inicio Fin Bloques Id Sistema
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Extendida
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

Disco /dev/sdb: 21.4 GB, 21474836480 bytes
64 cabezales, 32 sectores/cilindro, 20480 cilindros
Unidades = cilindros de 2048 * 512 = 1048576 bytes
Identificador de disco: 0x00000000

El disco /dev/sdb no contiene una tabla de particiones válida
server1:~#

Para usar ese dispositivo, debemos formatearlo:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
El dispositivo no contiene una tabla de particiones DOS válida, ni etiqueta de disco Sun, SGI o OSF
Construyendo una nueva etiqueta de disco DOS con el identificador de disco 0x882944df.
Los cambios permanecerán en memoria solo hasta que decidas escribirlos.
Después de eso, por supuesto, el contenido anterior no será recuperable.

El número de cilindros para este disco se establece en 20480.
No hay nada de malo en eso, pero esto es más grande que 1024,
y podría en ciertas configuraciones causar problemas con:

  1. software que se ejecuta en el momento del arranque (por ejemplo, versiones antiguas de LILO)
  2. software de arranque y particionamiento de otros sistemas operativos
    (ej., DOS FDISK, OS/2 FDISK)
    Advertencia: la bandera inválida 0x0000 de la tabla de particiones 4 será corregida por w(escribir)

Comando (m para ayuda): <– m
Acción del comando
a alternar una bandera de arranque
b editar etiqueta de disco bsd
c alternar la bandera de compatibilidad dos
d eliminar una partición
l listar tipos de particiones conocidos
m imprimir este menú
n agregar una nueva partición
o crear una nueva tabla de particiones DOS vacía
p imprimir la tabla de particiones
q salir sin guardar cambios
s crear una nueva etiqueta de disco Sun vacía
t cambiar el id del sistema de una partición
u cambiar unidades de visualización/entrada
v verificar la tabla de particiones
w escribir tabla en disco y salir
x funcionalidad extra (solo para expertos)

Comando (m para ayuda): <– n
Acción del comando
e extendida
p partición primaria (1-4)
<– p
Número de partición (1-4): <– 1
Primer cilindro (1-20480, valor predeterminado 1): <– ENTER
Usando valor predeterminado 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-20480, valor predeterminado 20480): <– ENTER
Usando valor predeterminado 20480

Comando (m para ayuda): <– t
Partición seleccionada 1
Código hexadecimal (tipo L para listar códigos): <– L

0 Vacío 1e Oculto W95 FAT1 80 Viejo Minix be Arranque Solaris
1 FAT12 24 NEC DOS 81 Minix / viejo Lin bf Solaris
2 raíz XENIX 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 usr XENIX 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 oculto OS/2 C: c6 DRDOS/sec (FAT-
5 Extendida 41 PPC PReP Boot 85 Linux extendida c7 Syrinx
6 FAT16 42 SFS 86 conjunto de volumen NTFS da datos Non-FS
7 HPFS/NTFS 4d QNX4.x 87 conjunto de volumen NTFS db CP/M / CTOS / .
8 AIX 4e QNX4.x 2da parte 88 texto plano de Linux de Dell Utility
9 AIX arrancable 4f QNX4.x 3ra parte 8e LVM de Linux df BootIt
a Gestor de Arranque OS/2 50 OnTrack DM 93 Amoeba e1 acceso 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 FAT12 Oculto 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 diagnóstico Compaq 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 FAT16 Oculto <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 FAT16 Oculto 63 GNU HURD o Sys ab arranque de Darwin f2 secundaria DOS
17 HPFS/NTF Oculto 64 Novell Netware b7 fs BSDI fd raid automático de Linux
18 AST SmartSleep 65 Novell Netware b8 swap BSDI fe LANstep
1b FAT3 Oculto W95 70 Multidisco Seguro bb Asistente de Arranque oculto ff BBT
1c FAT3 Oculto W95 75 PC/IX
Código hexadecimal (tipo L para listar códigos): <– 83

Comando (m para ayuda): <– w
¡La tabla de particiones ha sido alterada!

Llamando a ioctl() para volver a leer la tabla de particiones.
Sincronizando discos.
server1:~#

Después, la salida de

fdisk -l

debiera verse como sigue:

server1:~# fdisk -l
Disco /dev/sda: 32.2 GB, 32212254720 bytes
255 cabezales, 63 sectores/cilindro, 3916 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0x00031334

Dispositivo Boot Inicio Fin Bloques Id Sistema
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 Extendida
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

Disco /dev/sdb: 21.4 GB, 21474836480 bytes
64 cabezales, 32 sectores/cilindro, 20480 cilindros
Unidades = cilindros de 2048 * 512 = 1048576 bytes
Identificador de disco: 0x882944df

Dispositivo Boot Inicio Fin Bloques Id Sistema
/dev/sdb1 1 20480 20971504 83 Linux
server1:~#

Ahora creamos un sistema de archivos en /dev/sdb1…

mkfs.ext3 /dev/sdb1

… y lo montamos para fines de prueba:

mount /dev/sdb1 /mnt

Ahora deberías ver el nuevo dispositivo en las salidas de…

mount

server1:~# 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)
odev 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 ext3 (rw)
server1:~#

… y

df -h

server1:~# df -h
Sistema de archivos Tamaño Usado Disponible Uso% Montado en
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /mnt
server1:~#

Puedes desmontarlo así:

umount /mnt

Para que el dispositivo se monte automáticamente al iniciar, por ejemplo, en el directorio /storage, creamos ese directorio…

mkdir /storage

… y agregamos la siguiente línea a /etc/fstab:

vi /etc/fstab

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

Para fines de prueba, ahora puedes reiniciar el sistema:

reboot

Después del reinicio, el dispositivo debería estar montado:

mount

server1:~# 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)
odev 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 /storage type ext3 (rw,_netdev)
server1:~#

df -h

server1:~# df -h
Sistema de archivos Tamaño Usado Disponible Uso% Montado en
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /storage
server1:~#

4 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.