jan 20

iSCSI - Internet Small Computer System Interface

O iSCSI é um protocolo que permite a integração do SCSI para trabalhar com o armazenamento na rede. O Internet Small Computer System Interface permite que vc possa utilizar de boas praticas de SAN ou seja, armazenamento na rede para aumentar a disponibilidade dos arquivos e velocidade de armazenamento na rede.

Dependendo da sua distribuição o suporte ao iSCSI ja esta integrado a versão do kernel que vc utiliza e ate mesmo no gerenciador de pacotes do mantedor que vc utiliza. Como por exemplo em distribuições como o RHEL/CentOS, Debian vamos precisar instalar certos pacotes e algumas outras instalações como o Ubuntu Server ja vem com o suporte ao iscsi na propria instalação e seu suporte no Linux permite que possamos montar como um dispositivo de bloco, o que é muito interessante. Entao vamos entender a sua instalação e configuração.

No RHEL/CentOS a instalação do iscsi vai depender se vc possui o pacote iscsi-initiator-utils que permite a utilização do daemon que gerencia o protocolo e tambem permite a utilização dos comandos de scsi. Ja no Debian e no Ubuntu trabalhamos com o pacote open-iscsi.

Para instalar no RHEL/CentOS execute:

# yum install iscsi-initiator-utils -y

Para instalar no Debian execute:

# apt-get install open-iscsi open-iscsi-utils -y

Existem 3 procedimentos que devemos tomar apos a instalação do iSCSI apos a instalação. Primeiro devemos editar o arquvo /etc/iscsi/iscsid.conf que é o arquivo de configuração para o storage iscsi e funcionamento. Para os outros passos devemos cumprir com algumas metas de configuração padrão como verificar a disponibilidade do daemon e determinar usuario, senha e ip do host do servidor de armazenamento.

A configuração do arquivo /etc/iscsi/iscsid.conf se parece com a saida abaixo onde é definido o usuario de controle do iscsi e senha. Ele possui 2 tipos de configurações diferentes. A controle de node e discover, sendo que a configuração do node defini um nome de usuário e senha CHAP para autenticação sendo inicializada pelo alvo e  discovery  que é usado para definir uma descoberta sessão CHAP username e senha para a autenticação iniciador pelo alvo

# vi /etc/iscsi/iscsid.conf

node.session.auth.username = MEU USUARIO ISCSI
node.session.auth.password = MINHASENHA
discovery.sendtargets.auth.username = MEU ISCSI USUARIO
discovery.sendtargets.auth.password =SENHA
node.session.auth.username = My_ISCSI_USR_NAMEnode.session.auth.password = MyPassworddiscovery.sendtargets.auth.username = My_ISCSI_USR_NAMEdiscovery.sendtargets.auth.password = MyPassword

Após concluir com a configuração basta iniciar o daemon:

# /etc/init.d/iscsi start

Sendo que no RHEL/CentOS vc precisa utilizar o frontend do insserv para fazwer com que o seu daemon sempre seja executado no procedimento de boot sendo gerenciado pela sua runlevel default. Podemos fazer isso com o comando #chkconfig iscsi on OU ntsysv e é só marcar o iscsi e ele sera iniciado na runlevel 3 e 5 normalmente, e no caso Debian/Ubuntu podemos utilizar o comando update-rc.d ou o proprio rcconf. Mas no caso do Ubuntu e Debian nem será preciso pois ele será automaticamente gerenciado pela sua runlevel padrão que sempre será a 2.

A 2 etapa é utilizar o comando iscsiadm para gerenciar o acesso ao iscsi database atraves do login e o ip do servidor. Podemos utilizar o comando iscsiadm da seguinte maneira:

# iscsiadm -m discovery -t sendtargets -p 10.0.0.2
vamos levar em consideração que o ip 10.0.0.2 é o IP de LAN do seu servidor, é o ip do meu ;)

Reinicie o daemon:

# /etc/init.d/iscsi restart
OU #service iscsi restart OU #invoke-rc.d iscsi restart

NOTA: como o iscsi será identificado como um dispositivo de bloco para que vc nao se confunda com os dispositivos ja encontrados no seu Linux vc pode utilizar o comando #fdisk -l para verificar como estão as suas partições no disco ou consultar o arquivo /proc/partitions para isso. Mas assim que vc executar os comandos acima para inciar o dispositivo de iSCSI ele vai jogar uma saida arquivo /var/log/messages do seu syslog parecida com esta:

Oct 10 12:42:20 ora9is2 kernel:   Vendor: EQLOGIC   Model: 100E-00           Rev: 3.2

Oct 10 12:42:20 ora9is2 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 05

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)

Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)

Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off

Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through

Oct 10 12:42:20 ora9is2 kernel:  sdd: unknown partition table

Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi disk sdd

Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi generic sg3 type 0

Oct 10 12:42:20 ora9is2 kernel: rtc: lost some interrupts at 2048Hz.

Oct 10 12:42:20 ora9is2 iscsid: connection0:0 is operational now

-

Pela leitura do arquivo de LOG acima eu encontrei o meu dispositivo iscsi em /dev/sdd, então o proximo procedimento e ultimo é a formatação e definir o ponto de montagem. Eu recomendaria que vc entre com o fdisk no dispositivo /dev/sdd e particione o dispositivo de bloco para facilitar o gerenciamento como vc faz com qualquer dispositivo que vc coloca na sua maquina e logo após não esqueca de rodar o partprobe para atualizar a tabela do kernel em /proc/partitions e então prosseguir com a formatação e montar:

#fdisk /dev/sdd

#partprobe

#mkfs.ext3 /dev/sdd1

# mkdir /mnt/iscsi

# mount /dev/sdd1 /mnt/iscsi

Pronto! Ja esta funcionando…. Não se esqueça de colocar no arquivo /etc/fstab a seguinte instrução:

/dev/sdd1 /mnt/iscsi ext3 _netdev 0 0

E no próximo boot vc garante que o seu ponto de montagem será automaticamente montado no dispositivo referente ao iscsi.

É possivel tb adcionar uma interface de rede relacionada ao seu iscsi com o comando # iscsiadm -m iface -I iface0 –op=new e utilizar do ifconfig para verificar o seu MAC relacionado ao dispositivo que vc quer associar e utilizar o comando # iscsiadm -m iface -I iface0 –op=update -n iface.hwaddress -v 00:11:22:aa:3b:d4 .

É o poder ;)

Comments are closed.

preload preload preload
Powered by Moblie Video for WordPress + Daniel Watrous