Las formas más eficaces de transferir archivos de una máquina virtual a un host

Las máquinas virtuales ofrecen muchas ventajas, como la flexibilidad, el uso racional de los recursos y la ejecución en entornos aislados. Una tarea habitual en los entornos virtuales es la copia de archivos entre máquinas virtuales y hosts. Lea para aprender cómo copiar archivos a una máquina virtual desde un host, cómo transferir archivos de una máquina virtual a un host y cómo copiar archivos entre máquinas virtuales.

NAKIVO for VMware vSphere Backup

NAKIVO for VMware vSphere Backup

Complete data protection for VMware vSphere VMs and instant recovery options. Secure backup targets onsite, offsite and in the cloud. Anti-ransomware features.

Los componentes de nuestro medio ambiente

Empecemos por repasar la terminología:

  • Un host es una máquina física en la que está instalado un hipervisor.
  • Un hipervisor es un software de virtualización para ejecutar máquinas virtuales en el host. Existen dos tipos de hipervisores:
    • Tipo 1: Utilización de un servidor ESXi, que es la máquina anfitriona
    • Tipo 2: Utilizando VMware Workstation, y en este caso Windows y Linux pueden ser los SO de la máquina anfitriona.

En este tutorial, el entorno utilizado para explicar cómo transferir archivos de la máquina virtual al host está formado por los siguientes componentes:

  • Host ESXi 1: 192.168.101.201
  • Host ESXi 2: 192.168.101.202
  • Máquina Ubuntu Linux: 192.168.101.210
  • Host Windows con VMware Workstation instalado
  • Red: 192.168.101.0/24
  • ESXi VMs y VMware Workstation VMs conectadas a la misma red

Utilizamos las siguientes tecnologías para copiar archivos entre máquinas virtuales y hosts:

  • Carpetas compartidas
  • Portapapeles compartido y arrastrar & Drop
  • Dispositivo de almacenamiento USB
  • PowerCLI
  • SSH y SCP
  • Compartir NFS
  • Descargar/cargar archivos en una interfaz web de VMware
  • Archivos ISO

Uso de carpetas compartidas para transferir un archivo VM al host

Carpetas Compartidas es una función conveniente en VMware Workstation para transferir archivos entre un host físico Windows o Linux en el cual VMware Workstation está instalado y VMs corriendo en VMware Workstation. Para macOS, VMware Fusion es el equivalente de VMware Workstation y admite funciones similares.

Ahora vamos a repasar los pasos para transferir archivos de la VM al host y viceversa utilizando las carpetas compartidas de VMware.

Nota: Para que esta función funcione, VMware Tools debe estar instalado en una máquina virtual. Los datos entre un host y una VM se transfieren mediante la interacción a través de VMware Tools entre el host y el SO invitado sin utilizar una red.

  1. Seleccione la máquina virtual para la que desea configurar el recurso compartido VMware. Seleccionamos una de nuestras máquinas virtuales Windows.
  2. Haga clic en VM > Settings (Editar ajustes de máquina virtual) en la GUI de VMware Workstation.
  3. En la ventana Ajustes de la máquina virtual, seleccione la pestaña Opciones y haga clic en Carpetas compartidas. En la sección Compartir carpetas , seleccione Siempre activado. Opcionalmente, puede asignar una carpeta compartida como unidad de red en invitados de Windows para mayor comodidad seleccionando la casilla de verificación.
  4. Haga clic en Añadir para seleccionar una carpeta que se utilizará como carpeta compartida.

    VMware sharing folder - cómo habilitar las carpetas compartidas en VMware Workstation

  5. Introduzca la ruta a la carpeta que desea compartir en el host o haga clic en Examinar y seleccione la carpeta necesaria. Seleccionamos C:\temp\share-VM

    Introduzca un nombre para la carpeta compartida, por ejemplo, share-VM

    Haga clic en Siguiente.

    VMware recurso compartido - configuración de carpetas compartidas en VMware estación de trabajo

  6. Seleccione Habilitar este recurso compartido. Si desea que las máquinas virtuales accedan a la carpeta compartida en modo de sólo lectura, seleccione la casilla Sólo lectura. Haga clic en Finalizar.

    Carpeta compartida de VMware en VMware Workstation y habilitación de este recurso compartido

  7. La nueva carpeta compartida aparece ahora en la lista de carpetas compartidas de la pestaña Opciones de la ventana de ajustes de la máquina virtual. Se habilita una carpeta compartida si se selecciona la casilla correspondiente junto al nombre del archivo.

    Pulse OK para guardar los ajustes.

    Carpeta compartida VMware - se crea una carpeta compartida

  8. Abra la interfaz de usuario de la máquina virtual de Windows utilizada para compartir la carpeta con la función Carpetas compartidas.
  9. Haga clic en Red (Mis sitios de red) en Mi PC (Este PC) o en el Explorador de Windows para ver los ordenadores disponibles en la red.
  10. Seleccione vmware-host como nombre del ordenador en el que está configurada la carpeta compartida. Este nombre se establece por defecto y se asigna a su máquina física (host) con la carpeta compartida.

    Cómo acceder a una carpeta compartida para copiar archivos de máquinas virtuales VMware

  11. Haga clic en Carpetas compartidas y seleccione la carpeta compartida necesaria(share-VM en nuestro ejemplo). La ruta completa a la carpeta compartida, en nuestro caso, es

    \\vmware-host\Shared Folders\share-VM\

Puede copiar archivos a una máquina virtual desde un host y a un host desde una VM. Hemos copiado Test01.txt desde un host Windows a un guest Windows en nuestro ejemplo utilizando el recurso compartido de archivos VMware en VMware Workstation.

VMware transferir archivos desde una VMware VM utilizando una carpeta compartida

Para huéspedes Linux, puede montar todas las carpetas compartidas VMware con el comando que se muestra a continuación:

  • En Linux con kernel anterior a 4.0:

    mount -t vmhgfs .host:/ /home/user1/shares

  • En Linux con kernel 4.0 o posterior:

    /usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other

Si desea mantener una carpeta compartida montada después de reiniciar la máquina virtual, añada las líneas apropiadas con el comentario y la configuración en /etc/fstab, por ejemplo:

#

Carpeta compartida de VMware para transferir archivos entre el huésped y el host de VMWare

.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=1000 0 0

Antes de pasar a la siguiente sección, tenga en cuenta que la función de carpetas compartidas sólo está disponible en VMware Workstation (y VMware Fusion en macOS), y no está disponible para las máquinas virtuales que se ejecutan en hosts ESXi. Para los hosts ESXi, puede compartir una carpeta manualmente y utilizar una red para copiar archivos entre máquinas Windows. Para copiar archivos de una máquina virtual a un host ESXi, debe utilizar una herramienta adicional o combinar la copia de archivos de una carpeta compartida manualmente con uno de los métodos que se explican a continuación.

Existen otros métodos para compartir una carpeta en Windows 10 y Windows Server 2019. También puede obtener más información sobre el protocolo SMB de recursos compartidos.

Si tiene una cuenta de Windows con derechos administrativos y una política de seguridad permite acceder a recursos compartidos administrativos ocultos disponibles por defecto, puede acceder a los archivos de los discos locales de la máquina Windows utilizando la ruta al recurso compartido como:

\\IP-Address\c$

Donde:

Dirección IP es una dirección IP o nombre de host de una máquina Windows remota.

