viernes, 30 de abril de 2010

Despiste 10: Cambiar la IP de la Service Console

Hace poco me han pedido cambiar un host ESX 3.5 de nuestra VLAN de producción a otra VLAN. Este cambio implica un cambio de la direcciones IP de los portgroups de la Service Console y vmKernel. Inicialmente, esta taréa podría ser vista como una tarea simple, hacer login en el host ESX físicamente y cambiar la IP, pero este cambio tiene más implicaciones ocultas que podrían llevarnos a problemas serios como perder las capacidades de HA o vMotion en el host afectado.

Cambiar la IP de la Service Console es bastante simple y el procedimiento se parece a (basado en la información basada en este gran post):

  1. Listar los port groups de Service Console actuales:
  2. esxcfg-vswitch -l este comando devolverá la configuración actual de vSwitches, algo como:
    Switch Name
    Num Ports
    Used Ports
    Configured Ports
    MTU
    Uplinks
    vSwitch0
    64
    13
    64
    1500
    vmnic0,vmnic2

    PortGroup Name
    VLAN ID
    Used Ports
    Uplinks
    VM Network
    0
    8
    vmnic0,vmnic2
    Service Console
    0
    1
    vmnic0,vmnic2
    Switch Name
    Num Ports
    Used Ports
    Configured Ports
    MTU
    Uplinks
    vSwitch0
    64
    13
    64
    1500
    vmnic1,vmnic3

    PortGroup Name
    VLAN ID
    Used Ports
    Uplinks
    VMkernel
    0
    1
    vmnic1,vmnic3
    de forma que puedas buscar el nombre del port group de tu Service Console, en nuestro ejemplo el que está en negrilla.
  3. Buscamos la interfazvirtual asociada con ese port group, que tiene que tener un nombre parecido a vswif, donde n es el número de la interfaz virtual, y será devuelto por el comando esxcfg-vswif -l, además de toda la configuración IP asociada con cada interfaz virtual:
  4. Name
    Port Group
    IP Address
    Netmask
    Broadcast
    Enabled
    DHCP
    vswif0
    Service Console
    xxx.xxx.xxx.xxx
    nnn.nnn.nnn.nnn
    bbb.bbb.bbb.bbb
    true
    false
  5. Una vez que hemos localizado la interfaz virtual asociada a nuestra Service Console, la única forma de cambiar la configuración IP es borrar esa interfaz virtual y crear una nueva interfaz virtual con los parámetros deseados. Los pasos para realizar ese procedimiento son:


    1. Borra la interfaz virtual con: esxcfg-vswif -d vswif0
    2. Crea una nueva interfaz virtual y asociala con nuestro port group de la service console llamado Service Console:
      esxcfg-vswif -a -p "Service Console" -i <new IP Address> -n <netmask> vswif0
  6. También deberíamos modificar la puerta de enlace por defecto asociada con la interfaz virtual modificando /etc/sysconfig/network-scripts/ifcfg-vswif0 y añadiendo GATEWAY=ggg.ggg.ggg.ggg en el fichero.
  7. Este paso es bastante importante si quieres ahorrarte un montón de dolores de cabeza. Modifica la entrada correspondiente en el fichero /etc/hosts
  8. En este punto tienes dos opciones, reiniciar el host ESX o deshabilitar y habilitar l interfaz vswif. Si eliges deshabilitar y habilitar la interfaz vswif deberías realizar el siguiente procedimiento:


    • Para deshabilitar la interfaz vswif: esxcfg-vswif -s vswif0
    • Para habilitar la interfaz vswif: esxcfg-vswif -e vswif0

    Una vez que has realizado todos estos pasos, simplemente busca el ESX afectado en el VirtualCenter, Desconéctalo y vuelve a conectarlo. Este proceso desinstalará el agente vpxa isntalado en el host ESX y lo volverá a instalar durante el proceso de reconexión.

    Si después de todo esto aún sigues tienendo problemas de conexión/vMotion/HA comprueba la entrada del host ESX en la base de datos de VirtualCenter. Duncan Epping tiene un post genial en Yellow-Bricks que registro debe ser comprobado y modificado: http://www.yellow-bricks.com/2008/09/29/storage-vmotion-fails-after-service-console-ip-change/

    Es el momento de cambiar la dirección IP del VMkernel. Este cambio puede ser realizado via vClient, o puede ser hecho directamente desde la Service Console. Cambiar la dirección IP del VMkernel por medio del vClient es bastante fácil, así que me centraré en como hacer este cambio manualmente.

    Como vimos con el método para cambiar la IP de la Service Console, este procedimiento depende de borrar la vmknic afectada y crear una nueva.

  1. De nuevo, el primer paso recomendado es listar todas las vmknics disponibles en tu host ESX. Esto se puede hacer utilizando el comando esxcfg-vmknic -l que producirá una salida parecida a esta:
  2. Interface
    Port Group
    IP Address
    Netmask
    Broadcast
    MAC Address
    MTU
    TSO MSS
    Enabled
    vmk0
    VMkernel
    xxx.xxx.xxx.xxx
    nnn.nnn.nnn.nnn
    bbb.bbb.bbb.bbb
    00:50:56:aa:bb:cc
    1500
    40960
    true
  3. A continuación , vamos a borrar la vmknic afectada (la que está en negrilla en nuestro ejemplo). También necesitaremos el port group asociado:
  4. esxcfg-vmknic -d -p VMkernel vmk0
  5. Finalmente, creamos una nueva vmknic con la configuración deseada y la asociamos con el port group correcto. Recuerda que este procedimiento generará una nueva dirección MAC:
  6. esxcfg-vmknic -a -p VMkernel -i yyy.yyy.yyy.yyy -n mmm.mmm.mmm.mmm vmk0
      Ten en cuenta que estos procedimiento son válidos solo para Standard vSwitches, y que es necesaria una ligera modificación para adaptarlo a los Distributed vSwitches disponibles en ESX 4. Pero esa es otra historia.
      He basado este post en mi experiencia personal y en la información recogida de:
    Espero que este post pueda ayudar a alguien.

    No hay comentarios:

    Publicar un comentario