Differences

This shows you the differences between two versions of the page.

Link to this comparison view

debian_squeeze_equalogic_multipath_pt_br [2019/08/08 15:23] (current)
Line 1: Line 1:
 +====== Debian Squeeze + Equalogic + Multipath ======
  
 +
 +E ai galera, aqui eu vou abordar a configuração de conexão ISCSI de um servidor Debian Squeeze com um Storage Equalogic.
 +
 +**Requisitos**:
 +  - Ip eth0  iscsi Debian:  10.130.0.200
 +  - Ip eth1 iscsi Debian:  10.130.0.201
 +  - Ip iscsi Equalogic: 10.130.0.130
 +
 +Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.
 +
 +
 +Eu vou utilizar a autenticação com o storage pela identificação de iqn do servidor debian, porém pode ser utilizado por endereço ip ou com CHAP.
 +
 +Aqui vou utilizar duas interfaces para o servidor debian pois precisamos configurar o multipath, para obtermos a redundância das conexões entre o Debian e o Equalogic.
 +
 +**Por que utilizar o multipath**: Teremos o ip 10.130.0.200 com uma conexão para o storage e o ip 10.130.0.201 com outra conexão para o storage com isso caso alguma das conexões caia ainda teremos o acesso aos dados.
 +
 +Vamos atualizar os repositórios e fazer um upgrade do sistema
 +<sxh bash>
 +
 +aptitude update && aptitude dist-upgrade -y
 +</sxh>
 +
 +Agora vamos instalar os pacotes necessários para a nossa conexão com o storage
 +<sxh bash>
 +
 +aptitude install open-iscsi  multipath-tools -y
 +</sxh>
 +
 +Agora vamos reiniciar o serviço do open-iscsi para ele gerar o nosso iqn.
 +<sxh bash>
 +
 +/etc/init.d/open-iscsi restart
 +</sxh>
 +
 +Agora vamos editar o arquivo e informar o nosso iqn, aqui eu vou utilizar o padrão iqn-ano-mes.fqdn:hexadecimal, informações sobre iqn podem ser obtidas em http://en.wikipedia.org/wiki/ISCSI
 +<sxh bash>
 +
 +vim /etc/iscsi/initiatorname.iscsi
 +InitiatorName=iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +</sxh>
 +
 +Agora vamos reiniciar novamente o serviço do open-iscsi
 +<sxh bash>
 +
 +/etc/init.d/open-iscsi restart
 +</sxh>
 +
 +Agora vamos testar as interfaces, para confirmar que as duas estão chegando no storage.
 +<sxh bash>
 +
 +ping -I eth0 10.130.0.130 -c 3
 +PING 10.130.0.130 (192.168.130.130) from 192.130.0.200 eth0: 56(84) bytes of data.
 +64 bytes from 10.130.0.130: icmp_req=1 ttl=255 time=4.23 ms
 +64 bytes from 10.130.0.130: icmp_req=2 ttl=255 time=0.055 ms
 +64 bytes from 10.130.0.130: icmp_req=3 ttl=255 time=0.048 ms
 +
 +--- 10.130.0.130 ping statistics ---
 +3 packets transmitted, 3 received, 0% packet loss, time 2000ms
 +rtt min/avg/max/mdev = 0.048/1.444/4.230/1.970 ms
 +</sxh>
 +
 +Como pode ser notado pela interface eth0 estamos chegando no Storage, agora vamos testar com a interface eth1.
 +<sxh bash>
 +
 +ping -I eth1 10.130.0.130 -c 3
 +PING 10.130.0.130 (192.168.130.130) from 192.130.0.200 eth0: 56(84) bytes of data.
 +64 bytes from 10.130.0.130: icmp_req=1 ttl=255 time=4.23 ms
 +64 bytes from 10.130.0.130: icmp_req=2 ttl=255 time=0.055 ms
 +64 bytes from 10.130.0.130: icmp_req=3 ttl=255 time=0.048 ms
 +
 +--- 10.130.0.130 ping statistics ---
 +3 packets transmitted, 3 received, 0% packet loss, time 2000ms
 +rtt min/avg/max/mdev = 0.048/1.444/4.230/1.970 ms
 +</sxh>
 +
 +Como pode ser notado pela interface eth1 estamos chegando no Storage também.
 +
 +Aqui vou estar utilizando o [[http://en.wikipedia.org/wiki/Jumbo_frame|Jumbo Frame]] que trabalhamos com pacotes maiores para ou seja ao invez de trabalharmos com pacotes de 1500 MTU, vamos trabalhar com pacotes de 9000 MTU, então a configuração do /etc/network/interface tem que ficar parecido com o abaixo.
 +<sxh bash>
 +
 +vim /etc/network/interfaces
 +[...]
 +#ISCSI 1
 +auto eth0
 +iface eth0 inet static
 +        address 10.130.0.200
 +        netmask 255.255.255.0
 +        network 10.130.0.0
 +        broadcast 10.130.0.255
 +        mtu 9000
 +
 +#ISCSI 2
 +auto eth1
 +iface eth1 inet static
 +        address 10.130.0.201
 +        netmask 255.255.255.0
 +        network 10.130.0.0
 +        broadcast 10.130.0.255
 +        mtu 9000
 +[...]
 +</sxh>
 +
 +Agora vamos baixar as duas interfaces .
 +<sxh bash>
 +
 +ifconfig eth0 down
 +ifconfig eth1 down
 +</sxh>
 +
 +Agora vamos subir elas novamente
 +<sxh bash>
 +
 +ifup eth0
 +ifup eth1
 +</sxh>
 +
 +Agora vamos consultar a nossa configuração para a interface eth0
 +<sxh bash>
 +
 +ifconfig eth0
 +eth0      Link encap:Ethernet  Endereço de HW a4:ba:db:23:fb:14  
 +          inet end.: 10.130.0.200  Bcast:10.130.0.255  Masc:255.255.255.0
 +          endereço inet6: fe80::a6ba:dbff:fe23:fb14/64 Escopo:Link
 +          UP BROADCASTRUNNING MULTICAST  MTU:9000  Métrica:1
 +          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 +          colisões:0 txqueuelen:1000 
 +          RX bytes:704 (704.0 B)  TX bytes:492 (492.0 B)
 +          IRQ:36 Memória:d2000000-d2012800 
 +</sxh>
 +
 +Agora vamos consultar a nossa configuração para a interface eth1
 +<sxh bash>
 +
 +ifconfig eth1
 +eth1      Link encap:Ethernet  Endereço de HW a4:ba:db:23:fb:16  
 +          inet end.: 10.130.0.201  Bcast:10.130.0.255  Masc:255.255.255.0
 +          endereço inet6: fe80::a6ba:dbff:fe23:fb16/64 Escopo:Link
 +          UP BROADCASTRUNNING MULTICAST  MTU:9000  Métrica:1
 +          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 +          colisões:0 txqueuelen:1000 
 +          RX bytes:896 (896.0 B)  TX bytes:492 (492.0 B)
 +          IRQ:48 Memória:d4000000-d4012800 
 +</sxh>
 +
 +Agora vamos testar as interfaces, para confirmar que as duas estão chegando no storage.
 +<sxh bash>
 +
 +ping -I eth0 10.130.0.130 -c 3
 +PING 10.130.0.130 (192.168.130.130) from 192.130.0.200 eth0: 56(84) bytes of data.
 +64 bytes from 10.130.0.130: icmp_req=1 ttl=255 time=4.23 ms
 +64 bytes from 10.130.0.130: icmp_req=2 ttl=255 time=0.055 ms
 +64 bytes from 10.130.0.130: icmp_req=3 ttl=255 time=0.048 ms
 +
 +--- 10.130.0.130 ping statistics ---
 +3 packets transmitted, 3 received, 0% packet loss, time 2000ms
 +rtt min/avg/max/mdev = 0.048/1.444/4.230/1.970 ms
 +</sxh>
 +
 +Como pode ser notado pela interface eth0 estamos chegando no Storage, agora vamos testar com a interface eth1.
 +<sxh bash>
 +
 +ping -I eth1 10.130.0.130 -c 3
 +PING 10.130.0.130 (192.168.130.130) from 192.130.0.200 eth0: 56(84) bytes of data.
 +64 bytes from 10.130.0.130: icmp_req=1 ttl=255 time=4.23 ms
 +64 bytes from 10.130.0.130: icmp_req=2 ttl=255 time=0.055 ms
 +64 bytes from 10.130.0.130: icmp_req=3 ttl=255 time=0.048 ms
 +
 +--- 10.130.0.130 ping statistics ---
 +3 packets transmitted, 3 received, 0% packet loss, time 2000ms
 +rtt min/avg/max/mdev = 0.048/1.444/4.230/1.970 ms
 +</sxh>
 +
 +Agora vamos acertar a configuração do open-iscsi
 +<sxh bash>
 +
 +vim /etc/iscsi/iscsid.conf
 +[...]
 +#vamos deixar node.startup = automatic
 +node.startup = automatic
 +#Agora caso esteja utilizando autenticação CHAP utilize a seguinte configuração.
 +[...]
 +#método de autenticação CHAP para sessão
 +node.session.auth.authmethod = CHAP
 +#Usuário para autenticação para sessão
 +node.session.auth.username = username
 +#Senha para autenticação para sessão
 +node.session.auth.password = password
 +#método de autenticação CHAP para descoberta de LUN
 +discovery.sendtargets.auth.authmethod = CHAP
 +#usuário para descoberta de LUN
 +discovery.sendtargets.auth.username = username
 +#senha para descoberta de LUN
 +discovery.sendtargets.auth.password = password
 +#Agora alguns parâmetros para tunning
 +node.session.cmds_max = 1024 
 +[...]
 +node.session.queue_depth = 128
 +[...]
 +node.session.iscsi.FastAbort = No
 +</sxh>
 +
 +Agora vamos mandar reiniciar o open-iscsi
 +<sxh bash>
 +
 +/etc/init.d/open-iscsi restart
 +</sxh>
 +
 +Agora vamos mandar listar as LUN do storage para o nosso servidor.
 +<sxh bash>
 +
 +iscsiadm -m discovery -t st -p 10.130.0.130:3260
 +10.130.0.130:3260,1 iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos
 +</sxh>
 +
 +
 +Como pode ser notado temos o retorno de nosso storage porém de somente uma instancia e nós precisamos de suas para que o multipath funcione então vamos corrigir isso.
 +
 +Vamos habilitar o multipath informando para o servidor quais interfaces ele deve utilizar.
 +<sxh bash>
 +
 +iscsiadm -m iface -I eth0 -o new && iscsiadm -m iface -I eth1 -o new
 +New interface eth0 added
 +New interface eth1 added
 +</sxh>
 +
 +Agora precisamos fazer um update da interface física que vamos utilizar que é a mesma eth0 e eth1.
 +<sxh bash>
 +
 +iscsiadm -m iface -I eth0 -o update -n iface.net_ifacename -v eth0
 +eth0 updated.
 +</sxh>
 +
 +Agora vamos fazer o mesmo procedimento com a segunda interface.
 +<sxh bash>
 +
 +iscsiadm -m iface -I eth1 -o update -n iface.net_ifacename -v eth1 
 +eth1 updated.
 +</sxh>
 +
 +
 +Vamos reiniciar os serviços do multipath e o open-iscsi
 +<sxh bash>
 +
 +/etc/init.d/multipath-tools restart && /etc/init.d/multipath-tools-boot restart && /etc/init.d/open-iscsi restart 
 +</sxh>
 +
 +Agora vamos mandar deslogar qualquer sessão já ativa.
 +<sxh bash>
 +
 +iscsiadm -m node -u
 +</sxh>
 +
 +Agora vamos mandar listar as LUN do storage para o nosso servidor novamente
 +<sxh bash>
 +
 +iscsiadm -m discovery -t st -p 10.130.0.130:3260
 +10.130.0.130:3260,1 iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos
 +10.130.0.130:3260,1 iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos
 +</sxh>
 +
 +Como pode ser notado temos duas instancias por causa que habilitamos o open-iscsi a trabalhar com as duas interfaces.
 +
 +Agora vamos mandar conectar no storage.
 +<sxh bash>
 +
 +iscsiadm -m node -l -T iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos -p 10.130.0.130:3260
 +Logging in to [iface: eth0, target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos, portal: 10.130.0.130,3260]
 +Logging in to [iface: eth1, target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos, portal: 10.130.0.130,3260]
 +Login to [iface: eth0, target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos, portal: 10.130.0.130,3260]: successful
 +Login to [iface: eth1, target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos, portal: 10.130.0.130,3260]: successful
 +</sxh>
 +
 +Agora vamos visualizar as sessões do nosso servidor com o storage.
 +<sxh bash>
 +
 +iscsiadm -m session -P 2
 +Target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos
 +  Current Portal: 10.130.0.133:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth0
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.200
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth0
 +    SID: 5
 +    iSCSI Connection State: LOGGED IN
 +    iSCSI Session State: LOGGED_IN
 +    Internal iscsid Session State: NO CHANGE
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +  Current Portal: 10.130.0.134:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth1
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.201
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth1
 +    SID: 6
 +    iSCSI Connection State: LOGGED IN
 +    iSCSI Session State: LOGGED_IN
 +    Internal iscsid Session State: NO CHANGE
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +
 +</sxh>
 +
 +Agora vamos editar o arquivo de configuração da nosso multipath, por padrão ele não existem temos que criar ele.
 +
 +<sxh bash>
 +
 +vim /etc/multipath.conf
 +blacklist {
 +   devnode "^sd[a]$"
 +}
 +
 +</sxh>
 +
 +Agora vamos mandar reiniciar o multipath
 +<sxh bash>
 +
 +/etc/init.d/multipath-tools restart
 +</sxh>
 +
 +Agora vamos listar o nosso multipath.
 +<sxh bash>
 +
 +multipath -ll
 +36090a078d0ca7e4225fb642f0714088a dm-0 EQLOGIC,100E-00
 +size=8.0T features='0' hwhandler='0' wp=rw
 +`-+- policy='round-robin 0' prio=2 status=active
 +  |- 11:0:0:0 sdb 8:16 active ready running
 +  `- 10:0:0:0 sdc 8:32 active ready running
 +</sxh>
 +
 +Agora nós precisamos da identificação da nosso multipath que é 36090a078d0ca7e4225fb642f0714088a, para acertarmos a configuração.
 +<sxh bash>
 +
 +vim /etc/multipath.conf
 +blacklist {
 +   devnode "^sd[a]$"
 +}
 +
 +multipaths {
 +   multipath {
 +   wwid                   36090a078d0ca7e4225fb642f0714088a
 +   alias                  arquivos
 +   path_grouping_policy   multibus
 +   path_checker           readsector0
 +   path_selector          "round-robin 0"
 +   failback               immediate
 +   rr_weight              priorities
 +   no_path_retry          fail
 +   rr_min_io              10
 +   }
 +}
 +</sxh>
 +
 +Agora vamos mandar reiniciar o multipath
 +<sxh bash>
 +
 +/etc/init.d/multipath-tools restart
 +</sxh>
 +
 +Agora vamos listar novamente a nossa LUN
 +<sxh bash>
 +
 +multipath -ll
 +arquivos (36090a078d0ca7e4225fb642f0714088a) dm-0 EQLOGIC,100E-00
 +size=8.0T features='0' hwhandler='0' wp=rw
 +`-+- policy='round-robin 0' prio=2 status=active
 +  |- 11:0:0:0 sdb 8:16 active ready running
 +  `- 10:0:0:0 sdc 8:32 active ready running
 +</sxh>
 +
 +Agora já podemos notar que antes da identificação da LUN temos o alias que definimos para ela.
 +
 +Agora vamos listar os dispositivos que foram criados em /dev/mapper
 +<sxh bash>
 +
 +ls -l /dev/mapper/*
 +lrwxrwxrwx 1 root root      7 Mai 25 17:59 /dev/mapper/arquivos -> ../dm-0
 +crw------- 1 root root 10, 59 Mai 25 17:37 /dev/mapper/control
 +</sxh>
 +
 +Caso a LUN seja menor que 2TB podemos utilizar o cfdisk ou o fdisk para criar as partições neste caso depois de criar a partição aconselho a reiniciar o servidor.
 +
 +Agora vamos criar a nossa partição, caso ela sejá maior do que 2TB temos que utilizar o parted para criar, a minha LUN tem 8 TB então vou utilizar ela como exemplo.
 +
 +Vamos instalar o parted.
 +<sxh bash>
 +
 +aptitude install parted -y
 +</sxh>
 +
 +Agora vamos criar a nossa partição o nosso dispositivo vai ser /dev/mapper/arquivos.
 +<sxh bash>
 +
 +parted /dev/mapper/arquivos
 +GNU Parted 2.3
 +Using /dev/mapper/arquivos
 +Welcome to GNU Parted Type 'help' to view a list of commands.
 +(parted)   
 +</sxh>
 +
 +Agora precisamos setar a partição como [[http://en.wikipedia.org/wiki/GUID_Partition_Table|GPT]]
 +<sxh bash>
 +
 +(parted) mklabel gpt
 +</sxh>
 +
 +Agora vamos precisar configura a nossa operação.
 +<sxh bash>
 +
 +Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
 +Yes/No? yes
 +(parted)
 +</sxh>
 +
 +Agora vamos setar a unidade de medida para a nossa partição.
 +<sxh bash>
 +
 +(parted) unit TB
 +</sxh>
 +
 +Agora vamos definir que vamos utilizar toda a LUN para a nossa partição.
 +<sxh bash>
 +
 +(parted) mkpart primary 0.00TB 3.00TB
 +</sxh>
 +
 +Agora vamos mandar listar a nossa partição.
 +<sxh bash>
 +
 +(parted) print                                                            
 +Model: Linux device-mapper (multipath) (dm)
 +Disk /dev/mapper/arquivos: 8796GB
 +Sector size (logical/physical): 512B/512B
 +Partition Table: gpt
 +
 +Number  Start   End     Size    File system  Name     Flags
 +      1049kB  8000GB  8000GB  ext4         primary
 +</sxh>
 +
 +Agora vamos sair do parted
 +<sxh bash>
 +
 +(parted) quit
 +</sxh>
 +
 +Agora vamos ter um aviso sobre que temos que manipular o /etc/fstab com a nossa nova partição.
 +
 +Vamos agora criar o sistema de arquivos que vai ser utilizado nessa partição, aqui eu vou utilizar o ext4 sem nem um parâmetro em especial.
 +<sxh bash>
 +
 +mkfs.ext4 /dev/mapper/arquivos-part1
 +</sxh>
 +
 +Depois do sistema de qrquivos criado já podemos montar a nossa partição, vamos lá.
 +<sxh bash>
 +
 +mount /dev/mapper/arquivos-part1 /srv/
 +</sxh>
 +
 +Agora vamos listar as nossas partições.
 +<sxh bash>
 +
 +df -Th
 +Sist. Arq.    Tipo    Size  Used Avail Use% Montado em
 +/dev/sda2     ext4    4,6G  264M  4,1G   6% /
 +tmpfs        tmpfs     24G       24G   0% /lib/init/rw
 +udev         tmpfs     24G  212K   24G   1% /dev
 +tmpfs        tmpfs     24G       24G   0% /dev/shm
 +/dev/sda1     ext4    184M   21M  155M  12% /boot
 +/dev/sda8     ext4     19G  172M   18G   1% /home
 +/dev/sda5     ext4    1,9G   35M  1,8G   2% /tmp
 +/dev/sda7     ext4     19G  510M   17G   3% /usr
 +/dev/sda6     ext4     19G  311M   18G   2% /var
 +/dev/mapper/arquivos-part1
 +              ext4    7,2T  1,6T  5,3T  23% /srv
 +</sxh>
 +
 +
 +Vamos utilizar o nosso mapper que é da nossa nova partição, vamos editar então o /etc/fstab.
 +<sxh bash>
 +
 +vim /etc/fstab
 +[...]
 +/dev/mapper/arquivos-part1 /srv  ext4  _netdev,defaults,noatime 0 0
 +</sxh>
 +
 +Agora já podemos reiniciar o nosso servidor para verificar se as configurações estão corretas.
 +<sxh bash>
 +
 +reboot
 +</sxh>
 +
 +Agora vamos listar as partições.
 +<sxh bash>
 +
 +df -Th
 +[...]
 +/dev/mapper/arquivos-part1 ext4    7,2T  198M  7,2T  1% /srv
 +</sxh>
 +
 +Agora vamos testar o multipath para confirmar se ele esta funcionando.
 +
 +vamos baixar a interface eth0
 +<sxh bash>
 +
 +ifdown eth0
 +</sxh>
 +
 +Agora vamos visualizar as sessões do nosso servidor com o storage.
 +<sxh bash>
 +
 +iscsiadm -m session -P 2
 +Target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos
 +  Current Portal: 10.130.0.133:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth0
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.200
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth0
 +    SID: 5
 +    iSCSI Connection State: TRANSPORT WAIT
 +    iSCSI Session State: FAILED
 +    Internal iscsid Session State: REOPEN
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +  Current Portal: 10.130.0.134:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth1
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.201
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth1
 +    SID: 6
 +    iSCSI Connection State: LOGGED IN
 +    iSCSI Session State: LOGGED_IN
 +    Internal iscsid Session State: NO CHANGE
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +
 +</sxh>
 +
 +Como pode ser notado perdemos um caminho para o storage porém vamos criar um diretório de teste em nossa partição que esta no storage.
 +<sxh bash>
 +
 +mkdir /srv/eth0down
 +</sxh>
 +
 +Agora vamos mandar listar os diretórios da partição
 +<sxh bash>
 +
 +ls /srv/
 +eth0down  lost+found
 +</sxh>
 +
 +Como pode ser notado mesmo que perdermos uma das conexões como storage a nossa partição continua funcionando. Agora vamos subir novamente a eth0 e vamos baixar a eth1.
 +
 +Subindo novamente a nossa eth0
 +<sxh bash>
 +
 +ifup eth0
 +</sxh>
 +
 +Agora vamos baixar a eth1
 +<sxh bash>
 +
 +ifdown eth1
 +</sxh>
 +
 +Agora vamos visualizar as sessões do nosso servidor com o storage.
 +<sxh bash>
 +
 +iscsiadm -m session -P 2
 +Target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos
 +  Current Portal: 10.130.0.133:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth0
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.200
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth0
 +    SID: 5
 +    iSCSI Connection State: LOGGED IN
 +    iSCSI Session State: LOGGED_IN
 +    Internal iscsid Session State: NO CHANGE
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +  Current Portal: 10.130.0.134:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth1
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.201
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth1
 +    SID: 6
 +    iSCSI Connection State: TRANSPORT WAIT
 +    iSCSI Session State: FAILED
 +    Internal iscsid Session State: REOPEN
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +
 +</sxh>
 +
 +Como pode ser notado estamos sem o caminho para o storage pela interface eth1, vamos criar um diretório na partição qu está no storage.
 +<sxh bash>
 +
 +mkdir /srv/eth1down
 +</sxh>
 +
 +Agora vamos listar os nossos diretórios.
 +<sxh bash>
 +
 +ls -l /srv/
 +total 24
 +drwxr-xr-x 2 root root  4096 May 30 10:37 eth0down
 +drwxr-xr-x 2 root root  4096 May 30 10:42 eth1down
 +drwx------ 2 root root 16384 May 30 10:22 lost+found
 +</sxh>
 +
 +Como pode ser notado continuamos com a nossa partição up mesmo sem uma interface. Com isso estamos garantindo a disponibilidade da nossa partição com o multipah.
 +
 +Agora vamos subir novamente a eth1 para termos os dois caminhos novamente.
 +<sxh bash>
 +
 +ifup eth1
 +</sxh>
 +
 +Agora vamos visualizar as sessões do nosso servidor com o storage.
 +<sxh bash>
 +
 +iscsiadm -m session -P 2
 +Target: iqn.2012-05.com.equallogic:0-8a0906-427ecad07-910814072f64fb46-arquivos
 +  Current Portal: 10.130.0.133:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth0
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.200
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth0
 +    SID: 5
 +    iSCSI Connection State: TRANSPORT WAIT
 +    iSCSI Session State: FAILED
 +    Internal iscsid Session State: REOPEN
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +  Current Portal: 10.130.0.134:3260,1
 +  Persistent Portal: 10.130.0.130:3260,1
 +    **********
 +    Interface:
 +    **********
 +    Iface Name: eth1
 +    Iface Transport: tcp
 +    Iface Initiatorname: iqn.2012-05.br.com.douglasqsantos:4e67cb9a1aaf
 +    Iface IPaddress: 10.130.0.201
 +    Iface HWaddress: <empty>
 +    Iface Netdev: eth1
 +    SID: 6
 +    iSCSI Connection State: LOGGED IN
 +    iSCSI Session State: LOGGED_IN
 +    Internal iscsid Session State: NO CHANGE
 +    ************************
 +    Negotiated iSCSI params:
 +    ************************
 +    HeaderDigest: None
 +    DataDigest: None
 +    MaxRecvDataSegmentLength: 262144
 +    MaxXmitDataSegmentLength: 65536
 +    FirstBurstLength: 65536
 +    MaxBurstLength: 262144
 +    ImmediateData: Yes
 +    InitialR2T: No
 +    MaxOutstandingR2T: 1
 +
 +</sxh>
 +
 +Como pode ser notado tudo ok.
 +
 +====== Referências ======
 +
 +  - http://www.equallogic.com/WorkArea/DownloadAsset.aspx?id=8727
 +  - http://www.open-iscsi.org/index.html#docs
 +  - http://sources.redhat.com/dm/
 +  - http://www.equallogic.com/uploadedfiles/Resources/Tech_Reports/tr-network-guidelines-TR1017.pdf
 +  - http://www.equallogic.com/resourcecenter/assetview.aspx?id=8727
 +  - http://support.dell.com/support/edocs/software/rhel_mn/rhel5_4/iig_en.pdf