C$ es la letra de unidad de disco necesaria en una máquina Windows remota que es un recurso compartido del sistema oculto.

Uso del portapapeles compartido para transferir archivos a máquinas virtuales desde un host

El portapapeles compartido es una función que permite copiar y pegar contenido como texto y archivos completos desde una máquina virtual a una máquina host en la que esté instalada VMware Workstation. El proceso es similar al de copiar y pegar contenido entre distintas ventanas de aplicaciones en Windows o Linux con la interfaz gráfica de usuario.

Toda la gama de funciones está disponible en VMware Workstation, que permite transferir archivos a máquinas virtuales desde un host y a un host desde una máquina virtual. Puedes arrastrar y soltar archivos como alternativa a copiar y pegar.

Portapapeles compartido en VMware Workstation

Vamos a ver cómo transferir archivos a VMware Workstation VMs utilizando un portapapeles compartido y Drag & Drop. En nuestro ejemplo, VMware Workstation está instalado en un host Windows.

  1. Seleccione su VM en el panel izquierdo donde se listan las VMs.
  2. Haga clic en Editar ajustes de la máquina virtual(VM > Settings) .

    Abrir los ajustes de la máquina virtual

  3. Seleccione la pestaña Opciones y haga clic en Invitado Aislamiento.

    Seleccione dos casillas:

    • Activar arrastrar y soltar
    • Activar copiar y pegar

    Haga clic en Aceptar para guardar los ajustes y cerrar la ventana.

    Activación del portapapeles compartido y arrastrar & soltar para transferir archivos a VMware VMs

Portapapeles compartido en VMware ESXi

En cuanto a las máquinas virtuales que se ejecutan en VMware ESXi, no se puede copiar ningún archivo mediante arrastrar & soltar o a través del portapapeles compartido entre una máquina virtual en un host ESXi y cualquier otra máquina. La única opción es copiar y pegar texto entre una máquina virtual que se ejecute en ESXi y su máquina local (en la que esté instalada VMware Workstation o VMware Remote Console ). Copiar y pegar y arrastrar & soltar archivos no son compatibles por razones de seguridad.

Sin embargo, si no puede copiar un archivo de configuración, por ejemplo, puede copiar el contenido de texto del archivo utilizando un portapapeles compartido. Por defecto, el portapapeles compartido está desactivado en la configuración de la máquina virtual ESXi. Haga lo siguiente en un host ESXi para habilitar un portapapeles compartido para copiar y pegar datos de texto:

  1. La VM debe estar apagada cuando se edita la configuración de la VM. Apague la máquina virtual si está en funcionamiento.
  2. Abre los ajustes de la máquina virtual. Puede utilizar VMware Host Client y VMware vSphere Client. Seleccione una VM, haga clic en Editar ajustes de VM y seleccione la pestaña Opciones de VM.

    Amplíe la sección Ajustes avanzados y haga clic en Editar configuración.

    Configuración avanzada de máquinas virtuales para habilitar el portapapeles compartido en ESXi

  3. Es necesario añadir tres parámetros de configuración a la configuración de la VM (que se escribe en el archivo VMX de configuración de la VM). Haga clic en Añadir parámetro.

    Activación del portapapeles compartido para una máquina virtual en VMware ESXi

  4. Añade estos tres parámetros:

    isolation.tools.copy.disable FALSE

    isolation.tools.paste.disable FALSE

    isolation.tools.setGUIOptions.enable TRUE

  5. Haga clic en Aceptar y guarde los ajustes.

    Se añaden parámetros de configuración para habilitar el portapapeles compartido

Como alternativa, puede editar manualmente un archivo VMX con la configuración de la VM ubicado en un almacén de datos ESXi en el directorio de la VM.

  1. Inicie sesión en el shell de ESXi localmente o a través de SSH.
  2. Vaya al directorio VM (directorio donde se almacenan los archivos VM en un almacén de datos). En nuestro caso, vamos a este directorio:

    cd /vmfs/volumes/datastore10a/Windows-VM/

    Localización de un archivo de configuración VMX de la máquina virtual para habilitar un portapapeles compartido

  3. Edita el archivo de configuración de VMX. En nuestro caso, el archivo es Windows-VM.vmx

    vi Windows-VM.vmx

  4. Añada los tres parámetros indicados al final de este archivo de configuración.
  5. Guarde los cambios y cierre el archivo (salga del editor de texto).

    Adición de parámetros de configuración a un archivo VMX para habilitar el portapapeles compartido para una máquina virtual en un host ESXi

Ahora podemos copiar y pegar texto entre nuestra máquina local y la VM remota que se ejecuta en un host ESXi utilizando VMware Remote Console y VMware Workstation para conectarnos a una VM.

Uso de un dispositivo de almacenamiento USB

VMware ESXi y VMware Workstation son compatibles con la función USB passthrough, que permite insertar un dispositivo USB en una máquina host y conectar este dispositivo USB a una máquina virtual que se ejecute en este host. Puede conectar un dispositivo de almacenamiento USB a una máquina host y a una máquina virtual secuencialmente para copiar archivos entre estas máquinas en cualquier dirección.

Nota: VMware Tools debe estar instalado en el sistema operativo invitado (SO) de la VM para utilizar la función USB passthrough.

Copia de archivos entre VMware Workstation VMs y el host

Haga lo siguiente para transferir archivos de VM a host en VMware Workstation instalado en hosts Windows y Linux (la interfaz está unificada):

  1. Encienda la máquina virtual.
  2. Inserte un dispositivo de almacenamiento USB, como un disco duro USB o una unidad flash USB, en un ordenador físico que sea una máquina anfitriona.
  3. Se abre la ventana Nuevo dispositivo USB detectado en VMware Workstation. Elige dónde quieres conectar tu dispositivo USB:
    • Conectarse al host
    • Conectarse a una máquina virtual

    Seleccionemos la segunda opción y conectemos nuestra memoria USB a la máquina virtual. En este ejemplo estamos ejecutando una máquina virtual Windows. Si varias máquinas virtuales se están ejecutando en VMware Workstation, debe seleccionar la máquina virtual necesaria en la lista. Un dispositivo USB sólo puede conectarse a una máquina virtual a la vez. Pulse OK para continuar.

    Cómo transferir archivos a máquinas virtuales mediante un dispositivo de almacenamiento USB

    Si su dispositivo de almacenamiento USB ya ha sido insertado en el puerto USB de la máquina anfitriona física en la que está instalada VMware Workstation, la ventana emergente con las opciones de USB passthrough no se mostrará automáticamente. Puede conectar un dispositivo USB a una VM (desconectarse de un host) en el menú:

    Vaya a VM > Dispositivos extraíbles > Nombre de su dispositivo de almacenamiento USB> Conectar (Desconectar del host).

    En nuestro ejemplo, el nombre de la unidad flash USB es Kingston DataTraveler 2.0.

    Conexión de una unidad flash USB a una máquina virtual para copiar archivos entre un host y una máquina virtual

  4. Ahora podemos ver la unidad flash USB conectada a la VM de Windows 7 en la lista de unidades de disco de Mi PC (Explorador de Windows). Para comprobar el dispositivo de almacenamiento USB:
    • Haz clic con el botón derecho en Mi PC y pulsa Administrar.
    • Vaya a Administración de equipos > Administrador de dispositivos y Administración de equipos > Administración de discos en el complemento correspondiente después de hacer clic con el botón derecho.

    Si no se asigna automáticamente una letra de unidad, asígnela manualmente en el complemento Administración de discos.

    El flujo de trabajo para los huéspedes Linux es idéntico. En algunas distribuciones de Linux, es posible que tenga que montar un dispositivo de almacenamiento USB conectado, como una unidad flash, manualmente en el sistema operativo Linux.

  5. Una vez que el dispositivo de almacenamiento USB haya sido montado en la VM y reconocido por el SO huésped, copie los archivos necesarios de la VM a un dispositivo de almacenamiento USB. Ahora también funciona la copia de archivos desde el dispositivo de almacenamiento USB a una máquina virtual.

    Se conecta una memoria USB a una máquina virtual

  6. Después de copiar todos los archivos necesarios de la VM a la unidad flash USB, desconecte la unidad flash USB de la VM y conecte este dispositivo USB al host:

    Haga clic en VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

    Cómo transferir archivos de VM a host - desconectar una unidad flash USB de una VM

  7. Un dispositivo de almacenamiento USB está ahora conectado a una máquina anfitriona (una máquina Windows en la que se está ejecutando VMware Workstation en nuestro caso). Podemos transferir los archivos que se copiaron de la VM a la unidad flash USB a su máquina host.

USB passthrough desde VMware estación de trabajo a ESXi VMs

Puede utilizar una unidad flash USB insertada en un servidor ESXi e insertada en su máquina local Windows o Linux (con VMware Workstation o VMware Remote Console (VMRC) instalado) que esté utilizando para gestionar un host ESXi de forma remota para conectar esta unidad flash USB a una VM ESXi. En el primer caso, se utiliza el USB passthrough conectado al host y, en el segundo, el USB passthrough conectado al cliente.

Conectemos una unidad flash USB insertada en nuestra máquina física local Windows 10 a una máquina virtual Windows XP que se ejecuta en un host ESXi v7.0 (utilizando la función passthrough USB conectado a cliente). VMware Workstation está instalado en nuestra máquina física Windows y conectado al host ESXi a través de la red (192.168.101.0/24).

Para ello:

  1. Una máquina virtual debe estar apagada para poder editar sus ajustes.
  2. Asegúrese de que hay un controlador USB en la lista de hardware virtual de la máquina virtual. Puede comprobar la configuración de la máquina virtual en VMware Host Client. Seleccione su VM(Windows-VM en nuestro caso), haga clic en Editar ajustes y seleccione la pestaña Hardware virtual.

    Un controlador USB debe estar presente en una máquina virtual para transferir archivos a la máquina virtual con una unidad flash USB

  3. Volvamos a VMware estación de trabajo instalada en nuestra máquina local (física) Windows 10. Haga clic en Archivo > Conectarse a un servidor en VMware Workstation para conectarse a un host ESXi remoto.

    Conexión a un servidor ESXi remoto

  4. Introduzca el nombre del servidor ESXi o la dirección IP, el nombre de usuario y la contraseña. Haz clic en Conectar.

    Conexión a un host ESXi remoto: introducción de credenciales

  5. Expanda el host ESXi en el panel izquierdo de VMware Workstation donde se muestran los hosts remotos, las VMs remotas en estos hosts y las VMs locales de VMware Workstation.
  6. Seleccione una máquina virtual que se ejecute en un host ESXi remoto. Seleccionamos Windows-VM ejecutándose en 192.168.101.201. Podemos ver una interfaz de usuario de un sistema operativo invitado de la máquina virtual seleccionada después de eso.
  7. Haga clic en VM > Dispositivos extraíbles > Nombre de su dispositivo de almacenamiento USB> Conectar (Desconectar del host).

    Observe que seleccionamos un dispositivo USB conectado a nuestra máquina física Windows en la que está instalada VMware Workstation. Este dispositivo USB no es un dispositivo conectado a un host ESXi físico al que nos hayamos conectado remotamente.

    Conexión de una unidad flash USB a una máquina virtual que se ejecuta en un host ESXi mediante passthrough USB conectado al cliente

  8. Ahora podemos ver nuestra unidad flash USB conectada a la VM de Windows XP que se ejecuta en el host ESXi remoto: Inicio > CMD > compmgmt.msc > Administrador de dispositivos.

    Una unidad flash USB está conectada a una máquina virtual que se ejecuta en un host ESXi y está lista para copiar archivos.

  9. Asigne una letra de unidad de disco a la partición de la unidad flash USB conectada si no se ha asignado una letra de unidad. Copie los archivos necesarios entre la máquina virtual y la unidad flash USB. Puedes transferir archivos a una VM y desde una VM.

    Uso de una unidad flash USB para transferir archivos de la máquina virtual al host

  10. Después de copiar los archivos, puede desconectar el dispositivo de almacenamiento USB de la VM y conectar este dispositivo de nuevo a la máquina física local de Windows 10 en la que se está ejecutando VMware Workstation. En la GUI VMware Workstation, haga clic en VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

Conexión de una memoria USB en ESXi

Este método es extremadamente útil en algunos casos, por ejemplo, si necesita actualizar un controlador de red en un host ESXi y no puede utilizar la red. La conexión de una unidad flash USB a ESXi es más complicada que la conexión a una máquina host que ejecuta VMware Workstation.

Existen limitaciones en ESXi con respecto a los sistemas de archivos compatibles que se pueden montar en ESXi. Las memorias USB o los discos duros USB con sistemas de archivos FAT32 y NTFS no son compatibles. Por esta razón, tenemos que crear una partición en nuestra unidad flash USB y formatear esta partición con VFAT (que se reconoce en Windows como FAT12). VFAT tiene limitaciones, como el tamaño máximo de partición y el tamaño máximo de archivo. Por lo tanto, este método no es aplicable a archivos de gran tamaño, como discos virtuales o imágenes ISO de más de 4 GB. Sin embargo, estos límites son suficientes para transferir archivos de configuración, controladores, etc.

Crear una partición en una memoria USB

En primer lugar, vamos a crear una nueva partición en nuestra unidad flash USB y formatear esta partición en VFAT. Podemos hacerlo conectando una unidad flash USB insertada en el servidor ESXi a una máquina virtual (utilizando la función passthrough USB conectado al host). Alternativamente, podemos insertar una unidad flash USB en una máquina física Windows o Linux.

En este ejemplo, utilizamos una máquina Windows 7 para preparar una unidad flash USB para ESXi. Los comandos para Windows Server 2008R2, Windows 10 y otras versiones más recientes de Windows son los mismos.

  1. Para asegurarte de que hay una unidad flash USB conectada a tu equipo Windows, haz clic con el botón derecho del ratón en Mi PC o Este PC (o ejecuta diskmgmt.msc desde CMD) para abrir Administración de discos.
  2. Abra la línea de comandos de Windows:

    Start > Run > cmd

  3. Escriba diskpart en la línea de comandos y pulse Intro.

    Verás un mensaje en diskpart :

    Diskpart

  4. Enumere los discos conectados a su máquina Windows:

    list disk

    Busca tu memoria USB en la lista de salida y recuerda el número de disco. En nuestro caso, Disk 1 es el número de nuestra unidad flash USB (véase la captura de pantalla siguiente).

  5. Seleccione su unidad flash USB definiendo el número de disco apropiado que obtuvo de la salida del comando anterior (disco 1 en nuestro caso).

    select disk 1

  6. Enumera las particiones de la memoria USB seleccionada:

    list partition

    Tenemos una partición(Partición 1) en nuestra unidad flash USB (ver la captura de pantalla a continuación). Tener una partición en una unidad flash USB es el caso más popular.

    Listado de discos para identificar una unidad flash USB que se puede utilizar para copiar archivos de una máquina virtual a un host ESXi

    A continuación, tenemos que delete partitions en la unidad flash USB.

    Importante: Se borrarán todos los datos de la memoria USB. Puede copiar los datos de la unidad flash si es necesario antes de pasar a los siguientes pasos.

  7. Seleccione la partición de la memoria USB que desea eliminar:

    select partition 1

  8. Ejecute el comando para eliminar la partición seleccionada:

    delete partition

  9. Selecciona de nuevo un disco que sea tu memoria USB:

    select disk 1

    Seleccionar la primera partición de una memoria USB en Diskpart

  10. Crea una nueva partición con un sistema de archivos VFAT. En este ejemplo, creamos una partición de 4 GB en nuestra memoria USB. Ten en cuenta que no puedes almacenar archivos de más de 4 GB en VFAT. Tenga en cuenta que VFAT sólo admite el formato de nombre de archivo 8.3.

    create partition primary size=4000 id=6

  11. Formatee la partición creada de esta manera para que sea compatible con ESXi:

    format fs=fat quick

    Formatear una partición en VFAT transferir archivos de VM a host (ESXi)

  12. Salga de la utilidad diskpart (ejecute el comando exit ).

Una unidad flash USB está lista para ser reconocida por ESXi y copiar archivos. Tras algunos pasos adicionales de configuración de ESXi, puede conectar una unidad flash USB a una máquina virtual y copiar los archivos necesarios en la unidad flash USB.

Supongamos que necesitamos copiar un archivo ZIP con controladores. En nuestro ejemplo hemos copiado net-tulip.zip en una memoria USB. A continuación, tenemos que montar una partición de una unidad flash USB insertada en un servidor ESXi en la línea de comandos ESXi.

Configuración de un host ESXi para utilizar una unidad flash USB

Supongamos que necesitamos copiar un archivo ZIP con un controlador desde una unidad flash USB a un almacén de datos ESXi y, a continuación, copiar un archivo de configuración VM desde un almacén de datos ESXi a una unidad flash USB. En nuestro ejemplo, el nombre del archivo es net-tulip.zip. Haga lo siguiente en el host ESXi para transferir archivos a VMware ESXi desde una unidad flash USB y a la inversa:

  1. La configuración se realiza en la interfaz de línea de comandos. Por esta razón, debe habilitar el acceso SSH en un host ESXi.
    • Para habilitar el acceso remoto SSH en DCUI, ve a Opciones de solución de problemas > Habilitar SSH.
    • Para habilitar el acceso remoto SSH y el servidor SSH en ESXi en VMware Host Client, vaya a Host > Manage y seleccione la pestaña Services. Haga clic con el botón derecho en TSM-SSH y haga clic en Iniciar para iniciar el servicio. Puede activar este servicio de forma permanente.

    Inicio del servicio de servidor SSH en un host ESXi para permitir la gestión remota en la línea de comandos

  2. Conéctese al host ESXi mediante SSH para utilizar la línea de comandos. Puedes utilizar tu cliente SSH favorito.
  3. Detener el servicio de árbitro USB:

    /etc/init.d/usbarbitrator stop

    El árbitro USB habilita automáticamente la función USB passthrough para las máquinas virtuales que residen en un host ESXi (sólo tiene que seleccionar una unidad flash USB en los ajustes de VM de la VM apropiada para utilizar esta función).

  • Si desea desactivar el servicio de árbitro USB tras el reinicio de ESXi (de forma permanente), puede utilizar el comando

    chkconfig usbarbitrator off

    Para habilitar el servicio de árbitro USB utilice el comando apropiado:

    /etc/init.d/usbarbitrator start

    chkconfig usbarbitrator on

  1. Comandos opcionales para comprobar los dispositivos USB conectados a un host ESXi:

    lsusb

    esxcli storage core device list | grep -i usb

    esxcli storage filesystem list

    Puede consultar /var/log/usb. log para comprobar el estado de un dispositivo USB.

  2. Es posible que tenga que desconectar y conectar un dispositivo de almacenamiento USB después de detener el servicio de árbitro USB.
  3. Enumera los dispositivos de disco de bloque para encontrar/identificar la unidad flash USB (o HDD USB) conectada.

    ls -ltrh /vmfs/devices/disks/

    Nuestra unidad flash USB es mpx.vmhba32:C0:T0:L0: (véase la captura de pantalla a continuación).

    Así, la dirección/localización completa del disco es:

    /dev/discos/mpx.vmhba32:C0:T0:L0:

    Visualización de los dispositivos de disco conectados a un host ESXi para identificar una unidad flash USB

  4. Compruebe el número de partición del dispositivo USB para asegurarse de que ha identificado el dispositivo de disco correcto:

    ls /dev/disks/mpx.vmhba32:C0:T0:L0:*

    Según la salida, el ID completo del dispositivo, teniendo en cuenta el número de partición en nuestro caso, es:

    /dev/disks/mpx.vmhba32:C0:T0:L0:1

  5. Localice la carpeta raíz de una unidad flash USB para definir la ruta de origen/destino para copiar los archivos. Ejecute el siguiente comando y pulse Tab para ver los elementos disponibles en el directorio de volúmenes. El directorio /volumes/ del sistema de archivos ESXi es un directorio en el que se montan las particiones con sistemas de archivos.

    ls -al /vmfs/volumes/ [press Tab]

    El volumen de una memoria USB se llama SIN NOMBRE

    Una unidad flash USB conectada a un host ESXi tiene la etiqueta de volumen NO NAME

  6. Compruebe el contenido del directorio raíz de la memoria USB

    ls -al /vmfs/volumes/NO\ NAME/

    Nuestro archivo ZIP está presente en el volumen de la unidad flash USB.

    Cómo transferir archivos de VM a host utilizando una unidad flash USB conectada a ESXi

  7. Hemos creado la carpeta de instalación en el almacén de datos ESXi(datastore10a) con los comandos:

    cd /vmfs/volumes/datastore10a

    mkdir install

    En la siguiente captura de pantalla, también se puede ver el directorio de la VM cuyo archivo de configuración vamos a copiar desde el almacén de datos ESXi a una unidad flash USB más tarde.

    Selección de un archivo VM que puede copiarse a una unidad flash USB desde un almacén de datos ESXi

  8. Copie el archivo ZIP de la unidad flash USB a la carpeta de instalación de nuestro host ESXi (en datastore10a).

    cp /vmfs/volumes/NO\ NAME/net-tulip.zip /vmfs/volumes/datastore10a/install/

  9. Compruebe si se ha copiado el archivo:

    ls -al /vmfs/volumes/datastore10a/install/

    El archivo se ha copiado correctamente.

    Cómo copiar un archivo de la máquina virtual al host en la interfaz de línea de comandos de ESXi

Del mismo modo, puede copiar archivos en la dirección opuesta: copiar archivos de ESXi a una unidad flash USB y, a continuación, copiar el archivo necesario a una máquina virtual o a otra máquina desde esta unidad flash USB.

  1. Compruebe el contenido de la carpeta VM:

    ls -al /vmfs/volumes/datastore10a/Windows-VM/

  2. Copie el archivo de configuración Windows-VM.vmx de un almacén de datos ESXi a una unidad flash USB:

    cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/NO\ NAME/

  3. Compruebe si el archivo se ha copiado en la memoria USB:

    ls -al /vmfs/volumes/NO\ NAME/

    Copia de un archivo VM desde un host ESXi a una unidad flash USB

