En este artículo mostramos como realizar la reparación de un repositorio iSCSI en XenServer sobre Ethernet, este error podemos haberlo encontrado después de un reboot de algún servidor que por alguna cuestión el Storage no ha liberado correctamente la conexión, Quedando el Storage Repository "enganchado".

La razón de este problema aparece cuando el switch no tiene una correcta configuración. Otra causa es que el servicio está disponible xapi antes de que el software iSCSI (open-iscsi) ha completado el servicio.

La forma de solucionar este problema, puede ser resuelta de la siguiente forma:

 Lo primero que tendremos que hacer es ajustar los parámetros de la interfaz física. Para obtener los mejores resultados, realizaremoas las siguientes tareas de forma totalmente ordenada.

1. Eliminar los posibles problemas con el switch y tarjeta de red (NIC) en la configuración de auto-negociación de la configuración de la interfaz.

2. Ajustaremos el puerto a la máxima velocidad posible y en full duplex.

Además, los switches se soportan el Protocolo Spanning Tree (STP) podría ser parte del problema, por defecto, configurar todos los puertos de un modo que permanecen en un estado de bloqueo por un periodo de tiempo de espera para el Bridge de datos Unidades de Protocolo (BPDUs) para evitar bucles de puente.

Este comportamiento es perjudicial  y deben deshabilitarse. Diferentes vendedores se refieren a estos puertos con nombres diferentes, pero generalmente los puertos necesitan ser configurados para PortFast (Cisco) o como un Edge Port (HP ProCurve y Juniper). Para hacer los cambios necesarios, consultad la guía de configuración para el switch que estéis manejando.

3. Desde el XenServer host, configurar su XenServer para apagar auto-negociación, para fijar a full dúplex, y la velocidad a 1000 utilizando la interfaz de línea de comandos (CLI).

El modo de hacer esto, es realizando los siguientes pasos:

  • Identificar el UUID del interface correspondiente al Storage, mediante el comando:  xe pif-list
  • Con el UUID, realizar los sigueintes comandos:
    • xe pif-param-set uuid=<UUID of PIF> other-config:ethtool-autoneg=”off”
      xe pif-param-set uuid=<UUID of PIF> other-config:ethtool-speed=1000
      xe pif-param-set uuid=<UUID of PIF> other-config:ethtool-duplex=”full”

4. Reiniciar el servicio XAPI, porqué es el que realiza el control de Networking de XenServer, y alternativamente reiniciar el servidor XenServer. Si se dispone de un pool de servidores, habrá que realizar este paso en todos los servidores del Pool.

5. Si por alguna razón el Environment externo no es la causa o una de las principales causas, pero es un factor que contribuye, es posible que tengamos que configurar el servicio open-iscsi para iniciar en el nivel 3 en lugar de esperar a ser llamado. Para configurar el servicio open-iscsi para iniciar en el nivel de ejecución 3, utilizaremos el siguiente comando:

chkconfig - nivel 3 de open-iscsi

6. Si todavia tenemos el iSCSI SR "desconectado" en XenCenter, modificaremos de forma local en cada XenServer del pool, modificando el archivo / etc / rc.d / rc.local , añadiendo la siguiente comando de open-iscsi al final del archivo:

iscsiadm-m-L nodo todos

Las configuraciones locales generalmente no se incluyen cuando se actualiza un XenServer de una versión a otra, por lo tanto, deberíamos copiar este archivo a un lugar seguro fuera de XenServer por si es necesario aplicarlo en un futuro.