Implementar iSCSI SAN con MPIO (Multipath I/O)

En estos tiempos donde hay servicios críticos para el funcionamiento de los sistemas, donde se ha avanzado mucho en tener los equipos virtualizados, o inclusive los servidores de archivos, entre otros, es crítico proveer tolerancia a fallas

Si revisan el blog encontrarán varias notas referidas a los temas nombrados desde un “Cluster Hyper-V” hasta servidor de archivos con alta disponibilidad
Pero aunque hemos visto la redundancia en cuanto a equipos, hasta ahora a quedado sin ver la parte de conectividad de red

Esta vez vamos a ver cómo podemos implementar tolerancia a fallas para el acceso de un servidor de archivos a una SAN, aunque sería totalmente análogo si fuera un “Cluster” de virtualización, y además mejoras en el rendimiento

La infraestructura que utilizaré se muestra a continuación:

MPIO

Tengan en cuenta que esta demostración corresponde a un ambiente de prueba para mostrar la configuración y funcionamiento, y no se trata de un ambiente productivo, por lo que limitaré algunas configuraciones para no tener un consumo excesivo de recursos de las máquinas virtuales que utilizo

Las máquinas uttilizadas son:

  • DC1.ad.guillermod.com
    Windows Server 2012 R2 Controlador de Dominio
    Dir.IP: 192.168.1.201/24
  • SRV1.ad.guillermod.com.ar
    Windows Server 2012 R2 Servidor miembro del Dominio
    Dir.IP Ethernet0: 192.168.1.101/24
    Dir.IP SAN1: 172.16.0.1/16
    Dir.IP SAN2: 172.17.0.1/16
  • SAN
    Windows Server 2012 R2 En grupo de trabajo
    Dir.IP SAN1: 172.16.0.2/16
    Dir.IP SAN2: 172.17.0.2/16
    Cortafuegos bajo, ya que se trata de una demostración

Una configuración importante que hay que hacer en SRV1 es evitar que se registren en DNS las conexiones de red SAN1 y SAN2, como muestra la siguiente figura. Si ya estuvieran es importante eliminar estas registraciones, dejando solamente la correspondiente a la red del Dominio (Ethernet0)

MPIO-01

MPIO-02

Comenzaré la configuración en SRV1 instalando las funcionalidades “File Server” y “Multipath I/O”. Entiendo que todo el que quiera seguir esta nota no necesitará todas las capturas de pantalla sobre cómo se instalan los componentes, así que mostraré sólo las pantallas de la selección de cada componente

MPIO-03

MPIO-04

A continuación en la máquina SAN, agregaré la funcionalidad “iSCSI Target Server” que análogamente al caso anterior mostraré sólo la pantalla de selección de la funcionalidad

MPIO-05

Continuando en el equipo SAN comenzaré creando un “iSCSI Virtual Disk” siguiendo el asistente como se muestra

MPIO-06

En ambiente productivo debería tener por lo menos un disco físico separado

MPIO-07

El nombre que deseen

MPIO-08

Acá debemos configurar el tamaño que necesitemos, y además, dejar el valor por omisión  del tipo, aunque yo lo he cambiado a “Dynamically expanding”

MPIO-09

MPIO-10

Otro nombre a gusto de cada uno

MPIO-11

Y ahora debemos especificar cuál es el “iSCSI Initiator” que podrá conectarse

MPIO-12

Lo indicaré por dirección IP, ya que la máquina SAN no tiene configurado método de resolución de nombres

MPIO-13

Y debemos repetir este último proceso para agregar la segunda dirección IP de SRV1

MPIO-14

Y seguimos

MPIO-15

MPIO-16

MPIO-17

MPIO-18

 

Es el momento de cambiarnos de máquina a SRV1 y comenzar la configuración de “iSCSI Initiator” como muestran las siguientes pantallas

MPIO-19

MPIO-20

Indicamos el “iSCSI Target”, alcanza con una de ambas direcciones IP, y pulsamos el botón “Quick Connect …”

MPIO-21

MPIO-22

Debería quedar todo así

MPIO-23

 

Continuando en SRV1 vamos a comenzar la configuración de “MPIO”

MPIO-24