Una vez finalizada la copia de archivos en el host ESXi, puede expulsar la unidad flash USB e iniciar el servicio de árbitro USB en el host ESXi. A continuación, puede insertar la unidad flash USB y utilizar la función passthrough USB conectada al host para conectar la unidad flash USB a la máquina virtual.

Más información sobre USB passthrough para ESXi y la conexión de un dispositivo de almacenamiento USB insertado en un host ESXi a una máquina virtual que reside en el host ESXi.

Uso de PowerCLI para transferir archivos a máquinas virtuales VMware

Otro método para transferir archivos de la VM al host es mediante comandos PowerCLI (cmdlets). VMware Tools debe instalarse en un sistema operativo invitado dentro de una máquina virtual. Estos cmdlets de PowerShell utilizan VMware Tools para copiar archivos a/desde VMs que residen en un host ESXi. Por lo tanto, no necesita la red si ejecuta comandos dentro de una máquina virtual que reside en el host ESXi de origen/destino.

Para copiar archivos entre máquinas virtuales, puede utilizar un cmdlet Copy-VMGuestFile y otros cmdlets en vSphere PowerCLI.

  1. Conéctese a un host ESXi o vCenter Server. En este ejemplo nos conectamos a un host ESXi.

    Connect-VIServer 192.168.101.201

    Conexión a un host ESXi en VMware PowerCLI

  • Para evitar la advertencia del certificado, ejecute el comando:

    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

    Cómo desactivar un aviso de certificado en VMware vSphere PowerCLI

Copy-VMGuestFile (Local > ESXi VM)

Utilice el siguiente comando para copiar un archivo desde una máquina local (una máquina donde se está ejecutando PowerCLI a una VM remota en un host ESXi):

Copy-VMGuestFile -Source "c:\temp\test.txt" -LocalToGuest -VM Windows-VM -Destination "c:\temp-VM" -GuestUser user1 -GuestPassword Password

Donde:

c:\temp\test.txt es el archivo de origen que queremos copiar de la máquina local

-LocalToGuest es la dirección (de la máquina local al SO invitado en una VM de destino ejecutada en ESXi)

-VM Windows -VM es la definición del nombre de la VM de destino

c: \temp-VM es la carpeta de destino en la VM de destino (donde queremos almacenar una copia del archivo)

user1 es el nombre de usuario en el sistema operativo (SO) invitado en la VM de destino. Este usuario debe tener acceso a la carpeta de destino definida.

Contraseña es la contraseña de este usuario.

Ignoramos la advertencia sobre la versión de VMware Tools y comprobamos si se ha copiado nuestro archivo text.txt.

Cómo copiar un archivo a una máquina virtual en PowerCLI

Podemos ver que nuestro archivo test.txt, cuyo tamaño es de 29 bytes, se ha copiado correctamente en la máquina virtual Windows XP que se ejecuta en un host ESXi.

Se ha copiado un archivo en una VMware VM

Copy-VMGuestFile (ESXi VM > Local)

Ahora, copiemos un archivo desde el SO invitado de la VM a un directorio local de la máquina donde se ejecuta el comando:

Copy-VMGuestFile -Source "c:\temp-VM\test2.txt" -GuestToLocal -Destination "c:\temp" -VM Windows-VM -GuestUser user1 -GuestPassword Password

Donde:

-Source «c:\temp-VM\test2. txt» es la ruta al archivo de origen en la VM que se ejecuta en ESXi

-GuestToLocal es la dirección (desde un SO invitado de la VM ESXi a la máquina local donde se ejecuta el comando)

«c:\temp » es la ruta a la carpeta de destino en una máquina local

user1 es el nombre de usuario en el sistema operativo invitado en la VM de destino. Este usuario debe tener acceso a la carpeta de destino definida.

Contraseña es la contraseña para este usuario en el SO invitado

Cómo copiar un archivo de una máquina virtual en PowerCLI

Puede ver ejemplos de uso del cmdlet Copy-VMGuestFile con el comando:

get-help Copy-VMGuestFile -examples

Uso de Copy-DatastoreItem

El cmdlet Copy-DatastoreItem PowerShell se utiliza para copiar archivos a/desde un almacén de datos ESXi. Existen dos métodos para utilizar este cmdlet para copiar archivos en el almacén de datos de VMware ESXi:

  • Si PowerCLI está instalado en un invitado Windows dentro de la VM, puede ejecutar un comando para copiar un archivo directamente desde un almacén de datos ESXi a una VM y viceversa.
  • Si no puede instalar PowerCLI en una máquina virtual que reside en un host ESXi, puede ejecutar comandos PowerCLI desde su máquina Windows local, copiar archivos desde un almacén de datos ESXi a su máquina local con el comando Copy-VMGuestFile y luego copiar estos archivos desde su máquina local a una máquina virtual con el comando Copy-VMGuestFile.

Debe estar conectado a un servidor ESXi o vCenter Server. Puedes hacerlo con el comando

ViConnect <server_name_or_IP>

Estamos conectados directamente al host ESXi.

Vamos a copiar un archivo de configuración de VM desde el almacén de datos a la máquina Windows actual (la máquina en la que ejecutamos estos comandos – también puede ser una VM en un host ESXi):

  1. Obtener la información sobre el almacén de datos:

    Get-Datastore "datastore10a"

  2. Obtener un objeto de almacén de datos ESXi:

    $datastore = Get-Datastore "datastore10a"

  3. Crear una nueva unidad PowerShell, llamada ds: que se asigna a $datastore :

    New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root "\"

  4. Establezca su almacén de datos como ubicación actual:

    Set-Location ds:\

  5. Para listar los archivos y directorios del directorio seleccionado, utilice el comando:

    Get-ChildItem

    Preparación para copiar archivos de un host ESXi

  6. Puede establecer el directorio VM como nueva ubicación. En nuestro caso, este directorio es Windows-VM

    Set-Location "Windows-VM"

  7. El comando para copiar el archivo de la VM, es decir, el archivo VMX de configuración de la VM, desde el almacén de datos ESXi definido a la carpeta temporal de la máquina actual:

    Copy-DatastoreItem -Item ds:\Windows-VM\Windows-VM.vmx -Destination c:\temp

    Dónde:

    ds:\Windows-VM\Windows-VM .vmx es la ruta a un archivo que debe copiarse y ds:\ es el acceso directo definido a un almacén de datos(datstore10a en este caso).

    Copiar un archivo desde un almacén de datos ESXi en PowerCLI

  • Si se ha conectado a vCenter (no a un host ESXi concreto como hemos hecho en este ejemplo), puede utilizar el siguiente comando con la definición de un almacén de datos en el centro de datos vCenter para copiar un archivo del almacén de datos ESXi a una carpeta de un equipo local:

    Copy-DatastoreItem vmstore:\Datacenter1\datastore10a\Windows-VM\Windows-VM.vmx c:\temp\

  • Para copiar un archivo en la dirección opuesta (conectándose a un host ESXi), utilice el comando:

    Copy-DatastoreItem -Item c:\temp\darwin.iso -Destination ds:\install\

    Copiamos darwin.iso (que es una imagen con VMware Tools para macOS) desde una máquina Windows al directorio de instalación en un almacén de datos ESXi.

    Copiar archivo a almacén de datos VMware ESXi en PowerCLI

  • Si está conectado a vCenter, puede utilizar este comando para copiar un archivo desde un equipo Windows local al almacén de datos de un host ESXi remoto:

    Copy-DatastoreItem c:\temp\darwin.iso -Destination vmstore:\Datacenter1\datastore10a\install\

Puede utilizar estos cmdlets de PowerCLI y crear scripts de PowerShell para transferir archivos de la máquina virtual al host y viceversa.

Comandos para copiar archivos de una VM a un host en VMware Workstation

Si utiliza VMware Workstation (que es un hipervisor de tipo 2) en su host Windows o Linux (o VMware Fusion en macOS), también puede utilizar la interfaz de línea de comandos para copiar archivos de la VM al host y viceversa. Puede utilizar la vmrun herramienta de línea de comandos para operar con máquinas virtuales. La sintaxis de los comandos es la misma para Windows, Linux y macOS (VMware Fusion). En este tutorial utilizamos VMware Workstation 15 en Windows 10.

  1. Vaya al directorio de la estación de trabajo VMware:

    cd "C:\Program Files (x86)\VMware\VMware Workstation\"

  2. Utilice el siguiente comando para copiar un archivo desde el SO invitado dentro de la VM al host Windows local:

    CopyFileFromHostToGuest <Path to vmx file> <Path in guest> <Path on host>

    En nuestro caso, el comando exacto es:

    vmrun copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"

  3. Introduzca un nombre de usuario y la contraseña para este usuario cuando se le solicite (el usuario debe tener privilegios suficientes para acceder al archivo definido).

    Dónde:

    d:\virtual\WinServer2019\WinServer2019.vmx es un disco virtual de la VM de la que copiamos el fichero.

    c:\temp\test.txt es un archivo almacenado en el disco virtual de una VM; es un archivo que copiamos.

    c:\temp\copied\ es un directorio donde almacenar una copia de archivo en una máquina host.

    Asegúrese de utilizar la barra invertida \ carácter al establecer una ruta. Hemos copiado test.txt que es un archivo de texto de una VM al host.

    Alternativamente, puede ejecutar un comando definiendo las credenciales en el comando:

    vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"

    Cómo transferir archivos de la máquina virtual al host mediante el comando vmrun

Para copiar un archivo en sentido inverso (de una máquina host a una VM), utilice el comando de la siguiente manera:

CopyFileFromHostToGuest <Path to vmx file> <Path on host> <Path in guest>

Nuestro comando particular en este ejemplo es:

vmrun copyFileFromHostToGuest d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test3.txt" "c:\temp\test3-copy.txt"

Cómo copiar archivos en una máquina virtual utilizando vmrun

Cómo transferir archivos mediante SSH y SCP

SSH (Secure Shell) es un protocolo habitual para gestionar de forma segura hosts remotos que se basa en el cifrado. SCP es un protocolo que se basa en SSH para copiar archivos de forma segura a través de la red. Puede utilizar SCP para transferir archivos de la máquina virtual al host, especialmente si Linux se ejecuta en la máquina virtual. Se puede habilitar un servidor SCP y SSH en máquinas Linux y ESXi en unos pocos pasos.

Cómo habilitar un servidor SSH en ESXi

Un servicio de servidor SSH debe estar habilitado en un host ESXi para utilizar este método y transferir archivos a VMware ESXi y desde ESXi.

  1. Para habilitar un servidor SSH en VMware Host Client, vaya a Host > Manage > Services e inicie el servicio TSM-SSH.
  2. SSH debe estar permitido en el cortafuegos ESXi para permitir el tráfico SCP para transferir archivos desde un host ESXi, así como para conectarse a otras máquinas utilizando SCP desde este host ESXi:
    • Vaya a Redes en el panel Navegador, seleccione la pestaña Reglas del cortafuegos y seleccione Cliente SSH.
    • Haga clic en Acciones > Activar para activar la regla del cortafuegos.

    Habilitación del acceso SSH en el cortafuegos ESXi

  3. Para comprobar la conexión SSH entre hosts, puede ejecutar este comando en un host ESXi:

    nc -z 192.168.101.202 22

    Dónde:

    192.168.101.202 es una dirección IP de un host remoto.

    22 es el número de puerto para la conexión SSH (22 es el número de puerto por defecto).

La sintaxis general del comando scp para copiar archivos mediante SCP a través de la red:

scp [OPTION] [user]@[SRC_HOST]:path_to_file1 [user]@[DEST_HOST]:path_to_file2

[user]@[SRC_HOST]:path_to_file1 – un archivo fuente

[user]@[DEST_HOST]:path_to_file2 – un archivo de destino

-P especifica un número de puerto para la conexión SSH (utilice esta bandera si el número de puerto no es 22).

A continuación explicamos los ejemplos concretos en la práctica.

Cómo copiar un archivo local a una máquina remota mediante SCP

Para copiar un archivo local en un equipo remoto mediante SCP, utilice el comando:

scp file.txt remote_username@remote_host_ip:/remote/directory

Desde Linux

Copiemos el archivo LinuxDir.txt desde una máquina local Ubuntu Linux (que también puede ser una VM) a un host ESXi a través de la red utilizando SCP. La ubicación de destino en el host ESXi remoto es el directorio de instalación del almacén de datos datastore10a. La dirección IP del host ESXi remoto es 192.168.101.201.

El comando para copiar el archivo desde la máquina Linux local al host ESXi remoto en nuestro caso es:

scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/

Cómo copiar un archivo a un host ESXi remoto mediante SCP

Puede almacenar el archivo copiado en la máquina de destino con un nuevo nombre de archivo:

scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/LinuxDir-copy.txt

Utilice el indicador -r para copiar un directorio con todos los archivos incluidos:

scp -r /local/directorio remote_username@192.168.101.201:/remote/directory

Desde ESXi

Puede utilizar scp en un host ESXi. La sintaxis de scp en la línea de comandos es la misma para Linux y ESXi. Debe configurarse un servidor SSH en la máquina remota.

Iniciemos sesión en el host ESXi(192.168.101.201) y copiemos el directorio de instalación con todos los archivos que contiene al directorio personal del usuario1 en la máquina Linux remota(192.168.101.210).

scp -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/

Cómo copiar un archivo de un host ESXi a una máquina remota a través de SCP

Si el servidor SSH escucha en un puerto distinto de 22, utilice el parámetro -P por ejemplo, si el número de puerto SSH es 8022el comando es

scp -P 8022 -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/

Cómo copiar un archivo de una máquina remota a una local mediante SCP

SCP es conveniente para copiar archivos de una máquina remota a la máquina local, lo que le permite también transferir archivos de VM a host. A continuación explicamos cómo ejecutar los comandos adecuados en Linux y ESXi.

Copiar archivos a una máquina Linux local

Vamos a copiar un archivo desde el host ESXi remoto a la máquina Linux actual utilizando SCP. Para ello, utilice el comando como:

scp remote_username@remote_ip_address:/remote/file.txt /local/directory

Copiemos un archivo darwin.iso del servidor ESXi remoto al directorio personal definido en la máquina Linux:

scp root@192.168.101.201:/vmfs/volumes/datastore10a/install/winPreVista.iso /home/user1/

Cómo copiar un archivo desde un almacén de datos ESXi remoto a la máquina Linux actual a través de SCP

Copia de archivos a un host ESXi local

Si iniciamos sesión en un host ESXi, podemos ejecutar el comando para copiar un archivo VM desde una máquina Linux remota a un almacén de datos en el host ESXi local. Copiemos VM_file.txt desde la máquina Linux al directorio del almacén de datos ESXi a través de la red utilizando SCP:

scp user1@192.168.101.210:/home/user1/VM_file.txt /vmfs/volumes/datastore10a/install/

Cómo copiar un archivo desde una máquina Linux remota al host ESXi a través de SCP

Cómo copiar archivos entre dos máquinas remotas

Existen comandos SCP para copiar archivos de una máquina remota a otra máquina remota con y sin copia de datos a través de la máquina local actual. La sintaxis del comando es la siguiente:

scp user1@remote-host1.com://directory/file.txt user2@remote-host2.com://directory/

Los datos se transfieren directamente de un host remoto a otro (sin copiarse a nuestra máquina local actual) con el comando anterior. Si desea enrutar el tráfico a través de la máquina local en la que está ejecutando el comando, utilice el indicador -3 bandera.

Nota: Utilice este comando si las credenciales en ambos hosts remotos son las mismas.

Un ejemplo del comando a ejecutar en una máquina Linux local para copiar un archivo (vim.v00) desde un host ESXi remoto (192.168.101.202) a un host ESXi local (192.168.101.201):

scp root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

Si ve el error Host key verification failed, significa que la clave del host no está almacenada en uno de los hosts. Si el error se debe a un cambio de la clave de host en el servidor remoto, elimine la clave de host antigua para el host remoto actual almacenada en ~/.ssh/known_hosts

El comando para eliminar una clave de host antigua es:

ssh-keygen -R hostname_or_IP_address

Por ejemplo, ejecuta el comando en 192.168.101.202 para eliminar la antigua clave de host para el host remoto 192.168.101.201:

ssh-keygen -R 192.168.101.201

Un ejemplo del uso de -3 en el comando para copiar archivos a través de la máquina local:

scp -3 root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

El comando alternativo para este propósito es:

scp -o "ForwardAgent yes" root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

Cómo copiar archivos mediante SCP desde Windows

También puede copiar archivos en máquinas virtuales o hosts ESXi en Windows. Para ello, es necesario utilizar un cliente SCP como WinSCP, que es una interfaz gráfica cómoda y fácil de usar. Puede descargar WinSCP gratuitamente.

  1. Ejecute WinSCP.
    • Seleccione un protocolo, por ejemplo, SFTP.
    • Introduzca un nombre de host y un número de puerto de un host remoto, como un host ESXi o una máquina Linux.
    • Introduzca el nombre de usuario y la contraseña de una máquina remota.
    • Haga clic en Iniciar sesión.

    En este ejemplo, nos estamos conectando a un host ESXi remoto.

    Conexión a un host ESXi en WinSCP para copiar archivos

  2. Aparece un mensaje de notificación:

    ¿Seguir conectándose a un servidor desconocido y añadir su clave de host a una caché?

    Haga clic en para continuar.

  3. Una vez conectado, verá la ventana de estilo comandante con dos paneles. Un panel representa el directorio en la máquina local y otro panel representa el directorio en la máquina remota. Puede copiar archivos entre el host local y el host remoto copiando archivos entre estos dos paneles.

    Uso de WinSCP para copiar un archivo VM desde y hacia un host ESXi

Puede copiar archivos desde un almacén de datos de un host ESXi remoto al que esté conectado en WinSCP a una máquina virtual o física Windows remota utilizando un recurso compartido SMB en esa máquina Windows.

Sin embargo, no se puede introducir la ruta directa del recurso compartido en un panel WinSCP (por ejemplo, \\2 .168.101.117\c$). Sólo puede seleccionar una letra de unidad de disco. Para evitar esta limitación, conéctese al recurso compartido en el Explorador de Windows y asigne este recurso compartido como unidad de red. Asigne una letra de unidad, por ejemplo, S: como hicimos en este ejemplo, para conectar la carpeta compartida en 192.168.101.211.

Ahora podemos seleccionar S: como unidad de red en el menú desplegable del panel izquierdo de WinSCP, seleccionar los archivos o directorios necesarios en el almacén de datos del servidor ESXi remoto y copiar los archivos en ambas direcciones.

Copia de archivos entre un host ESXi remoto y un recurso compartido SMB remoto mediante WinSCP en Windows

Uso de un recurso compartido NFS

Puede utilizar un recurso compartido NFS para transferir archivos a las máquinas virtuales desde un almacén de datos ESXi y viceversa. ESXi no es compatible con recursos compartidos SMB (nativos de Windows). Es compatible con recursos compartidos NFS (nativos para Linux) y con la conexión de un recurso compartido NFS como almacén de datos. Con esta función, puede utilizar uno de estos enfoques para transferir archivos entre máquinas ESXi y Linux:

Método 1:

  • Configurar un servidor NFS y un recurso compartido NFS en una máquina virtual Linux
  • Adjuntar el recurso compartido NFS como almacén de datos en ESXi
  • Copiar archivos de una máquina virtual a un almacén de datos ESXi y viceversa

Enfoque 2:

  • Configurar un servidor NFS en una máquina física Linux o NAS
  • Adjuntar el recurso compartido NFS como almacén de datos en ESXi
  • Conectarse al recurso compartido NFS en una máquina virtual Linux
  • Copie archivos de una máquina virtual Linux a un recurso compartido NFS y, a continuación, copie estos archivos a un host ESXi. Copie archivos del host ESXi al recurso compartido NFS y copie estos archivos del recurso compartido NFS a la máquina virtual Linux.

Lee la comparativa NFS vs SMB para saber más sobre estos protocolos de intercambio de archivos.

Configuración de un recurso compartido NFS en Linux

En este tutorial utilizamos Linux Ubuntu 20.04. Entramos en Linux como un usuario normal y usamos sudo cuando se necesiten privilegios de root para ejecutar el comando. Realice los siguientes pasos para instalar un servidor NFS y configurar un recurso compartido NFS.

  1. Actualizar el árbol de repositorios en Linux:

    sudo apt-get update

  2. Instale el paquete del servidor NFS en Linux:

    sudo apt-get install nfs-kernel-server -y

  3. Cree un directorio (el directorio de exportación) que se compartirá en el servidor NFS:

    sudo mkdir -p /srv/nfs/share1/

  4. Establezca el propietario y los permisos del directorio creado:

    sudo chown -R nobody:nogroup /srv/nfs/share1/

    sudo chmod 0777 /srv/nfs/share1/

    El nobody es un pseudo usuario para representar al usuario con menos permisos sin acceso al shell. El propósito del grupo nogroup es similar al del usuario nobody.

    Creación de un directorio para un recurso compartido NFS

  5. Configure el archivo de exportación para compartir el directorio creado.

    sudo nano /etc/exports

    o

    sudo vim /etc/exports

  6. Añada la línea en la parte inferior del archivo de configuración:

    /srv/nfs/share1/ CLIENT_IP(rw,sync,no_subtree_check)

    En nuestro caso, la línea con la dirección IP permitida de nuestro host ESXi es:

    /srv/nfs/share1/ 192.168.101.201(rw,sync,no_subtree_check)

    Puede permitir el acceso a todos los hosts de la subred añadiendo la línea:

    /srv/nfs/share1/ 192.168.101.0/24(rw,sync,no_subtree_check)

    Puede añadir la siguiente línea para permitir el acceso de otro host (dirección IP).

    Guarde los cambios en el archivo de configuración y salga del editor de texto.

  7. Para comprobar si los datos se han escrito en el archivo, puede utilizar el comando:

    cat /etc/exports

  8. Aplique la nueva configuración con el comando

    sudo exportfs -a

  9. Asegúrese de que el cortafuegos de la máquina Linux con el servidor NFS permite el acceso. Puede conceder acceso a la dirección IP particular con el comando como:

    sudo ufw allow from IP to any port nfs

    En nuestro caso:

    sudo ufw allow from 192.168.101.201 to any port nfs

    Para permitir el acceso a hosts de toda la subred:

    sudo ufw allow from SUBNET to any port nfs

    En nuestro caso, el comando sería:

    sudo ufw allow from 192.168.101.0/24 to any port nfs

  10. Puede comprobar el estado del cortafuegos con el comando:

    sudo ufw status

  11. Reinicie el servidor NFS para que los cambios de configuración surtan efecto:

    sudo systemctl restart nfs-kernel-server

  12. El recurso compartido NFS se ha configurado en Linux.
  13. Copie un archivo de cualquier directorio de la máquina Linux al directorio compartido a través de NFS. Copiamos VM_file.txt a nuestro recurso compartido NFS y comprobamos el contenido del directorio después de eso:

    cp VM_file.txt /srv/nfs/share1/

    ls -al /srv/nfs/share1/

    Copia de un archivo a un directorio configurado como recurso compartido NFS

Montaje de un almacén de datos NFS en ESXi

Es necesario añadir el almacén de datos NFS en ESXi después de configurar el recurso compartido NFS. Para ello, en este ejemplo utilizamos VMware Host Client.

Vaya a Almacenamiento > Almacenes de datos y haga clic en Nuevo almacén de datos.

Creación de un nuevo almacén de datos para montar el NFS como almacén de datos

Se abre el asistente de nuevo almacén de datos.

  1. Seleccione Montar almacén de datos NFS. Haga clic en Siguiente para continuar.

    Cómo montar un almacén de datos NFS en ESXi

  2. Proporcione detalles de montaje NFS:
    • Nombre: NFS-share (el nombre que se mostrará como nombre del almacén de datos)
    • Servidor NFS: 192.168.101.210
    • Compartición NFS: /srv/nfs/share1/
    • Versión NFS: NFS4<>/li

    El nombre de usuario y la contraseña son opcionales para NFS4. Dejamos estos dos campos vacíos.

    Introducción de los detalles para montar un almacén de datos NFS en ESXi

  3. Listo para completar. Compruebe la configuración y haga clic en Finalizar si todo es correcto.

Copia de archivos de una máquina virtual al host

El almacén de datos NFS se ha montado correctamente. Puede comprobarlo en Storage > Datastores.

Ahora podemos copiar archivos de la VM almacenados en el recurso compartido NFS a un almacén de datos ESXi local (transferir archivos de la VM al host).

  1. Haga clic en Navegador de almacenes de datos.

    Exploración del almacén de datos NFS para copiar un archivo VM

  2. Seleccione su almacén de datos NFS en el navegador de almacenes de datos(NFS-share en nuestro caso). Busque el archivo necesario en el almacén de datos NFS. Seleccione el archivo necesario y haga clic en Copiar.

    Cómo copiar un archivo VM desde una máquina virtual a un almacén de datos ESXi utilizando un recurso compartido NFS

  3. Selecciona el destino. Seleccione la ubicación necesaria en el almacén de datos de destino donde desea almacenar el archivo copiado(datastore10b en nuestro caso). Haz clic en Copiar.

    Copia de un archivo VM a un almacén de datos ESXi en VMware Host Client

    Como alternativa, puede copiar el archivo necesario en la línea de comandos del servidor ESXi:

    cp /vmfs/volumes/NFS-share/VM_file.txt /vmfs/volumes/datastore10b/VM_file-copy.txt

Uso de la Interfaz Web de VMware para descargar/cargar archivos

Puede utilizar una interfaz web de VMware Host Client o VMware vSphere Client para cargar/descargar archivos a/desde un almacén de datos ESXi. La interfaz web está disponible desde cualquier máquina física o virtual en la que esté instalado un navegador web y esté disponible la conexión de red a un host ESXi. Por lo tanto, puede abrir esta interfaz web directamente desde una VM si un SO invitado tiene la GUI o utilizar cualquier máquina local como máquina intermedia para transferir archivos de la VM al host y viceversa.

Cómo copiar un archivo VM - descargar un archivo de disco virtual de un almacén de datos ESXi en VMware Host Client

Existe una forma alternativa pero más compleja de transferir archivos a VMware ESXi desde las máquinas virtuales:

  1. Descargue un disco virtual de la VM en su máquina local o en otra máquina.
  2. Extraiga los archivos necesarios de este disco virtual VM (.vmdk y -flat.vmdk) a una máquina local. Alternativamente, puede montar un disco virtual en una unidad virtual si VMware Workstation está instalado.
  3. Cargue los archivos extraídos o los archivos del disco virtual montado en el almacén de datos del host ESXi mediante uno de los métodos explicados anteriormente (en VMware Host Client, vSphere Client o cliente SCP, etc.).

    Cómo asignar un archivo VMDK como unidad de disco virtual en Windows

Lea la entrada detallada del blog sobre cómo extraer archivos de discos virtuales VMDK.

Uso de archivos ISO para transferir datos a una máquina virtual

Si la conexión de red no está disponible para una VM, puede transferir archivos a VMware VMs utilizando archivos de imagen ISO:

  1. Cree una imagen ISO con software como Ultra ISO para Windows.
  2. Escriba los archivos necesarios en la imagen ISO en su equipo local o en otro equipo. Puede copiar archivos desde ESXi utilizando uno de los métodos anteriores y escribirlos en la imagen ISO.
  3. Monte el archivo de imagen ISO en la máquina virtual utilizando una unidad de CD/DVD virtual de la máquina virtual (puede montar el archivo ISO directamente desde su máquina local o cargar el archivo ISO en un almacén de datos ESXi antes de hacer esto). Utilice VMware Host Client, VMware vSphere Client, VMware Workstation o VMware Remote Console para montar el archivo ISO en la VM ESXi.

Este método no puede utilizarse para transferir archivos de la VM al host porque una VM trabaja con un disco CD/DVD virtual en modo de sólo lectura.

Conclusión

Existen múltiples métodos para copiar archivos a máquinas virtuales desde un host y viceversa. Algunos de ellos requieren una conexión a la red y otros funcionan incluso si la red no está disponible. Puede utilizar el método que más le convenga en su caso y combinar estos métodos. Recuerde hacer backup de sus máquinas virtuales para evitar la pérdida de datos. Con NAKIVO Backup & Replication, puede proteger sus máquinas virtuales en VMware vSphere y recuperar archivos individuales directamente desde una copia de seguridad de VM.

1 Year of Free Data Protection: NAKIVO Backup & Replication

1 Year of Free Data Protection: NAKIVO Backup & Replication

Deploy in 2 minutes and protect virtual, cloud, physical and SaaS data. Backup, replication, instant recovery options.

Artículos recomendados