iSCSI Fedora · 8 min read · Feb 07, 2026

Usando iSCSI No Fedora 10 (Iniciador E Destino)

Usando iSCSI No Fedora 10 (Iniciador E Destino)

Versão 1.0
Autor: Falko Timme

Este guia explica como você pode configurar um destino iSCSI e um iniciador iSCSI (cliente), ambos executando o Fedora 10. O protocolo iSCSI é um protocolo de rede de área de armazenamento (SAN) que permite que iniciadores iSCSI usem dispositivos de armazenamento no destino iSCSI (remoto) usando cabos ethernet normais. Para o iniciador iSCSI, o armazenamento remoto parece um disco rígido normal, conectado localmente.

Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

Estou usando dois servidores Fedora 10 aqui:

  • server1.example.com (Iniciador): endereço IP 192.168.0.100
  • server2.example.com (Destino): endereço IP 192.168.0.101

2 Configurando O Destino (server2)

server2:

Primeiro, configuramos o destino (server2). Como os pacotes necessários estão disponíveis apenas no repositório RPMFusion, devemos habilitá-lo primeiro:

rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Então podemos instalar os pacotes do destino iSCSI:

yum install iscsitarget kmod-iscsitarget

É possível que isso também atualize seu kernel. Se este for o caso, reinicie o sistema depois:

reboot

Podemos usar volumes lógicos não utilizados, arquivos de imagem, discos rígidos (por exemplo, /dev/sdb), partições de disco rígido (por exemplo, /dev/sdb1) ou dispositivos RAID (por exemplo, /dev/md0) para o armazenamento. Neste exemplo, criarei um volume lógico de 20GB chamado storage_lun1 no grupo de volumes VolGroup00:

lvcreate -L20G -n storage_lun1 VolGroup00

(Se você quiser usar um arquivo de imagem, pode criá-lo da seguinte forma:

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

Isso cria o arquivo de imagem /storage/lun1.img com um tamanho de 20GB.

)

Em seguida, editamos /etc/ietd.conf…

vi /etc/ietd.conf

… e comentamos tudo naquele arquivo. No final, adicionamos a seguinte estrofe:

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

O nome do destino deve ser um nome globalmente único, o padrão iSCSI define o “Nome Qualificado iSCSI” da seguinte forma: iqn.yyyy-mm.[:identificador]; yyyy-mm é a data em que o domínio é válido; o identificador é livremente selecionável. A linha IncomingUser contém um nome de usuário e uma senha para que apenas os iniciadores (clientes) que fornecem esse nome de usuário e senha possam fazer login e usar o dispositivo de armazenamento; se você não precisar de autenticação, não especifique um nome de usuário e senha na linha IncomingUser. Na linha Lun, devemos especificar o caminho completo para o dispositivo de armazenamento (por exemplo, /dev/VolGroup00/storage_lun1, /storage/lun1.img, /dev/sdb, etc.).

Agora dizemos ao destino que queremos permitir conexões ao dispositivo iqn.2001-04.com.example:storage.lun1 do endereço IP 192.168.0.100 (server1.example.com):

vi /etc/initiators.allow

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

Em seguida, criamos os links de inicialização do sistema para iscsi-target e o iniciamos:

chkconfig –levels 235 iscsi-target on
/etc/init.d/iscsi-target start

3 Configurando O Iniciador (server1)

server1:

No server1, instalamos o iniciador:

yum install iscsi-initiator-utils

Em seguida, abrimos /etc/iscsi/iscsid.conf…

vi /etc/iscsi/iscsid.conf

… e garantimos que node.startup esteja definido como automático:

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

Agora nos conectamos ao destino (server2) e verificamos quais dispositivos de armazenamento ele tem a oferecer:

iscsiadm -m discovery -t st -p 192.168.0.101

[root@server1 init.d]# iscsiadm -m discovery -t st -p 192.168.0.101
Iniciando iscsid: [ OK ]
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
[root@server1 init.d]#

iscsiadm -m node

[root@server1 init.d]# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
[root@server1 init.d]#

As configurações para o dispositivo de armazenamento iqn.2001-04.com.example:storage.lun1 em 192.168.0.101:3260,1 estão armazenadas no arquivo /var/lib/iscsi/nodes/iqn.2001-04.com.example:storage.lun1/192.168.0.101,3260,1/default. Precisamos definir o nome de usuário e a senha para o destino nesse arquivo; em vez de editar esse arquivo manualmente, podemos usar o comando iscsiadm para fazer isso por nós:

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

Agora podemos fazer login:

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

[root@server1 init.d]# iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –login
Fazendo login em [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]
Login em [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]: bem-sucedido
[root@server1 init.d]#

(Se você quiser sair, pode executar

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

)

Na saída de

fdisk -l 

você deve agora encontrar um novo disco rígido (/dev/sdb neste exemplo); esse é o nosso dispositivo de armazenamento iSCSI:

[root@server1 init.d]# fdisk -l
Disco /dev/sda: 32.2 GB, 32212254720 bytes
255 cabeçotes, 63 setores/track, 3916 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador do disco: 0x000d5f46

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 3916 31254457+ 8e Linux LVM

