Differences

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

Link to this comparison view

debian_squeeze_equalogic_multipath_pt_br [2017/09/05 12:18] (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
 + ​1 ​     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 ​    ​0 ​  ​24G ​  0% /​lib/​init/​rw
 +udev         ​tmpfs ​    ​24G ​ 212K   ​24G ​  1% /dev
 +tmpfs        tmpfs     ​24G ​    ​0 ​  ​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