>_Iscsi

SCSI (Internet Small Computer System Interface) são comandos SCSI encapsulados em pacotes IP.

Trata-se de uma tecnologia criada para acelerar a taxa de transferência de dados entre dispositivos de um computador, desde que tais periféricos sejam compatíveis com a tecnologia. O padrão SCSI é muito utilizado para conexões de HD (disco rígido), scanners, impressoras, CD-ROM ou qualquer outro dispositivo que necessite de alta transferência de dados, muito utilizado em Servidores Storages.

As vantagens do SCSI não se resumem apenas à questão da velocidade, mas também da compatibilidade e estabilidade. Sendo o processador o dispositivo mais rápido do computador, o uso do padrão SCSI permite que essa velocidade seja aproveitada e assim, aumentá-se de forma considerável o desempenho do computador. Isso deixa claro que o SCSI é aplicado principalmente em servidores e em aplicações de missão crítica.

Funcionamento: Uma aplicação envia uma requisição, o sistema operacional cliente (Windows, Linux, etc) gera o comando SCSI, que é encapsulado em um pacote IP. Este pacote contendo o comando SCSI encapsulado é então transmitido normalmente pela rede ethernet. O iSCSI Target recebe o pacote, extrai o comando SCSI que é então interpretado pelo dispositivo SCSI.

Configuração: A configuração que é enviada junto com o pacote scsi-target-utils tem um exemplo simples, mas interessante. Vamos criar uma nova entrada neste arquivo mas antes veremos um item importante. O primeiro passo é definir o nome de compartilhamento que será visto pelos servidores remotos. Este nome deve seguir um padrão e você não deve ignorar estas regras. Se você escolher um nome qualquer, pode até ser que o equipamento remoto consiga acessá-lo porém pode te trazer problemas.

O padrão mais utilizado é o iqn (iSCSI Qualified Name).

              Dom DNS    String definida pelos admins
 Tipo  Data   invertido  por exemplo: uso, tamanho, etc
 +--++-----+ +---------+ +--------------------------------+
 |  ||     | |         | |                                |
 iqn.2012-09.loca.centos-node1:armazenamento:disco-raid10-100GB
 iqn.2012-09.local.centos-node1

Cenário deste Tutorial:

OBS: Todos os Servidores serão reproduzidos no VirtualBox 4.1.2

centos-node1 - Storage de 10GB - Controladora SCSI
IP: 192.168.50.20 - eth1 - Vlan 192.168.50.0/24

centos-node2 - Servidor de HA
IP: 192.168.50.21 - eth1 - Vlan 192.168.50.0/24

centos-node3 - Servidor de HA
IP: 192.168.50.22 - eth1 - Vlan 192.168.50.0/24

Passo 1 – No servidor de armazenamento, será necessário instalar o pacote abaixo:

# yum install scsi-target-utils

Passo 2 – Configure o Arquivo de configuração

target iqn.2012-09.local.centos-node1:armazenamento.disco1.10g
    # Qual o dispositivo local (partição ou volume lógico) está sendo compartilhado
    backing-store /dev/sdb
    # Controle de acesso - somente este ip pode mapear os volumes exportados
    initiator-address 192.168.50.21
    initiator-address 192.168.50.22
target

Passo 3 – Inicie o serviço tgtd e configure-o para inicialização automática:

# service tgtd start
# chkconfig tgtd on

Passo 4 – Verifique no servidor de o compartilhamento iscsi está ativo e disponível

# tgtadm --lld iscsi --op show --mode target

Pronto. O servidor iscsi (mais conhecido como iscsi target) está no ar compartilhando o disco de 10G.

Cliente – Os passos abaixo deverão ser feitos no node2 e node3.

Acessando o storage remotamente:

Agora vamos configurar o node2 e node3 que ambos irão mapear o compartilhamento iscsi remoto.

O primeiro passo é instalar o pacote iscsi-initiator-utils que é a parte client do iscsi, inicie o serviço e configure-o para inicialização automática:

Passo 1 – Instalação do pacote necessário para o cliente

# yum install iscsi-initiator-utils
# service iscsid start
# chkconfig iscsid on

Passo 2 – Verificando se o compartilhamento do iscsi(no servidor) esta ativo.
OBS: Este comando solicita uma lista de volumes exportados pelo servidor via protocolo iscsi.

# iscsiadm -m discovery -t sendtargets -p 192.168.50.20
192.168.50.20:3260,1 iqn.2012-09.local.centos-node1:armazenamento.disco1.10g

Se o retorno foi parecido como o acima, maravilha o disco pode ser mapeado para o compartilhamento.

Passo 3 – O passo seguinte é efetuar login no servidor remoto via iscsi. Login neste caso significa estabelecer conexão com o storage e mapear os dispositivos exportados como se fossem discos locais. Isto é feito com o comando a seguir:

# iscsiadm -m node -T iqn.2012-09.local.centos-node1:armazenamento.disco1.10g -p 192.168.50.20 -l
Logging in to [iface: default, target: iqn.2012-09.local.centos-node1:armazenamento.disco1.10g, portal: 192.168.50.20,3260] (multiple)
Login to [iface: default, target: iqn.2012-09.local.centos-node1:armazenamento.disco1.10g, portal: 192.168.50.20,3260] successful.

Agora o disco do servidor deve aparecer como um disco local. Rode o comando fdisk -l para verificar.

OBS:Perceba que o volume iscsi aparece como um disco sdc normal.
OBS: No meu exemplo será o dispositivo /dev/sdc nos nodes2 e 3.

# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2422    19454683+  83  Linux
/dev/sda2            2423        2600     1429785   82  Linux swap / Solaris

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes

O disco /dev/sdb não contém uma tabela de partições válida

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cilindros of 2048 * 512 = 1048576 bytes

Dispositivo Boot      Start         End      Blocks   Id  System

No servidor que atua como storage, o volume de 10Gb é apenas um dispositivo sem qualquer tipo de particionamento, quando ele é exportado via iscsi, o cliente identifica como um disco que ainda não foi, sequer, inicializado.

Você precisa particioná-lo a partir da máquina cliente para que possa ser usado como armazenamento.

Se você reiniciar seu equipamento agora, este volume sdc não será listado. Para que o iscsid possa fazer o login e disponibilizar o volume localmente de forma automática você deve colocar o iqn no arquivo /etc/iscsi/initiatorname.iscsi.

Passo 5 – Adicionando o parametro no arquivo /etc/iscsi/initiatorname.iscsi para que o compartilhamento possa ser automatico.

# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2012-09.local.centos-node1:armazenamento.disco1.10g
# /etc/init.d/iscsid restart
Stopping iSCSI daemon:
Starting iSCSI daemon:                                     [  OK  ]
                                                           [  OK  ]
# /etc/init.d/iscsi restart
iscsiadm: No matching sessions found
Stopping iSCSI daemon:
iscsid está parado                                         [  OK  ]
Starting iSCSI daemon:                                     [  OK  ]
                                                           [  OK  ]
Estabelecendo alvos iSCSI: Logging in to [iface: default, target: iqn.2012-090.local.centos-node1:armazenamento.disco1.10g, portal: 192.168.50.20,3260] (multiple)
Login to [iface: default, target: iqn.2012-09.local.centos-node1:armazenamento.disco1.10g, portal: 192.168.50.20,3260] successful.
                                                           [  OK  ]

Pronto! Tudo configurado no node2 e node3.

O próximo tutoriail dará efeito a criação de um server em HA usando o recurso de compartilhamento de disco através de uma controladora iscsi.

Fontes:
Savant – http://www2.savant.com.br/index.php/artigos/tutoriais/21
iSCSI initiator quick start guide – http://fedoraproject.org/wiki/Scsi-target-utils_Quickstart_Guide

>_Iscsi
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: