Como copiar archivos entre ESXs por linea de comandos

15 de enero de 2010 por
Wetcom admin

Hace unos dias un cliente queria utilizar la funcionalidad de “copy & paste” de archivos entre datastores. Hasta ahi no hay problema, sabemos que si estamos conectados a un vCenter con visualizacion sobre dos datastores, se pueden browsear estos datastores, hacer copy y luego paste, generandose una tarea de copia.

El verdadero problema es cuando tenemos dos esx que se ven entre ellos a nivel service console, pero no comparten la visualizacion sobre los mismos datastores.

En esos casos, nada mejor que ir a las herramientas mas simples que nos da la distribucion de Linux sobre la que esta implementado la Service Console de los ESX!

Utilizando el scp (secure copy), que es la herramienta de linux para poder hacer copy sobre protocolo ssh, y teniendo el recaudo de abrir los puertos necesarios y de tener los permisos adecuados, se podran pasar archivos de un esx a otro, sin importar si se trata del storage local, storage compartido, o storage que cada esx ve independientemente.

Para esto vamos a pensar en un ESX “origen”, y un ESX “destino”, sobre los cuales deberan estar logueados con super user (root)

Para loguearse con super user:

– Utilizar algun cliente ssh (como ser putty) o directamente la herramienta ssh para los que accedan desde una consola linux.

– Conectarse con un usuario local del ESX que no sea root (recuerden que por defecto no esta habilitado el acceso directo por ssh mediante la cuenta root).

– Una vez dentro, ejecutar la herramienta “super user” para escalar privilegios, la herramienta solicitara el password de la cuenta de root.

– Una vez que esten dentro como super user en el host de origen y de destino, ejecutar el resto de los pasos.
Podran validar que esten como super user, si su prompt tiene como ultimo caractér un “#”, lo que simboliza que se tienen privilegios de super user.

– En el host Origen:

# esxcfg-firewall -o 22,tcp,out,ssh
Esto abrira (-o) el puerto 22, correspondiente al servicio ssh, para el protocolo tcp, en sentido saliente (out)

– En el host Destino:

#esxcfg-firewall -o 22,tcp,in,ssh
Esto abrirá (-o) el puerto 22, correspondiente al servicio de ssh, para el protocolo tcp, en sentido entrante (in)

Hasta aqui, solo estaran abriendo un puerto puntual, que luego cerraremos al terminar el proceso de copia. Tengan en cuenta que no es una practica recomendada bajar la totalidad del firewall para hacer la operatoria. Si conocemos el puerto que necesitamos abrir, es un despropósito y un gran riesgo bajar la totalidad del firewall.

– En el host Origen:
# scp * vmware@destino:/home/bla
En este ejemplo del comando, se realiza la copia de todo archivo del directorio donde este parado, y se lo copia a /home/bla del equipo destino, vmware@ significa que en el equipo destino se ingresara con el usuario “vmware”
Tengan en cuenta que por defecto no se pueden hacer conexiones directamente usando root. Es por eso que en el ejemplo, la conexion se realiza con el usuario vmware, que ha sido creado durante el momento de la instalacion del ESX.

El proceso indicara el progreso de la accion de copia.

Una vez terminado se cierran los puertos que habiamos abierto tanto en origen como en destino de la siguiente manera:

– En el host Origen:
#esxcfg-firewall -c 22,tcp,out,ssh

– En el host Destino
#esxcfg-firewall -c 22,tcp,in,ssh

screenshot_062

Eso es todo! Puede que los salve de un apuro…
Saludos,


Wetcom Group
Leandro Santoro

Technology Consultant

Wetcom Group

T:+54 11 5254 7764 Ext.8446

C:+54 911 3112 2662

[email protected]