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 -yUma 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 -yApós instalar o Alvo iSCSI, verifique o status do servidor com o seguinte comando:
systemctl status tgtVocê 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.confAdicione 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 tgtEm seguida, verifique o servidor Alvo iSCSI com o seguinte comando:
tgtadm --mode target --op showVocê 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 -yUma 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.10Você 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.iscsiAdicione 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/defaultAdicione / 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 iscsidVocê também pode verificar o status do serviço com o seguinte comando:
systemctl status open-iscsiVocê 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 showVocê 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:
lsblkVocê 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/sdbResponda 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/sdb1Você 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 /mntAgora você pode verificar a partição montada com o seguinte comando:
df -hVocê 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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.