Escenario 3.H: Acceso a dispositivos iSCSI a través de MPIO dende Linux
- Neste escenario 3.H imos configurar un Linux, neste caso uclient, para que acceda ao dispositivo iSCSI da NAS a través de dous interfaces de rede, facendo uso de MPIO.
Introdución
- A modo e resumo, vanse realizar os seguintes pasos:
- Borrar os destinos que se tiñan de antes para poder comezar de cero.
- Instalar o paquete multipath-tools: http://christophe.varoqui.free.fr/
- Ao acceder ao un destino iSCSI por varias rutas distintas, no cliente vanse mostrar tantos discos como rutas haxa ao mesmo destino.
- Multipath-tools vai facilitar un único dispositivo de bloque para un destino accesible por varias rutas (MPIO).
- Permitirá reencamiñar o tráfico co destino cando se perda un dos camiños e recuperarse o antes posible desa perda.
Configuración dos interfaces de rede de uclient
Nodos dispoñibles/activos no cliente (iniciador)
- Revisar en que situación se atopan os nodos/destinos que se viñan usando en uclient.
Descubrir e activar o destino iSCSI
Con iscsiadm -m node --loginall=all activamos os nodos dispoñibles en nodes. Comprobamos que agora as sesións están activas: para o mesmo dispositivo iSCSI temos 2 rutas. En realidade é como se se tiveran 2 destinos; ao facer ls /dev/sd* pódese ver que se teñen 2 discos novos (sdb e sdc) cada un coa súa partición.
Configuración Multipath IO (MPIO)
- A última imaxe anterior non proporciona redundancia pois, non se ten un dispositivo de bloque que nos permita escribir nel e que este se encargue de escribir en sdb ou sdc indistintamente. Se nós escribimos en sdb sempre non estamos conseguindo usar a outra ruta e por tanto non temos balanceo nin redundancia.
- Para iso vén socorrernos o paquete multipath-tools.
Executar multipath -ll, e veremos entre outras cousas: O número de serie que ten o disco (hai que copialo para usar a continuación), información sobre a NAS, o tamaño do disco, o algoritmo de balanceo no uso das rutas que vai usar (round-robin), etc. (Se non aparecese nada, reiníciese a máquina uclient)
Vese que un disco está activo pero o outro non.Creamos/editamos o ficheiro /etc/multipath.conf e pegamos o contido que se pon ao final deste punto, modificando o wwid (World Wide ID) co número de serie obtido na execución da instrución multipath -ll. O alias é o nome co que se vai identificar o novo disco virtual asentado sobre os discos reais (sdb e sdc).
Executamos fdisk -l e vemos que aparece un novo dispositivo /dev/mapper/open-e-test cunha partición chamada /dev/mapper/open-e-test-part1 formatada en NTFS (Que era como estaba o disco2). Este novo dispositivo é o que está asentado sobre sdb e sdc ao mesmo tempo, o mesmo pasa coa partición. Recibe este nome open-e-test... porque é como se identificou no campo alias do ficheiro multipath.conf.
defaults { udev_dir /dev polling_interval 10 selector "round-robin 0" path_grouping_policy multibus getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" prio_callout /bin/true path_checker readsector0 prio const rr_min_io 100 rr_weight priorities failback immediate no_path_retry fail user_friendly_name yes } blacklist { devnode "sda" devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z][[0-9]*]" devnode "^vd[a-z]" devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]" } multipaths { multipath { wwid 33000000031c05120 (Cambiar este número polo obtido con multipath -ll e borrar este comentario) alias open-e-test (quen o desexe pode cambiar o nome do alias que se lle vai dar ao wwid, eliminar tamén este comentario entre paréntese) } }
Realización de probas
- A continuación vanse realizar unas probas de caídas de enlaces ou rutas.
- Para iso vanse desconectar o cable nos adaptadores de rede ou ben na NAS ou ben co cliente (uclient).
- IMPORTANTE: se por calquera motivo se tivera que volver a descubrir ou activar os dispositivos iSCSI, asegurarse de que se teñen conectados todos os cables de rede nos 2 equipos: NAS e uclient.
Creamos no directorio actual un ficheiro de 1 GB no equipo local (uclient) para ser transferido á nas a usando MPIO:
dd if=/dev/zero of=file1G bs=1G count=1
Para mirar o funcionamento do comando dd: http://es.wikipedia.org/wiki/Dd_%28Unix%29grep bytes"
filtrando con grep a saída do comando ifconfig.
O usuario pode estar usando interfaces de rede distintas a eth1 e eth2.
- Se o usuario o desexa pode xogar cos seguintes valores, antes de implantar un sistema en produción.
- Sempre desmontar o disco antes dos cambios e logo reiniciar os servizos e volver a montar o disco.
# Time interval to wait for on connection before sending a ping. node.conn[0].timeo.noop_out_interval = 5 # To specify the time to wait for a Nop-out response before failing # the connection, edit this line. Failing the connection will # cause IO to be failed back to the SCSI layer. If using dm-multipath # this will cause the IO to be failed to the multipath layer. node.conn[0].timeo.noop_out_timeout = 5 # To specify the time to wait for abort response before # failing the operation and trying a logical unit reset edit the line. # The value is in seconds and the default is 15 seconds. node.session.err_timeo.abort_timeout = 15 # To specify the time to wait for a logical unit response # before failing the operation and trying session re-establishment # edit the line. # The value is in seconds and the default is 30 seconds. node.session.err_timeo.lu_reset_timeout = 20
Cambiar o destino iSCSI (MPIO). Varios destinos
- Unha das cousas que se pode desexar é conectarse a outro destino distinto ao que se ten.
- Este novo destino terá o seu wwid distinto do do destino actual.
- Na seguinte exemplo creamos un novo dispositivo iSCSI na NAS: iscsi-sr, descubrímolo (discovery) e conectámolo (loginall) como nos exemplos anteriores.
iscsiadm -m node sessions amosa as sesións activas; vemos que hai dúas rutas ao mesmo destino.
multipath -ll amosa, entre outras cousas, o wwid asociado ao novo dispositivo de almacenamento iSCSI.
Con ls -l /dev/mapper vemos os enlaces aos dispositivos de bloque multicamiño.
Observar que aparece o wwid e non o alias; iso é porque o wwid asociado ano novo dispositivo de almacenamento non coincide co que está no arquivo de configuración /etc/multipath.conf.Cambiamos o wwid no ficheiro de configuración /etc/multipath.conf co wwid do novo dispositivo iSCSI. Incluso cambiamos o alias por un novo, ... simplemente para adaptar o alias aos nosos intereses.
Reiniciamos o servizo multipath: service multipath-tools restart. Vemos que o novo alias xa está como apuntando ao novo dispositivo de bloque multicamiño.
- No caso de querer ter varios destinos distintos iSCSI, todos eles accesibles por MPIO entón hai que achar o wwid de cada un deles e logo configurar o ficheiro /etc/multipath.conf creando unha entrada multipath{} co wwid asociado ao dispositivo iSCSI e o alias que desexemos.
Documentación
- A meirande parte da documentación usada para elaborar este apartado é do seguinte enlace e adaptada ás nosas circunstancias:
http://kb.open-e.com/Setup-a-Ubuntu-Server-with-iSCSI-and-MPIO-to-connect-to-an-iSCSI-Tartget-in-DSS-V7_1653.html
-- Antonio de Andrés Lema e Carlos Carrión Álvarez -- (2014).