En cuanto seleccionamos que deseamos soportar dispositivos iSCSI y tratamos de ingresar uno, el sistema pedirá reiniciar :(

MPIO-25

Luego del reinicio, continuamos en “MPIO”

MPIO-26

Observen que apareció un nuevo “Device”. Si no aparece es porque ha habido un problema en la configuración anterior

MPIO-27

Volvemos para terminar la configuración de “iSCSI Initiator”

MPIO-28

Desconectamos la conexión

MPIO-29

MPIO-30

Y reconectamos

MPIO-31

Debemos hacer que queden marcadas ambas opciones, en cuanto a “Target favorito” y habilitar el “MPIO”, e ingresar por el botón “Advanced”

MPIO-32

Debemos seleccionar en el adaptador “Microsoft iSCSI Initiator”, una de las conexiones de red, y su correspondiente en SAN

MPIO-33

MPIO-34

Y repetir el procedimiento para la otra interfaz de red

MPIO-35

Debe quedar así

MPIO-36

Ahora debemos seleccionar, por facilidad en este caso el botón “Auto Configure”

MPIO-37

Debería reconocer automáticamente el disco que creamos anteriormente

MPIO-38

 

Si vamos al administrador de discos vemos que ahora tenemos un nuevo disco, que debemos poner “Online”, “Initialize”, y crear y dar formato a un volumen

MPIO-39

MPIO-40

En este nuevo disco crearé una carpeta de prueba, que compartiré, conteniendo un archivo que utilizaremos para demostrar el funcionamiento

MPIO-41

MPIO-42

 

Para mantener reducida la cantidad de máquinas utilizadas, haré la demostración desde DC1, accediendo al compartido, y verificando que puedo ver y modificar el archivo de prueba

MPIO-43

MPIO-44

 

Manteniendo siempre el archivo de prueba, simularé una falla de conectividad deshabilitando en en la máquina SAN una de las interfaces de red, puede ser cualquiera de las dos

MPIO-45

Aún con la pérdida de conectividad de una de las redes, el trabajo sobre el archivo desde DC1 no se ve interrumpido para nada

MPIO-46

 

Con esto hemos demostrado la tolerancia a fallas sobre la red que une las máquinas SRV1 y SAN

Para quien quiera profundizar el tema y desee implementar la solución en ambiente productivo, dejo dos enlaces que contienen importante información relativa al tema

 

 

Post a comment or leave a trackback: Trackback URL.

Comentarios

  • Nacho  On 12/08/2015 at 05:59

    Ante todo, enorme como siempre la explicación.
    Una pequeña duda ¿Por qué no dejas que se registren en el Dns las 2 San?

    Gracias

    • Guillermo Delprato  On 12/08/2015 at 07:37

      Hola Nacho ¡gracias por el comentario! me alegro te sirva
      Configuro que no se registren en DNS las interfaces en SAN1 y SAN2 porque no son accesibles desde la red “productiva”
      Si se registraran en el DNS (DC1) cuando lo consulten por srv1.ad.guillermod.com.ar devolvería las tres direcciones IP, pero cualquier máquina sólo podrá conectarse a la de la red “productiva”, las de SAN1 y SAN2 le son inaccesibles

  • Javier  On 17/08/2015 at 06:24

    Muy interesante Guillermo. Otra duda.
    En una configuración en producción como la del ejemplo, si tuviéramos en el mismo rack los servidor SRV1 y SAN:
    -¿no podríamos comunicarlos entre si, directamente con un par de cables cruzados, sin necesidad de switchs, creando en ambas máquinas un Team de tarjetas de red?
    -¿En caso de que sea posible, el rendimiento sería mejor o peor que con esta técnica Multi I/O?
    Gracias por adelantado, Javier

    • Guillermo Delprato  On 17/08/2015 at 07:30

      Hola Javier, es otra opción válida, sobre todo porque en W2012 es muy fácil armar el “team”
      Inclusive el “team” puede proveer mejor rendimiento por supuesto ya que se puede combinar el ancho de banda
      Habría que ver qué es lo que pone el máximo, si el cableado, o ios discos de la SAN
      Mis máquinas para la nota son virtuales, así que no usé nigún Switch :)

  • federicodeluca  On 17/08/2015 at 10:03

    Guillermo, muy buen post como siempre.
    Me topé con un problema hace unos pocos días trabajando en un escenario similar; 2 servidores conectados por fibra con conexión redundante a un storage.
    En el storage cree varias LUNs para utilizarlas con passthrough en las VMs alojadas en los servidores, pero al momento agregar las mismas me topo con que figuran repetidas (si cree una LUN de 200 GB me aparecían 2 de 250 GB).
    Luego de forear un poco me encontré con la feature que detallas en el post “MPIO”. Pero sumado a agregarla tuve que configurar un archivo “DSM” proporcionado por el fabricante del storage.
    Yo lo instalé desde la propia feature, seleccionando únicamente el archvio .inf correspondiente. Tendría que haber instalado todo el paquete proporcionado por el fabricante en su lugar, o realizado de esa forma sería correcto?

    • Guillermo Delprato  On 17/08/2015 at 12:10

      Hola Federico, el sistema es así de “tonto” :) si lo vé por dos lados, asume que son dos aunque sea la misma LUN :)
      Y justamente por eso es que se necesita el MPIO
      El fabricante del “storage” es el que manda siempre, el que viene con Windows es genérico. Para saber si tendrías que haber instalado todo el paquete habría que ver la documentación, por si agrega funcionalidad y si vale la pena

      • federicodeluca  On 17/08/2015 at 14:21

        Bárbaro, lo reviso entonces.
        Muchas gracias por tu tiempo!

      • Guillermo Delprato  On 17/08/2015 at 14:43

        Gracias a vos Federico :)
        “El README es algo que todos leemos después de pelear durante tres días sin lograr que funcione”
        :D

  • Martin  On 14/12/2016 at 10:26

    Hola Guillermo,
    Tus temas son visita obligatoria!!
    Una consulta. El esquema planteado de MPIO ¿es válido para un cluster con storage físico?….Para el caso de un cluster de dos nodos, se tendrían 2 NICs por servidor para la SAN iSCSI, dos segmentos de red, un segmento para cada NIC (por servidor) y un segmento para cada controladora de storage (1 por puerto).
    Pregunta. Al momento de definir la configuración MPIO en cada servidor ¿se deben incorporar todos los puertos iSCSI de las controladoras del storage, A y B, en rigor 4 direcciones IP, dos por cada segmento, para que sean reconocidas las cuatro como target?

    Espero me entiendas. :-)…
    Gracias de antemano

    Saludos,
    Martin

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: