iSCSI Tutorial · 9 min read · Nov 26, 2025

Como Instalar um Servidor de Armazenamento iSCSI no Ubuntu 22.04

A Interface de Sistema de Computador Pequeno da Internet (iSCSI) é um protocolo utilizado em Redes de Área de Armazenamento (SANs) para compartilhar recursos de armazenamento em nível de bloco, como partições de Discos Rígidos (HDDs) ou Unidades de Estado Sólido (SSDs), partições de Gerenciamento de Volume Lógico (LVM) ou arquivos de bloco através de uma rede. Empregando uma arquitetura cliente-servidor, o iSCSI facilita a transmissão de comandos SCSI sobre redes TCP/IP entre dois componentes principais: o iniciador e o alvo. O Alvo iSCSI é um serviço hospedado em um servidor iSCSI, responsável por conceder acesso ao armazenamento compartilhado. Por outro lado, o Iniciador iSCSI funciona como o cliente, estabelecendo uma conexão com o alvo para utilizar os recursos de armazenamento compartilhados.

Este tutorial é um guia completo sobre como configurar tanto alvos quanto iniciadores iSCSI em um servidor que executa o Ubuntu 22.04. Ele cobrirá os passos para configurar o compartilhamento seguro de armazenamento dentro da sua rede.

Requisitos

  • Um sistema executando Ubuntu 22.04 para alvo iSCSI com 1 GB de HDD externo.
  • Um sistema executando Ubuntu 22.04 fresco para iniciador iSCSI.
  • Um endereço IP estático 192.168.1.10 configurado no alvo iSCSI e 192.168.1.20 configurado no iniciador iSCSI.
  • Uma senha de root configurada em ambos os servidores.

Atualizar o Sistema

Antes de começar, é uma boa ideia atualizar seu sistema com os pacotes mais recentes. Você pode atualizá-los com o seguinte comando:

apt update -y  
apt upgrade -y

Uma vez que todos os pacotes estejam atualizados, reinicie seu sistema para aplicar as alterações.

Instalar o Alvo iSCSI

O pacote Alvo iSCSI está no repositório padrão do Ubuntu 22.04 por padrão. Você pode instalá-lo executando o seguinte comando no servidor Alvo iSCSI:

apt install tgt -y

Após instalar o Alvo iSCSI, verifique o status do servidor com o seguinte comando:

systemctl status tgt

Você deve obter a seguinte saída:

? tgt.service - (i)SCSI target daemon
     Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2024-01-03 11:13:04 UTC; 23s ago
       Docs: man:tgtd(8)
   Main PID: 7770 (tgtd)
     Status: "Starting event loop..."
      Tasks: 1
     Memory: 1.1M
     CGroup: /system.slice/tgt.service
             ??7770 /usr/sbin/tgtd -f

Jan 03 11:13:04 ubuntu2204 systemd[1]: Starting (i)SCSI target daemon...
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: work_timer_start(146) use timer_fd based scheduler
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: bs_init(387) use signalfd notification
Jan 03 11:13:04 ubuntu2204 systemd[1]: Started (i)SCSI target daemon.

Neste ponto, o Alvo iSCSI está instalado em seu servidor. Você pode agora prosseguir para o próximo passo.

Configurar o Alvo iSCSI

Primeiro, crie um dispositivo LUN (Número da Unidade Lógica) em seu servidor iSCSI. LUN é um dispositivo de armazenamento de backend que faz parte de um dispositivo SCSI físico. Todos os LUNs mapeados para o Alvo iSCSI estão virtualmente anexados ao sistema operacional do cliente. Portanto, os Iniciadores podem estabelecer e gerenciar sistemas de arquivos em LUNs iSCSI.

Você pode configurá-lo criando um novo arquivo de configuração:

nano /etc/tgt/conf.d/iscsi.conf

Adicione as seguintes linhas:


     backing-store /dev/sdb
     initiator-address 192.168.1.20
    incominguser iscsi-user password
     outgoinguser iscsi-target secretpass

Salve e feche o arquivo quando terminar.

Onde:

  • A primeira linha define o nome do LUN.
  • A segunda linha define a localização e o nome do dispositivo de armazenamento no servidor Alvo iSCSI.
  • A terceira linha define o endereço IP do iniciador iSCSI.
  • A quarta linha define o nome de usuário/senha de entrada.
  • A quinta linha define o nome de usuário/senha que o alvo fornecerá ao iniciador para permitir a autenticação mútua CHAP.

Em seguida, reinicie o serviço iSCSI para aplicar as alterações:

systemctl restart tgt

Em seguida, verifique o servidor Alvo iSCSI com o seguinte comando:

tgtadm --mode target --op show

Você deve obter a seguinte saída:

Target 1: iqn.2024-01.example.com:lun1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
    Account information:
        iscsi-user
        iscsi-target (outgoing)
    ACL information:
        192.168.1.10

Neste ponto, o servidor alvo iSCSI está instalado e configurado. Agora você pode prosseguir para o próximo passo.

Instalar e Configurar o Iniciador iSCSI

Em seguida, vá para a máquina do iniciador iSCSI e instale o pacote iniciador iSCSI com o seguinte comando:

apt install open-iscsi -y

Uma vez que a instalação foi concluída, descubra o servidor alvo iSCSI para encontrar os alvos compartilhados usando o seguinte comando:

iscsiadm -m discovery -t st -p 192.168.1.10

Você deve ver a seguinte saída:

192.168.1.10:3260,1 iqn.2024-01.example.com:lun1

Em seguida, você precisará definir o nome do dispositivo LUN no arquivo initiatorname.iscsi:

nano /etc/iscsi/initiatorname.iscsi

Adicione o nome do seu LUN Alvo iSCSI como mostrado abaixo:

InitiatorName=iqn.2024-01.example.com:lun1

Salve e feche o arquivo quando terminar.

Em seguida, você precisará definir as informações CHAP que você configurou no alvo iSCSI para acessar o alvo iSCSI a partir do iniciador iSCSI. O arquivo de configuração do nó existirá no diretório ‘/etc/iscsi/nodes/‘ e terá um diretório por LUN disponível.

Você pode defini-lo editando o seguinte arquivo:

nano /etc/iscsi/nodes/iqn.2024-01.example.com\:lun1/192.168.1.10\,3260\,1/default

Adicione / Modifique as seguintes linhas:

node.session.auth.authmethod = CHAP  
node.session.auth.username = iscsi-user
node.session.auth.password = password          
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass         
node.startup = automatic

Salve e feche o arquivo e reinicie o serviço iniciador iSCSI com o seguinte comando:

systemctl restart open-iscsi iscsid

Você também pode verificar o status do serviço com o seguinte comando:

systemctl status open-iscsi

Você deve obter a seguinte saída:

? open-iscsi.service - Login to default iSCSI targets
     Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2024-01-03 11:33:13 UTC; 10s ago
       Docs: man:iscsiadm(8)
             man:iscsid(8)
    Process: 2861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
    Process: 2867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS)
   Main PID: 2867 (code=exited, status=0/SUCCESS)

Jan 03 11:33:14 initiator systemd[1]: Starting Login to default iSCSI targets...
Jan 03 11:33:14 initiator iscsiadm[2861]: Logging in to [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] (m>
Jan 03 11:33:14 initiator iscsiadm[2861]: Login to [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] success>
Jan 03 11:33:14 initiator systemd[1]: Finished Login to default iSCSI targets.

Você também pode verificar a conexão iSCSI com o seguinte comando:

iscsiadm -m session -o show

Você deve obter a seguinte saída:

tcp: [2] 192.168.1.10:3260,1 iqn.2024-01.example.com:lun1 (non-flash)

Você também pode verificar o dispositivo de armazenamento compartilhado do alvo iSCSI com o seguinte comando:

lsblk

Você deve ver o dispositivo compartilhado sdb na seguinte saída:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   80G  0 disk 
??sda1   8:1    0   80G  0 part /
sdb      8:16   0 1000M  0 disk

Criar um Sistema de Arquivos no Dispositivo Compartilhado

Para usar o dispositivo compartilhado no iniciador iSCSI, você precisará criar um sistema de arquivos no dispositivo compartilhado (sdb) e montá-lo para tornar este dispositivo útil.

Primeiro, crie um sistema de arquivos no dispositivo compartilhado (sdb) com o seguinte comando:

fdisk /dev/sdb

Responda a todas as perguntas como mostrado abaixo para criar um sistema de arquivos:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9743ddcf.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-2047999, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2047999, default 2047999): 

Created a new partition 1 of type 'Linux' and of size 999 MiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Em seguida, formate a partição com o seguinte comando:

mkfs.ext4 /dev/sdb1

Você deve obter a seguinte saída:

mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 255744 4k blocks and 64000 inodes
Filesystem UUID: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Em seguida, monte a partição no diretório /mnt com o seguinte comando:

mount /dev/sdb1 /mnt

Agora você pode verificar a partição montada com o seguinte comando:

df -h

Você deve obter a seguinte saída:

Filesystem      Size  Used Avail Use% Mounted on
udev            972M     0  981M   0% /dev
tmpfs           199M  528K  199M   1% /run
/dev/sda1        79G  1.8G   74G   3% /
tmpfs           994M     0  994M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           994M     0  994M   0% /sys/fs/cgroup
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1       968M  2.5M  899M   1% /mnt

Perguntas Frequentes

Abaixo estão as respostas para algumas perguntas frequentes sobre iniciador e alvo iSCSI.

O que é iSCSI?

iSCSI, ou Interface de Sistema de Computador Pequeno da Internet, é um protocolo de rede que permite a transferência de dados sobre intranets e gerencia armazenamento a longas distâncias. Ele facilita o transporte de dados em nível de bloco entre um iniciador iSCSI em um servidor e um alvo iSCSI em hardware de armazenamento.

O que são Alvo e Iniciador iSCSI?

O Alvo iSCSI atua como uma unidade de armazenamento, como um disco rígido, que é acessível através de uma rede. O Iniciador iSCSI é o cliente que se conecta e interage com o armazenamento no Alvo.

Posso usar iSCSI sobre uma WAN?

Sim, o iSCSI pode ser usado sobre uma Rede de Área Ampla (WAN), mas requer uma conexão de rede estável e rápida para garantir desempenho e confiabilidade. Considerações de segurança, como VPNs ou linhas dedicadas, também são importantes ao usar iSCSI sobre WAN.

Como o iSCSI é diferente do NFS ou SMB?

Ao contrário do NFS (Sistema de Arquivos de Rede) ou SMB (Server Message Block), que são protocolos de armazenamento em nível de arquivo, o iSCSI funciona em nível de bloco. Isso significa que permite que um sistema interaja com o armazenamento remoto como se fosse um disco rígido local, proporcionando mais flexibilidade na forma como o armazenamento é gerenciado.

O iSCSI é seguro?

O iSCSI em si não inclui recursos de segurança de alto nível. No entanto, você pode proteger suas conexões iSCSI usando métodos como IPsec para segurança em nível de rede ou configurando CHAP (Protocolo de Autenticação de Desafio e Resposta) para autenticação.

Quais são as considerações de desempenho para iSCSI?

O desempenho do iSCSI é influenciado pela velocidade da rede, latência, o desempenho dos dispositivos de armazenamento e a configuração da rede. Garantir uma conexão de rede de alta velocidade e latência mínima é crucial para um desempenho ideal.

Preciso de hardware especial para iSCSI?

Nenhum hardware especial é necessário para iSCSI. Ele pode ser executado em equipamentos de rede padrão. No entanto, adaptadores de barramento de host (HBA) iSCSI dedicados podem ser usados para melhorar o desempenho.

Como faço para solucionar problemas de conexão iSCSI no Ubuntu?

A solução de problemas pode envolver verificar a conectividade da rede, verificar arquivos de configuração tanto do iniciador quanto do alvo, revisar logs do sistema e garantir que o alvo esteja exportando corretamente os dispositivos de armazenamento. Além disso, usar ferramentas como iscsiadm pode ajudar a diagnosticar e gerenciar conexões iSCSI.

Conclusão

O guia acima ensinou como configurar um alvo e um iniciador iSCSI em um servidor Ubuntu 22.04. Você também aprendeu como compartilhar um dispositivo no servidor Alvo e acessá-lo a partir do iniciador.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.