O protocolo iSCSI é um protocolo de rede padrão, que permite o uso do protocolo SCSI sobre redes TCP/IP.

Começou a ser bastante aceito nos dias de hoje em ambientes de produção devido a adoção de redes Gigabit Ethernet, e por seu custo mais barato em comparação a um Storage SAN (Fibre Channel).

O protocolo é muito legal, e com ele sua maquina pode ser tanto um Initiator Node quanto um Target Node.

Vamos botar pra funcionar no CentOS 5.3,  esse foi o motivo imagino, pelo qual você está lendo isso! :)

Aqui eu possuo um HP Storage Server Proliant DL185 G5 com alguns TeraBytes de disco. A configuração de como criar LUNs e etc, não será mostrado aqui, porém é bastane intuitivo e mole mole de usar o Software. Mas iremos ver como apresentar essa LUN criada, a um CentOS que instalei, para receber alguns bancos que estão para serem criados com o Oracle que já instalei previamente é claro.

Bom, vamos ao que interessa. Heheheh….

Vamos instalar o Open-iSCSI com o seguinte comando:

# yum install iscsi-initiator-utils.x86_64

Para ter acesso ao Storage devemos criar uma interface.

# iscsiadm -m iface -I iface0 –op=new

Com o comando ifconfig pegue o endereço MAC da placa de rede que tem que estar com IP Fixo e por onde você acessa o seu servidor seja por SSH, VNC etc… esse MAC será adicionando a nova interface que você acabou de criar.

# iscsiadm -m iface -I iface0 –op=update -n iface.hwaddress -v 00:11:22:aa:3b:d4

Com a interface criada e o MAC da placa de rede gigabit amarrada a ela, a mesma ainda não sabe a qual Storage vai ser conectada, então pra isso iremos fazer:

# iscsiadm -m discovery -t st -p 192.168.1.3 iface0 -P 1

Onde 192.168.1.3 é o IP do meu Storage e é claro iface0 é por onde ele deve ser comunicar.
O resultado deve sair mais ou menos assim:

Target: iqn.1991-05.com.microsoft:abais-oracle-target
Portal: 192.168.1.3:3260,1
Iface Name: iface0

Pronto! É só anotar o IQN (iSCSI Qualified Name) e com o seguinte comando iremos dizer que eu serei um host a ter acesso a LUN criada.

# iscsiadm -m node -T iqn.1991-05.com.microsoft:abais-oracle-target –l

Pronto agora com o comando fdisk –l você vai perceber que apareceu uma nova unidade de disco pronta pra uso. Basta usar o próprio fdisk para criar uma tablela de partição e o mkfs pra formatar a unidade, escolhendo o seu tipo de sistema de arquivo. Que no meu caso usei ext3 mesmo.
No meu caso como criei um diretório com o nome de u01 para os Bancos (datafiles e logs) do Oracle, ficou assim:

# mount /dev/sda1 /u01

A partir deste momento tudo que for salvo em /u01 estará indo para o meu storage.
Para automatizar as coisas iremos fazer o seguinte. Pra quem é usuário Red Hat ou o próprio CentOS pode fazer o uso do comando chkconfig. O chkconfig é um comando usado basicamente para ativar e desativar serviços. Então pra nosso iSCSI faremos assim:

# chkconfig iscsi on

Isso faz o serviço subir durante o boot e para listar se foi tudo certinho use:

# chkconfig  –list

Depois edite o seu /etc/fstab e adicione a linha pra ser montado durante o boot.

/dev/sda1  /u01 ext3 _netdev 0 0

Acabamos nosso tutorial por aqui, vale lembrar que depois de instalado  o pacote ele cria um arquivo chamado /etc/iscsi/iscsi.conf onde voce define se vai querer ser um TARGET  ou INITIATOR,  passar usuario e senha e outras configurações. Mas no nosso caso nao foi preciso mecher nele pois eu simplesmente queria fazer os dois se comunicarem e pronto.

No mais é isso, se tiver alguma duvida sobre os comandos leiam a pagina de manual (MAN) para possiveis duvidas. Ou então me passem uma mensagem pra que eu possa esclarecer melhor. Outro detalhe é que o WordPress interpreta 2 (dois) sinais de menos (- -) como apenas um sinal.  Isso me deixa muito irritado e acho que isso ja deveria ser corrigido a muito tempo. #prontofalei.

Espero ter sido claro e bom proveito no uso de um Storage iSCSI com Linux :)

Bom artigo falando sobre o iSCSI recomendo leitura.