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.
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:
Segmentar la SAN en grupos lógicos por ejemplo
Elegir el tipo de rendimiento y RAID en función de los requisitos de cada grupo
Hay que tener en cuenta
Las máquinas virtuales usan dos métodos para acceder a los datos
Como estos switch se van a utilizar específicamente para el tráfico ISCSI cambiamos los siguientes parámetros
Revisar → http://hasanmansur.com/2012/10/14/switch-fabric-setup-for-equalogic-iscsi-powerconnect-switches/
console>enable console#clear config
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
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
interface range ethernet all no lldp transmit no lldp receive
Switch(config)# spanning-tree mode rstp
interface range ethernet all spanning-tree portfast
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
interface range Eternet all no storm-control unicast
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
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
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
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
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
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.
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
para habilitar el iniciador
esxcfg-swiscsi -e
para comprobar que se ha iniciado
esxcfg-swiscsi -q
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
Una vez que hemos configurado el iniciador tenemos que crear en la cabina los distintos volúmenes de datos y asignarlos.
Permitimos el acceso sólo a nuestra red ISCSI
Habilitamos el acceso compartido desde múltiples iniciadores.
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
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)
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