Instalación cabina iscsi Dell Equallogic 6010XV con Vmware Vsphere

La cabina iscsi está conectada a dos switch powerconnect 8024F dedicados en exclusiva para el tráfico ISCSI, conectados estos a su vez a dos servidores vsphere .

La configuración que aparece en estas páginas es sólo para Vsphere y no es compatible con la versión ESX 3.5, ya que con la Vsphere se ha reescrito por completo el driver para ISCSI para conseguir mejor rendimiento y multipath.

Consideraciones Generales

A la hora de planificar una instalación ISCSI lo primero que tenemos que hacer es decidir como vamos a dividir el espacio de la SAN:

Dos opciones:

  1. Un sólo volumen
  2. Varios volúmenes

Un sólo volumen

  • Tener todo el espacio en un sólo volumen nos permite más flexibilidad a la hora de redimensionar, crear o hacer snapshots de máquinas virtuales
  • Menor complejidad de administración

Varios volúmenes

  • Tener distintos tipos de Raid para distintas máquinas
  • Más flexibilidad (Las políticas de multiplath y almacenamiento son por LUN)

Grupos

Segmentar la SAN en grupos lógicos por ejemplo

  • Grupo A: pro
  • Grupo B: pre
  • GRUPO c: plantillas
  • GRUPO D: Backup

Requisitos de cada grupo

Elegir el tipo de rendimiento y RAID en función de los requisitos de cada grupo

Conexión de la cabina con los switch

La primera es una conexión simple, la segunda es con Multiplath

LUN

Hay que tener en cuenta

  • Cada LUN debe tener el nivel de RAID apropiado a las características de la máquina virtual.
  • Una LUN sólo debe contener un volumen VMFS
  • Si múltiples máquinas virtuales acceden a la misma LUN usar distintas prioridades para cada máquina

Métodos de acceso a los datos en la SAN

Las máquinas virtuales usan dos métodos para acceder a los datos

  1. VMFS Las operaciones sobre el VMFS son trasladadas por el ISCSI
  2. RDM Da acceso al Sistema Operativo invitado al dispositivo Raw

Configuración de los switch Powerconnect

Como estos switch se van a utilizar específicamente para el tráfico ISCSI cambiamos los siguientes parámetros

  • Habilitar Flow Control en todas las bocas
  • Habilitar Jumbo frames en todas las bocas
  • PortFast
  • No usar Sapnning-Tree (STP) usar rstp
  • Deshabilitar LLDP (Link Layer Discovery Protocol)

Revisar → http://hasanmansur.com/2012/10/14/switch-fabric-setup-for-equalogic-iscsi-powerconnect-switches/

Si ya tenemos una configuración en el swicth y queremos empezar desde cero hay que hacer lo siguiente
console>enable
console#clear config

Switches and VLAN1

La recomendación es crear una nueva VLAN y poner todos los puertos usados para el ISCSI en dicha VLAN. En este caso como los switch están dedicados en exclusiva para el ISCSI utilizaremos la VLAN por defecto

Habilitar Jumbo Frame

interface range ethernet all
mtu 9216
exit

En los agregados configurarlos también para soportar Jumbo Frames

Switch1>enable
Switch1#configure
|Switch1(config)#interface port-channel 1
Switch1(config-if-ch1)# mtu 9216
En los switch dejar el mtu a 9216 y en los servidores esx ponerlos a 9000 por las cabeceras que se añaden a los paquetes

deshabilita LLDP

interface range ethernet all
no lldp transmit
no lldp receive

Habilitar el RSTP

Switch(config)# spanning-tree mode rstp

Habilitar el portfast

interface range ethernet all
spanning-tree portfast

ISCSI

Como el único tráfico que soportan estos switch es el ISCSI podemos quitar los parámetros para priorizar el tráfico ISCSI ya que estan dedicados en exclusiva para el tráfico ISCSI

console(config)# no iscsi enable
console(config)# no iscsi target port 860
console(config)# no iscsi target port 3260

STORM CONTROL

interface range Eternet all
no storm-control unicast

Ejemplo configuración Switch Powerconnect

console> enable
console# configure
console(config)# spanning-tree mode rstp
console(config)# flowcontrol
This operation may take a few minutes.
Management interfaces will not be available during this time.

Are you sure you want to continue? (y/n) y 

