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):
- Listar los port groups de Service Console actuales: esxcfg-vswitch -l este comando devolverá la configuración actual de vSwitches, algo como:
- 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: - 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:
- Borra la interfaz virtual con: esxcfg-vswif -d vswif0
- 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
- 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.
- Este paso es bastante importante si quieres ahorrarte un montón de dolores de cabeza. Modifica la entrada correspondiente en el fichero /etc/hosts
- 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.
Switch Name | Num Ports | Used Ports | Configured Ports | MTU | Uplinks | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
vSwitch0 | 64 | 13 | 64 | 1500 | vmnic0,vmnic2 | ||||||||||||
|
Switch Name | Num Ports | Used Ports | Configured Ports | MTU | Uplinks | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
vSwitch0 | 64 | 13 | 64 | 1500 | vmnic1,vmnic3 | ||||||||
|
de forma que puedas buscar el nombre del port group de tu Service Console, en nuestro ejemplo el que está en negrilla.
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 |
- 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:
- A continuación , vamos a borrar la vmknic afectada (la que está en negrilla en nuestro ejemplo). También necesitaremos el port group asociado: esxcfg-vmknic -d -p VMkernel vmk0
- 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: esxcfg-vmknic -a -p VMkernel -i yyy.yyy.yyy.yyy -n mmm.mmm.mmm.mmm vmk0
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 |
- 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:
- http://vmwaretips.com/wp/2008/09/12/changing-service-console-ip-address-in-esx-35/
- http://www.yellow-bricks.com/2008/09/29/storage-vmotion-fails-after-service-console-ip-change/
- http://www.yellow-bricks.com/2008/06/04/changing-the-ip-address-of-an-esx-host-and-ha/
Espero que este post pueda ayudar a alguien.