Montando compartilhamento iSCSI Multipath no Gnu/Linux RockyOS (RedHat Based)
O que é iSCSI?
iSCSI (Internet Small Computer System Interface) é um protocolo na camada de transporte em uma rede TCP/IP. Desenvolvido pela IBM, esse serviço permite que comandos SCSI sejam enviados através de uma rede LAN (Local Area Network), WAN (Wide Area Network) ou via internet.
Por tratar-se de um protocolo orientado a conexão, para que haja comunicação entre dois dispositivos é necessário instalar um iniciador iSCSI no servidor que “aponte” para um alvo de armazenamento válido disponível, também conhecido como LUN (logical unit number).
Como funciona o iSCSI?
O protocolo iSCSI é o responsável pelo transporte de dados em nível de bloco (mais sobre armazenamento a nível de arquivo e bloco) entre uma máquina host, que pode ser um computador, servidor ou workstation, e um dispositivo de armazenamento ligado à rede como um storage NAS.
O servidor anfitrião (host) deve ter configurado um iniciador iSCSI (source) fornecido pelo sistema operacional e o dispositivo de armazenamento deve ser compatível com o serviço para tornar-se um “alvo vísivel” (target), ou seja, permitir que a máquina host conecte-se ao target.
O iSCSI encapsula comandos SCSI e reúne os dados em pacotes para a camada TCP/IP. Os pacotes são enviados pela rede usando uma conexão ponto a ponto. Na chegada, o protocolo desmonta os pacotes, separando os comandos SCSI para que o sistema operacional (OS) reconheça a unidade de armazenamento como se fosse um dispositivo conectado localmente (DAS), possibitando, por exemplo, ser formatado.
Parte da grande popularidade do iSCSI em pequenas e médias empresas (SMBs) deve-se principalmente como a virtualização de servidores faz uso desses pools de armazenamento. Em um ambiente virtualizado, o pool de armazenamento deve estar acessível à todos os hosts no cluster, e essa conexão só é possível através de protocolos como o iSCSI ou o Fibre Channel (FC). Existem vários dispositivos compatíveis esse padrão, como servidores, workstations, computadores clientes e sistemas de armazenamento.
Um dos grandes benefícios do protocolo iSCSI é que essa tecnologia facilita a transferência de dados e gerencia storages a distância, podendo ser usada em redes locais (LANs) ou através da internet (WAN).
Nesse artigo eu irei demonstrar os procedimentos de montagem de compartilhamento iSCSI no Gnu/Linux RockyOS / AlmaLinux / RedHat / CentOS 8.4.
Essa documentação parte do principio que as interfaces de rede estejam configuradas adequadamente e se comunicando o iSCSI Server.
Temos o seguinte cenário:
- iSCSI Server
- VLAN iSCSI Novo – IPS 192.168.1.1 e 192.168.1.2
- Gnu/Linux RockyOS 8.4
- Interface ens192 na VLAN CPD – IP 192.168.4.143
- Interface ens224 na VLAN CPD – IP 192.168.1.4
A primeira providência para iniciar o processo, é instalar os pacotes básicos não contidos na distribuição e os pacotes necessários para a utilização do iSCSI.
Logue-se com o usuário root e execute os seguinte comando:
yum update -y && yum install -y net-tools vim device-mapper-multipath iscsi-initiator-utils
Agora, vamos habilitar os serviços com o comando abaixo:
systemctl enable multipathd iscsid
O segundo passo é editar o arquivo de configuração para ajustar o nome no “iqn”.
vim /etc/iscsi/initiatorname.iscsi
Vale ressaltar que o nome do iqn deve ser exatamente igual a como foi configurado no iSCSI Server. No nosso caso é iqn.2021-10.intra.clubenaval:rockyos. Então, vamos deixar o arquivo assim:
InitiatorName=iqn.2021-10.intra.clubenaval:rockyos
Agora é necessário recarregar os serviços para que o sistema reconheça a alteração no nome do iqn. Faça o comando abaixo:
systemctl restart iscsid multipathd
Agora, precisamos rodar o comando que vai “descobrir” o target:
iscsiadm -m discovery -t sendtargets -p 192.168.1.1
(observe que 192.168.1.1 é o endereço do iSCSI Server)
Será mostrado na tela a saído do comando. Algo parecido com isso:
Agora, precisamos rodar o comando para conectar ao target:
iscsiadm -m node --login
Se tudo correu bem, a saída será algo desse tipo:
Agora vamos listar as sessões ativas:
iscsiadm -m session -o show
A saída deverá ser parecida com isso:
Agora, precisamos habilitar as configurações do mutilpath. Para isso, fala o comando abaixo:
mpathconf --enable
Precisamos agora consultar as informações de UID dos dispositivos. Vamos rodar o comando abaixo:
multipath -v3 2>&1 | grep udev | grep uid | grep -v failed
A saída deve ser algo semelhante a isso:
Agora, precisamos adicionar adicionar o UID do disco compartilhado via iSCSI para a configuração do multipath. Faça o comando abaixo:
multipath -a 36589cfc0000005194fbf6b859bd6cc3b
Agora faça esse comando crie o arquivo “/etc/multipath.conf” com o comando abaixo:
Agora edite-o com o arquivo /etc/multipath.conf com o “vim” ou qualquer outro editor de sua preferência e adicione esse conteúdo após a última linha:
multipaths { multipath { wwid 36589cfc0000005194fbf6b859bd6cc3b alias iSCSIa } }
Precisamos reiniciar o serviço para aplicar as alterações:
systemctl restart multipathd
Verificar se o dispositivo multipath foi criado:
multipath -l
fdisk -l | grep iSCSIa
Podemos verificar com os comandos acima que o disco foi adicionado ao sistema corretamente. Precisamos agora configurar tudo para carregar no boot. Rode os comandos abaixo nessa mesma sequência:
sed 's/node.startup = manual/node.startup = automatic/' -i /etc/iscsi/iscsid.conf
Agora, com a ajuda do cfdisk, precisamos criar a tabela de alocação e a partição. Não vou entrar no mérito e ensinar como se usa o cfdisk, então, rode o comando abaixo e faça o processo:
cfdisk /dev/mapper/iSCSIa
Agora vamos formatar a partição criada com o comando abaixo:
mkfs.ext4 /dev/mapper/iSCSIa1
Agora, precisamos configura-la para montagem automática no fstab. Edite o arquivo /etc/fstab e deixe-o assim:
# Compartilhamento iscsi /dev/mapper/iSCSIa1 /mnt ext4 defaults,_netdev 1 2
Vamos agora montar o compartilhamento:
mount /mnt
Isso é tudo!
Esse artigo foi útil? Colabore com o nosso site para podermos continuar dando mais dicas como essa!
Formas de doação:
- Boleto / Cartão de crédito: https//bit.ly/AprendendoLinux
- Pix: [email protected]
- PicPay: @henrique_fagundes
- PayPal: [email protected]
- Bitcoin: bc1qtnn5z058htzy799dslwrpjcdpm0vuta3vrj28l
Favorecido: Luiz Henrique Marques Fagundes