console(config)# interface range ethernet all
console(config-if)# no lldp transmit
console(config-if)# no lldp receive
console(config-if)# mtu 9216
console(config-if)# spanning-tree portfast
console(config-if)#no storm-control unicast
console(config-if)# exit
console (config)# exit
console# copy r s

En nuestro caso como tenemos los dos switch conectados entre si por las dos últimas bocas necesitamos además crear un LAG con dichas bocas.

console# configure
console(config-if)# interface range ethernet 1/xg20-1/xg24 seleccionamos los últimos puertos para interconectar los switch
console(config-if)# channel-group 1 mode auto (añade estos puertos al LGA1, y usamos el protocolo LACP para su configuración)
console(config-if)# int range port-channel 1
console(config-if)# no spanning-tree disable
Estas líneas han de ser ejecutadas en los dos switch

Configuración de los ESX con multipath

Vamos a utilizar un ejemplo, supongamos que tenemos un servidor ESX con cuatro interfaces, dos switch dedicados para el iscsi y una SAN con doble interface

  • dos interfaces la ponemos en team y los utilizamos para la consola y el VM Network
  • los otras dos los utilizamos para el iscsi
En esta configuración vamos a habilitar jumbo frames, para que esto sea efectivo la configuración de los jumbo frames tiene que ser habilitada en todos los puntos del camino, es decir, end-to-end.

1.- Habilitamos Jumbo Frames en los vSwitch

Creamos un vSwitch para ello desde la consola o por ssh ejecutamos

esxcfg-vswitch -a vSwitch1

Habilitamos Jumbo Frames

[root@ord1309 ~]# esxcfg-vswitch -m 9000 vSwitch1

Comprobamos que está habilitado

[root@ord1309 ~]# esxcfg-vswitch -l
Switch Name    Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch0       32          6           32                1500    vmnic0,vmnic1

  PortGroup Name      VLAN ID  Used Ports  Uplinks
  VM Network          0        2           vmnic0,vmnic1
  Service Console     0        1           vmnic0,vmnic1

Switch Name    Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch1       64          3           64                9000    vmnic2

  PortGroup Name      VLAN ID  Used Ports  Uplinks
  iscsi1              0        1           vmnic2

Switch Name    Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch2       64          3           64                9000    vmnic3

  PortGroup Name      VLAN ID  Used Ports  Uplinks
  iscsi2              0        1           vmnic3

También podemos hacer

vmkping -s 9000 dirección_ip

para comprobar que funciona

2.- Añadimos los puertos ISCSI VMkernel

Según Vmware en entornos a 10 GB con dos tarjetas hay que crear 3 puertos VMkernel por cada tarjeta física, lo que hace un total de 6 sesiones a la SAN La recomendación ha cambiado, ahora se recomienda un VMkernel por cada tarjeta física

esxcfg-vswitch -A ISCSI1 vSwitch1
esxcfg-vmknic -a -i 172.17.1.2 -n 255.255.255.0 -m 9000 ISCSI1
esxcfg-vswitch -A ISCSI2 vSwitch1                             
esxcfg-vmknic -a -i 172.17.1.3 -n 255.255.255.0 -m 9000 ISCSI2
esxcfg-vswitch -A ISCSI3 vSwitch1                             
esxcfg-vmknic -a -i 172.17.1.4 -n 255.255.255.0 -m 9000 ISCSI3
esxcfg-vswitch -A ISCSI4 vSwitch1                             
esxcfg-vmknic -a -i 172.17.1.5 -n 255.255.255.0 -m 9000 ISCSI4
esxcfg-vswitch -A ISCSI5 vSwitch1                             
esxcfg-vmknic -a -i 172.17.1.6 -n 255.255.255.0 -m 9000 ISCSI5
esxcfg-vswitch -A ISCSI6 vSwitch1                             
esxcfg-vmknic -a -i 172.17.1.7 -n 255.255.255.0 -m 9000 ISCSI6

3.- Asignar las tarjetas de red

Para listar las tarjetas del sistema ejecutar

esxcfg-nics -l

El resultado será algo así

[root@ord1309 ~]# esxcfg-nics -l
Name    PCI      Driver      Link Speed     Duplex MAC Address       MTU    Description
vmnic0  03:00.00 bnx2        Up   1000Mbps  Full   00:22:19:91:39:83 1500   Broadcom Corporation Broadcom NetXtreme II BCM5708 1000Base-T
vmnic1  07:00.00 bnx2        Down 0Mbps     Half   00:22:19:91:39:85 1500   Broadcom Corporation Broadcom NetXtreme II BCM5708 1000Base-T
vmnic2  0c:00.00 ixgbe       Up   10000Mbps Full   00:1b:21:51:34:7b 9000   Intel Corporation 82598EB 10 Gigabit AT Dual Port Network Connection
vmnic3  0c:00.01 ixgbe       Up   10000Mbps Full   00:1b:21:51:34:7a 9000   Intel Corporation 82598EB 10 Gigabit AT Dual Port Network Connection

Asignamos las tarjetas al vSwitch

esxcfg-vswitch -L vmnic2 vSwitch1
esxcfg-vswitch -L vmnic3 vSwitch1

Para verificar que se han asignado correctamente

esxcfg-vswitch -l

el resultado será parecido a

Switch Name    Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch0       32          6           32                1500    vmnic0,vmnic1

  PortGroup Name      VLAN ID  Used Ports  Uplinks
  VM Network          0        2           vmnic0,vmnic1
  Service Console     0        1           vmnic0,vmnic1

Switch Name    Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch1       64          9           64                9000    vmnic2,vmnic3

  PortGroup Name      VLAN ID  Used Ports  Uplinks
  ISCSI6              0        1           vmnic2,vmnic3
  ISCSI5              0        1           vmnic2,vmnic3
  ISCSI4              0        1           vmnic2,vmnic3
  ISCSI3              0        1           vmnic2,vmnic3
  ISCSI2              0        1           vmnic2,vmnic3
  ISCSI1              0        1           vmnic2,vmnic3

4.- Asociar los puertos VMkernel con los Adaptadores Físicos

Necesitamos enlazar cada VMkernel a una tarjeta de red. Esto se neecsita para sacar provecho de las nuevas características como Round Robin MPIO etc.

Antes vimos que cada puerto VMkernel tiene dos vmnics en cada uplink. Esto hay que cambiarlo para que quede una sola vmnic este enlazada y hacer nosotros el balanceo de carga entre todos los puerto VMkernel.

Para usar los iniciadosres ISCSI es obligatorio dejar una sóla tarjeta como activa, poniendo el resto (en caso de tener varias), como unavailable. Ojo tampoco ponerla como standby
  PortGroup Name      VLAN ID  Used Ports  Uplinks
  ISCSI6              0        1           vmnic2,vmnic3
  ISCSI5              0        1           vmnic2,vmnic3
  ISCSI4              0        1           vmnic2,vmnic3
  ISCSI3              0        1           vmnic2,vmnic3
  ISCSI2              0        1           vmnic2,vmnic3
  ISCSI1              0        1           vmnic2,vmnic3

Para quitar una de las vmnic ejecutamos lo siguiente

esxcfg-vswitch -p ISCSI1 -N vmnic3 vSwitch1

Seguimos el mismo proceso para los restantes VMkernel

[root@ord1309 ~]# esxcfg-vswitch -p ISCSI2 -N vmnic3 vSwitch1
[root@ord1309 ~]# esxcfg-vswitch -p ISCSI3 -N vmnic3 vSwitch1
[root@ord1309 ~]# esxcfg-vswitch -p ISCSI4 -N vmnic2 vSwitch1
[root@ord1309 ~]# esxcfg-vswitch -p ISCSI5 -N vmnic2 vSwitch1
[root@ord1309 ~]# esxcfg-vswitch -p ISCSI6 -N vmnic2 vSwitch1

Verificamos que sólo tenemos una tarjeta por uplink

Switch Name    Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch1       64          9           64                9000    vmnic2,vmnic3

  PortGroup Name      VLAN ID  Used Ports  Uplinks
  ISCSI6              0        1           vmnic3
  ISCSI5              0        1           vmnic3
  ISCSI4              0        1           vmnic3
  ISCSI3              0        1           vmnic2
  ISCSI2              0        1           vmnic2
  ISCSI1              0        1           vmnic2
Es importante darse cuenta de que mientras en la sección de uplink sólo hay una tarjeta asignada a cada ISCSI VMkernel, todos ellos se distribuyen uniformemente entre todas las tarjetas.

5.- Habilitar el iniciador ISCSI de VMware

para habilitar el iniciador

esxcfg-swiscsi -e

para comprobar que se ha iniciado

esxcfg-swiscsi -q

6.- Enlazar los puertos VMkernel al iniciador ISCSI

para que haga un escaneo para descubrir todos los adaptadores, lo podemos hacer desde el vCenter Configuration→Storage Adapters pulsar en la opción de Rescan… o bien ejecutar

esxcfg-scsidevs -a

El resultado será parecido a

vmhba33 iscsi_vmk         link-n/a  iqn.1998-01.com.vmware:ord1309-49c33378 () Software iSCSI

La siguiente información que necesitamos es el vmk# de cada puerto VMkernel. Para verlo desde la consola gráfica hay que ir Configuration→Networking. Desde el vSwitch podemos ver cada VMkernel y el vmk# asociado Desde la cosnola podemos ejecutar

esxcfg-vmknic -l
[root@ord1309 ~]# esxcfg-vmknic -l
Interface  Port Group/DVPort   IP Family IP Address                              Netmask         Broadcast       MAC Address       MTU     TSO MSS   Enabled Type
vmk0       ISCSI1              IPv4      172.17.1.2                              255.255.255.0   172.17.1.255    00:50:56:75:e9:39 9000    65535     true    STATIC
vmk1       ISCSI2              IPv4      172.17.1.3                              255.255.255.0   172.17.1.255    00:50:56:75:12:6d 9000    65535     true    STATIC
vmk2       ISCSI3              IPv4      172.17.1.4                              255.255.255.0   172.17.1.255    00:50:56:75:10:b2 9000    65535     true    STATIC
vmk3       ISCSI4              IPv4      172.17.1.5                              255.255.255.0   172.17.1.255    00:50:56:75:1a:6c 9000    65535     true    STATIC
vmk4       ISCSI5              IPv4      172.17.1.6                              255.255.255.0   172.17.1.255    00:50:56:75:d0:94 9000    65535     true    STATIC
vmk5       ISCSI6              IPv4      172.17.1.7                              255.255.255.0   172.17.1.255    00:50:56:78:79:54 9000    65535     true    STATIC

Ahora que sabemos la vnhba# y el vmk# podemos enlazar cada puerto VMkernel con el iniciador ISCSI

esxcli swiscsi nic add -n vmk0 -d vmhba33
esxcli swiscsi nic add -n vmk1 -d vmhba33
esxcli swiscsi nic add -n vmk2 -d vmhba33
esxcli swiscsi nic add -n vmk3 -d vmhba33
esxcli swiscsi nic add -n vmk4 -d vmhba33
esxcli swiscsi nic add -n vmk5 -d vmhba33

Para verificar

esxcli swiscsi nic list -d vmhba33

7.- Creamos los volúmenes en la cabina Equallogic

Una vez que hemos configurado el iniciador tenemos que crear en la cabina los distintos volúmenes de datos y asignarlos.

A la hora de configurar el espacio para los snapshots de la cabina basta con reservar un 20 o 30%

Permitimos el acceso sólo a nuestra red ISCSI

Habilitamos el acceso compartido desde múltiples iniciadores.

Esta opción es necesaria para habilitar todas la capacidades avanzadas del Vsphere con el almacenamiento compartido

8.- Enlazamos los volúmenes al Vsphere

Una vez creados los volúmenes etc, hay que ir al vCenter Configuration→ Storage Adapter → hacer click en Properties Click en la pestaña Dynamic Discovery →Añadir

En la venta que se abre poner la dirección IP de la SAN y pulsar en ok

9.- Activamos el Round Robin

Al activar el Round Robin nos permite hacer uso de las características avanzadas de las cabinas, permitiendo mayores anchos de banda.

Para habilitar el Multiplathing Round Robin en un volumen, hay que ir al vcenter→ Configure→ Storage. clic derecho y seleccionar Manage Paths. Desplegar la ventana y seleccionar Round Robin (VMware)

Esto hay que hacerlo para cada volumen nuevo o existente

Para poner por defecto Round Robin y utilizar por defecto el NMP de equallogic a la hora de crear nuevos volúmenes ejecutar:

esxcli nmp satp setdefaultpsp -–satp VMW_SATP_DEFAULT_AA -–psp VMW_PSP_RR
esxcli nmp satp setdefaultpsp -–satp VMW_SATP_EQL -–psp VMW_PSP_RR
esxcli corestorage claimrule load
esxcli corestorage claimrule run

Referencias