Disco /dev/sdb: 21.4 GB, 21474836480 bytes
64 cabeçotes, 32 setores/track, 20480 cilindros
Unidades = cilindros de 2048 * 512 = 1048576 bytes
Identificador do disco: 0x00000000

Disco /dev/sdb não contém uma tabela de partição válida
[root@server1 init.d]#

Para usar esse dispositivo, devemos formatá-lo:

fdisk /dev/sdb

[root@server1 init.d]# fdisk /dev/sdb
Dispositivo contém nem uma tabela de partição DOS válida, nem rótulo de disco Sun, SGI ou OSF
Construindo um novo rótulo de disco DOS com identificador de disco 0xa1870fdd.
As alterações permanecerão na memória apenas até que você decida gravá-las.
Depois disso, claro, o conteúdo anterior não será recuperável.

O número de cilindros para este disco é definido como 20480.
Não há nada de errado com isso, mas isso é maior que 1024,
e pode, em certas configurações, causar problemas com:

  1. software que roda no tempo de inicialização (por exemplo, versões antigas do LILO)
  2. software de inicialização e particionamento de outros SOs
    (por exemplo, DOS FDISK, OS/2 FDISK)
    Aviso: flag inválida 0x0000 da tabela de partição 4 será corrigida por w(rite)

Comando (m para ajuda): <– n
Ação do comando
e partição estendida
p partição primária (1-4)
<– p
Número da partição (1-4): <– 1
Primeiro cilindro (1-20480, padrão 1): <– ENTER
Usando valor padrão 1
Último cilindro, +cilindros ou +tamanho{K,M,G} (1-20480, padrão 20480): <– ENTER
Usando valor padrão 20480

Comando (m para ajuda): <– t
Partição selecionada 1
Código hexadecimal (tipo L para listar códigos): <– L

0 Vazio 1e Oculto W95 FAT1 80 Antigo Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / antigo Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 oculto C: c7 Syrinx
5 Estendida 41 PPC PReP Boot 85 Linux estendida da Dados não FS
6 FAT16 42 SFS 86 conjunto de volume NTFS db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 conjunto de volume NTFS de Dell Utility
8 AIX 4e QNX4.x 2ª parte 88 Linux plaintext df BootIt
9 AIX inicializável 4f QNX4.x 3ª parte 8e Linux LVM e1 acesso DOS
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee GPT
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
11 Oculto FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Diagnóstico Compaq 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 Oculto FAT16 <3 61 SpeedStor a9 NetBSD f2 secundário DOS
16 Oculto FAT16 63 GNU HURD ou Sys ab Darwin boot fb VMware VMFS
17 Oculto HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 swap BSDI fd Linux raid auto
1b Oculto W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Oculto W95 FAT3 75 PC/IX be inicialização Solaris ff BBT
Código hexadecimal (tipo L para listar códigos): <– 83

Comando (m para ajuda): <– w
A tabela de partição foi alterada!

Chamando ioctl() para reler a tabela de partição.
Sincronizando discos.
[root@server1 init.d]#

Depois, a saída de

fdisk -l

deveria parecer da seguinte forma:

[root@server1 init.d]# fdisk -l
Disco /dev/sda: 32.2 GB, 32212254720 bytes
255 cabeçotes, 63 setores/track, 3916 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador do disco: 0x000d5f46

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 3916 31254457+ 8e Linux LVM

Disco /dev/sdb: 21.4 GB, 21474836480 bytes
64 cabeçotes, 32 setores/track, 20480 cilindros
Unidades = cilindros de 2048 * 512 = 1048576 bytes
Identificador do disco: 0xa1870fdd

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sdb1 1 20480 20971504 83 Linux
[root@server1 init.d]#

Agora criamos um sistema de arquivos em /dev/sdb1…

mkfs.ext3 /dev/sdb1

… e o montamos para fins de teste:

mount /dev/sdb1 /mnt

Você deve agora ver o novo dispositivo nas saídas de…

mount

[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /mnt type ext3 (rw)
[root@server1 ~]#

… e

df -h

[root@server1 ~]# df -h
Sistema de arquivos Tamanho Usado Disponível Uso% Montado em
/dev/mapper/VolGroup00-LogVol00 29G 2.2G 25G 9% /
/dev/sda1 190M 13M 168M 8% /boot
tmpfs 251M 0 251M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /mnt
[root@server1 ~]#

Você pode desmontá-lo assim:

umount /mnt

Para que o dispositivo seja montado automaticamente na inicialização, por exemplo, no diretório /storage, criamos esse diretório…

mkdir /storage

… e adicionamos a seguinte linha ao /etc/fstab:

vi /etc/fstab

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

Para fins de teste, você pode agora reiniciar o sistema:

reboot

Após a reinicialização, o dispositivo deve estar montado:

mount

[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /storage type ext3 (rw,_netdev)
[root@server1 ~]#

df -h

[root@server1 ~]# df -h
Sistema de arquivos Tamanho Usado Disponível Uso% Montado em
/dev/mapper/VolGroup00-LogVol00 29G 2.2G 25G 9% /
/dev/sda1 190M 13M 168M 8% /boot
tmpfs 251M 0 251M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /storage
[root@server1 ~]#

4 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.