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

Las máquinas virtuales ofrecen numerosas ventajas, como la flexibilidad, el uso racional de los recursos y la posibilidad de ejecutarse en entornos aislados. Una tarea habitual en los entornos virtuales es copiar archivos entre máquinas virtuales y hosts. Sigue leyendo para aprender a copiar archivos a una máquina virtual desde un host, a transferir archivos de una máquina virtual a un host y a copiar archivos entre máquinas virtuales.

NAKIVO para backup de VMware vSphere

NAKIVO para backup de VMware vSphere

Protección completa de los datos para máquinas virtuales de VMware vSphere y opciones de recuperación instantánea. Destinos de copia de seguridad seguros, tanto locales como externos y en la nube. Funciones antirransomware.

Los Componentes de Nuestro Entorno

Comencemos repasando la terminología:

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

En este tutorial, el entorno utilizado para explicar cómo transferir archivos de una máquina virtual a un anfitrión está compuesto 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
  • Las máquinas virtuales ESXi y las máquinas virtuales de VMware Workstation están 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 y Soltar
  • Dispositivo de almacenamiento USB
  • PowerCLI
  • SSH y SCP
  • Recurso compartido NFS
  • Descargar/Subir archivos en una interfaz web de VMware
  • Archivos ISO

Usar Carpetas Compartidas para Transferir un Archivo de Máquina Virtual al Host

Carpetas Compartidas es una función conveniente de VMware Workstation para transferir archivos entre un anfitrión físico Windows o Linux en el que está instalado VMware Workstation y máquinas virtuales que se ejecutan en VMware Workstation. Para macOS, VMware Fusion es el equivalente de VMware Workstation y admite funciones similares.

Ahora repasemos los pasos para transferir archivos de la máquina virtual a un host y viceversa utilizando 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 anfitrión y una máquina virtual se transfieren utilizando la interacción a través de VMware Tools entre el anfitrión y el SO invitado sin utilizar una red.

  1. Seleccione una máquina virtual para la cual desea configurar recurso compartido de archivos de VMware. Seleccionamos una de nuestras máquinas virtuales con Windows.
  2. Haga clic en VM > Settings (editar la configuración de la máquina virtual) en la interfaz gráfica de usuario de VMware Workstation.
  3. En la ventana Virtual Machine Settings, seleccione la pestaña Options y haga clic en Shared Folders. En la sección Folder sharing , seleccione Always enabled. Opcionalmente, puede mapear una carpeta compartida como una unidad de red en invitados de Windows para más comodidad seleccionando la casilla de verificación.
  4. Haga clic en Add para seleccionar una carpeta para usar como una carpeta compartida.

    VMware sharing folder – how to enable shared folders in VMware Workstation

  5. Ingrese la ruta a la carpeta para compartir en el host o haga clic en Browse y seleccione la carpeta necesaria. Seleccionamos C:tempshare-VM

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

    Haga clic en Next.

    VMware file sharing – configuring shared folders in VMware Workstation

  6. Seleccione Enable this share. Si desea que las máquinas virtuales accedan a la carpeta compartida en modo de solo lectura, seleccione la casilla de verificación Read-only. Haga clic en Finish.

    VMware sharing folder in VMware Workstation and enabling this share

  7. La nueva carpeta compartida ahora se muestra en la lista de carpetas compartidas en la pestaña Options de la ventana Virtual machine settings. Una carpeta compartida está habilitada si la casilla de verificación correspondiente está seleccionada junto al nombre del archivo.

    Haga clic en OK para guardar los ajustes.

    VMware sharing folder – a shared folder is created

  8. Abra la interfaz de usuario de la máquina virtual de Windows utilizada para compartir la carpeta con la función Shared folders.
  9. Haga clic en Network (My Network Places) en My Computer (This PC) o en el Explorador de Windows para ver las computadoras disponibles en la red.
  10. Seleccione vmware-host como el nombre de la computadora en la que está configurada la carpeta compartida. Este nombre se establece por defecto y se mapea a su máquina física (host) con la carpeta compartida.

    How to access a shared folder to copy VMware virtual machine files

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

    vmware-hostShared Foldersshare-VM

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

VMware transfer files from a VMware VM using a shared folder

Para invitados de Linux, puede montar todas las carpetas compartidas de 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 más reciente:

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

Si desea mantener una carpeta compartida montada después del reinicio de la máquina virtual, agregue 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 invitado 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, note que la función de carpetas compartidas está disponible solo en VMware Workstation (y VMware Fusion en macOS), y no está disponible para máquinas virtuales que se ejecutan en hosts ESXi. Para los hosts ESXi, puedes compartir una carpeta manualmente y usar una red para copiar archivos entre máquinas con Windows. Para copiar archivos de una máquina virtual a un host ESXi, deberías usar una herramienta adicional o combinar la copia de archivos desde una carpeta compartida manualmente con uno de los métodos explicados a continuación.

Hay otros métodos para Recurso compartido para compartir una carpeta en Windows 10 y Windows Server 2019. También puedes aprender más sobre el protocolo Compartir archivos en una PYME.

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

IP-Addressc$

Donde:

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

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

Uso del Portapapeles Compartido para Transferir Archivos a Máquinas Virtuales desde un Host

El portapapeles compartido es una función que te permite copiar y pegar contenido como texto y archivos completos desde una máquina virtual a una máquina host en la que se ha instalado VMware Workstation. El proceso es similar al proceso cuando copias y pegas contenido entre diferentes ventanas de aplicaciones en Windows o Linux con el GUI.

La gama completa de funciones está disponible en VMware Workstation, que te 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 una alternativa al copiado y pegado.

Portapapeles Compartido en VMware Workstation

Veamos cómo transferir archivos a máquinas virtuales de VMware Workstation usando un portapapeles compartido y arrastrar y soltar. En nuestro ejemplo, VMware Workstation está instalado en un host con Windows.

  1. Selecciona tu máquina virtual en el panel izquierdo donde se listan las máquinas virtuales.
  2. Haz clic en Edit virtual machine settings (VM > Settings).

    Opening virtual machine settings

  3. Selecciona la pestaña Options y haz clic en Guest Isolation.

    Selecciona dos casillas de verificación:

    • Enable drag and drop
    • Enable copy and paste

    Haz clic en OK para guardar la configuración y cerrar la ventana.

    Enabling shared clipboard and drag & drop to transfer files to VMware VMs

Portapapeles Compartido en VMware ESXi

En cuanto a las máquinas virtuales que se ejecutan en VMware ESXi, no puedes copiar ningún archivo usando arrastrar y soltar o mediante el 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 ejecuta en ESXi y tu máquina local (en la que se ha instalado VMware Workstation o Consola remota de VMware). Copiar y pegar y arrastrar y soltar para 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. De forma predeterminada, el portapapeles compartido está desactivado en la configuración de la máquina virtual de ESXi. Haga lo siguiente en un host de ESXi para habilitar un portapapeles compartido para copiar y pegar datos de texto:

  1. La máquina virtual debe estar apagada al editar la configuración de la máquina virtual. Apague la máquina virtual si está en ejecución.
  2. Abra VM settings. Puede utilizar VMware Host Client y VMware vSphere Client. Seleccione una máquina virtual, haga clic en Edit VM settings y seleccione la pestaña VM options.

    Expanda la sección Advanced Settings y haga clic en Edit Configuration.

    Advanced VM configuration to enable shared clipboard in ESXi

  3. Necesita agregar tres parámetros de configuración a la configuración de la máquina virtual (que se escribe en el archivo de configuración VMX de la máquina virtual). Haga clic en Add parameter.

    Enabling shared clipboard for a VM on VMware ESXi

  4. Agregue estos tres parámetros:

    isolation.tools.copy.disable FALSE

    isolation.tools.paste.disable FALSE

    isolation.tools.setGUIOptions.enable TRUE

  5. Haga clic en OK y guarde los ajustes.

    Configuration parameters to enable shared clipboard are added

Como alternativa, puede editar manualmente un archivo VMX con la configuración de la máquina virtual localizada en un almacén de datos de ESXi en el directorio de la máquina virtual.

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

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

    Locating a VMX configuration file of the VM to enable a shared clipboard

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

    vi Windows-VM.vmx

  4. Agregue los tres parámetros mostrados arriba al final de este archivo de configuración.
  5. Guarde los cambios y cierre el archivo (salga del editor de texto).

    Adding configuration parameters to a VMX file to enable shared clipboard for a VM on an ESXi host

Ahora podemos copiar y pegar texto entre nuestra máquina local y una máquina virtual remota en un host ESXi utilizando VMware Remote Console y VMware Workstation para conectar a una máquina virtual.

Uso de un dispositivo de almacenamiento USB

VMware ESXi y VMware Workstation admiten la función de paso de USB, que le permite insertar un dispositivo USB en una máquina anfitrión y conectar este dispositivo USB a una máquina virtual que se ejecuta en este anfitrión. Puede conectar un dispositivo de almacenamiento USB a una máquina anfitrión y a una máquina virtual de forma secuencial para copiar archivos entre estas máquinas en cualquier dirección.

Nota: VMware Tools debe estar instalado en el sistema operativo invitado de la máquina virtual (OS) para usar la función de paso de USB.

Copia de archivos entre máquinas virtuales de VMware Workstation y el equipo host

Sigue estos pasos para transferir archivos de la máquina virtual al equipo host en VMware Workstation instalado en equipos host con Windows y Linux (la interfaz es la misma):

  1. Enciende la máquina virtual.
  2. Inserta un dispositivo de almacenamiento USB, como un disco duro USB (HDD) o una memoria USB, en un ordenador físico que actúe como equipo host.
  3. Se abre la ventana New USB Device Detected en VMware Workstation. Elige dónde deseas conectar tu dispositivo USB:
    • Conectar al host
    • Conectar 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 con Windows. Si hay varias máquinas virtuales en ejecución en VMware Workstation, debes seleccionar la máquina virtual deseada en la lista. Un dispositivo USB solo se puede conectar a una máquina virtual a la vez. Haz clic en OK para continuar.

    How to transfer files to virtual machines by using a USB storage device

    Si tu dispositivo de almacenamiento USB ya está insertado en el puerto USB del equipo físico en el que está instalado VMware Workstation, la ventana emergente con las opciones de paso a través de USB no se mostrará automáticamente. Puede conectar un dispositivo USB a una máquina virtual (desconectándolo del host) desde el menú:

    Vaya a VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from host).

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

    Connecting a USB flash drive to a VM to copy files between a host and VM

  4. Ahora podemos ver la memoria USB conectada a la máquina virtual con 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 del ratón en My Computer y selecciona Manage.
    • Ve a Computer Management > Device Manager and Computer Management > Disk Management en el complemento correspondiente después de hacer clic con el botón derecho del ratón.

    Si no se asigna automáticamente una letra de unidad, asígnala manualmente en el complemento Disk Management .

    El procedimiento para los sistemas invitados Linux es idéntico. En algunas distribuciones de Linux, es posible que tengas que montar manualmente un dispositivo de almacenamiento USB conectado, como una memoria USB, en el sistema operativo Linux.

  5. Una vez que el dispositivo de almacenamiento USB se haya montado en la máquina virtual y haya sido reconocido por el sistema operativo invitado, copie los archivos necesarios desde la máquina virtual al dispositivo de almacenamiento USB. Ahora también es posible copiar archivos desde el dispositivo de almacenamiento USB a una máquina virtual.

    A USB flash drive is connected to a VM

  6. Después de copiar todos los archivos necesarios desde la máquina virtual a la memoria USB, desconecte la memoria USB de la máquina virtual y conecte este dispositivo USB al host:

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

    How to transfer files from VM to host – disconnecting a USB flash drive from a VM

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

Passthrough USB de VMware Workstation a máquinas virtuales de ESXi

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 remotamente un host de ESXi para conectar esta unidad flash USB a una máquina virtual de ESXi. En el primer caso, se usa el passthrough de USB conectado al host y en el segundo caso, se usa el passthrough de USB 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 de ESXi v7.0 (usando la función de passthrough de USB conectado al cliente). VMware Workstation está instalado en nuestra máquina física con Windows y se conecta al host de ESXi a través de la red (192.168.101.0/24).

Para hacer esto:

  1. Una máquina virtual debe estar apagada para editar la configuración de la máquina virtual.
  2. Asegúrese de que un USB controller está presente en la lista de hardware virtual de la máquina virtual. Puede verificar la configuración de la máquina virtual en VMware Host Client. Seleccione su máquina virtual (Windows-VM en nuestro caso), haga clic en Edit Settings y seleccione la pestaña Virtual Hardware.

    A USB controller must be present on a VM to transfer files to virtual machine with a USB flash drive

  3. Regresemos a VMware Workstation instalado en nuestra máquina local (física) con Windows 10. Haga clic en File > Connect to a server en VMware Workstation para conectar a un host remoto de ESXi.

    Connecting to a remote ESXi server

  4. Ingrese el nombre del servidor ESXi o la dirección IP, nombre de usuario y contraseña. Haga clic en Connect.

    Connecting to a remote ESXi host – entering credentials

  5. Expanda el host de ESXi en el panel izquierdo de VMware Workstation donde se muestran anfitriones remotos, máquinas virtuales remotas en estos anfitriones y máquinas virtuales locales de VMware Workstation.
  6. Seleccione una máquina virtual que se ejecute en un host remoto de ESXi. Seleccionamos Windows-VM que se está ejecutando en 192.168.101.201 . Luego podemos ver una interfaz de usuario de un sistema operativo invitado de la máquina virtual seleccionada.
  7. Haga clic en VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from Host).

    Tenga en cuenta que seleccionamos un dispositivo USB conectado a nuestra máquina física con Windows en la cual VMware Workstation está instalado. Este dispositivo USB no es un dispositivo conectado a un host ESXi físico al cual nos hemos conectado remotamente.

    Connecting a USB flash drive to a VM running on an ESXi host using client-connected USB passthrough

  8. Ahora podemos ver nuestra unidad USB conectada a la máquina virtual de Windows XP ejecutándose en el host ESXi remoto: Start > CMD > compmgmt.msc > Device Manager.

    A USB flash drive is connected to a VM running on an ESXi host and is ready to copy files

  9. Asigne una letra de unidad a la partición del dispositivo USB conectado si no se ha asignado una. Copie los archivos necesarios entre la máquina virtual y el dispositivo USB. Puede transferir archivos a una máquina virtual y desde una máquina virtual.

    Using a USB flash drive to transfer files from VM to host

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

Conectando un Dispositivo USB al host 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. Conectar una unidad flash USB a ESXi es más complicado que hacerlo en una máquina host que ejecuta VMware Workstation.

Existen limitaciones en ESXi con respecto a los sistemas de archivos compatibles que se pueden montar. No se admiten unidades flash USB o discos duros USB con sistemas de archivos FAT32 y NTFS. Por esta razón, necesitamos crear una partición en nuestro dispositivo USB y formatearla con VFAT (que se reconoce en Windows como FAT12). VFAT tiene limitaciones como el tamaño máximo de la partición y el tamaño máximo de archivo. Por tanto, este método no es aplicable para archivos grandes como discos virtuales o imágenes ISO mayores a 4 GB. Sin embargo, estos límites son suficientes para transferir archivos de configuración, controladores, etc.

Creación de una partición en una unidad USB

Primero, vamos a crear una nueva partición en nuestro dispositivo USB y formatearla en VFAT. Podemos hacer esto conectando una unidad flash USB insertada en el servidor ESXi a una máquina virtual (utilizando la función de paso a través de USB conectado al anfitrión). Alternativamente, podemos insertar una unidad flash USB en una máquina física con Windows o Linux.

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

  1. Para asegurarse de que un dispositivo de almacenamiento USB esté conectado a su máquina con Windows, haga clic con el botón derecho My Computer o This PC (o ejecute diskmgmt.msc desde CMD) para abrir Disk Management.
  2. Abra la línea de comandos de Windows:

    Start > Run > cmd

  3. Escribe diskpart en la línea de comandos y pulsa Enter.

    Aparecerá el indicador de Diskpart:

    Diskpart

  4. Muestra la lista de discos conectados a tu equipo con Windows:

    list disk

    Busca tu memoria USB en la lista resultante y anota el número de disco. En nuestro caso, Disk 1 es el número de nuestra memoria USB (véase la captura de pantalla a continuación).

  5. Selecciona tu memoria USB indicando el número de disco correspondiente que has obtenido de la salida del comando anterior (disk 1 en nuestro caso).

    select disk 1

  6. Mostrar las particiones de la memoria USB seleccionada:

    list partition

    Tenemos una partición (Partition 1) en nuestra memoria USB (véase la captura de pantalla siguiente). Lo más habitual es tener una sola partición en una memoria USB.

    Listing disks to identify a USB flash drive that can be used to copy files from a VM to an ESXi host

    A continuación, debemos eliminar las particiones de la memoria USB.

    Importante: Se eliminarán todos los datos de la memoria USB. Si es necesario, puede copiar los datos de la memoria USB antes de continuar con los siguientes pasos.

  7. Selecciona una partición de la memoria USB que vayas a eliminar:

    select partition 1

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

    delete partition

  9. Vuelve a seleccionar la memoria USB como disco:

    select disk 1

    Selecting the first partition on a USB flash drive in Diskpart

  10. Crea una nueva partición con el 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. Ten en cuenta que VFAT solo admite el formato de nombre de archivo 8.3.

    create partition primary size=4000 id=6

  11. Formatea la partición creada de esta manera para garantizar la compatibilidad con ESXi:

    format fs=fat quick

    Formatting a partition in VFAT transfer files from VM to host (ESXi)

  12. Sal de la utilidad diskpart (ejecuta el comando exit ).

La memoria USB ya está lista para que ESXi la reconozca y para copiar archivos. Después de algunos pasos adicionales de configuración de ESXi, puedes conectar una memoria USB a una máquina virtual y copiar los archivos necesarios a la memoria USB.

Supongamos que necesitamos copiar un archivo ZIP con controladores. En nuestro ejemplo, hemos copiado net-tulip.zip a una memoria USB. Siguiente paso: montar una partición de la memoria USB insertada en un servidor ESXi desde la línea de comandos de ESXi.

Configuración de un anfitrión ESXi para usar 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 luego copiar un archivo de configuración de máquina virtual desde un almacén de datos ESXi a una unidad flash USB. El nombre del archivo es net-tulip.zip en nuestro ejemplo. Hacer lo siguiente en el anfitrión ESXi para transferir archivos a VMware ESXi desde una unidad flash USB y viceversa:

  1. La configuración se realiza en el interfaz de línea de comandos. Por esta razón, debe habilitar el acceso SSH en un Host ESXi.
    • Para habilitar el acceso remoto a SSH en DCUI, vaya a Troubleshooting options > Enable SSH.
    • Para habilitar el acceso remoto a SSH y el servidor SSH en ESXi en VMware Host Client, vaya a Host > Manage y seleccione la pestaña Services. Haga clic derecho en TSM-SSH y presione Start para iniciar el servicio. Puede habilitar este servicio de forma permanente.

    Starting the SSH server service on an ESXi host to allow remote management in the command line

  2. Conéctese al anfitrión ESXi a través de SSH para usar la línea de comandos. Puede usar su cliente SSH favorito.
  3. Detener el servicio de árbitro USB:

    /etc/init.d/usbarbitrator stop

    El árbitro USB habilita automáticamente la función de pasarela USB para máquinas virtuales que residen en un anfitrión ESXi (solo necesita seleccionar una unidad flash USB en los ajustes de máquina virtual apropiada para usar esta función).

  • Si desea deshabilitar el servicio de árbitro USB después de un reinicio de ESXi (permanentemente), puede usar el comando:

    chkconfig usbarbitrator off

    Para habilitar el servicio de árbitro USB, utilice el comando adecuado:

    /etc/init.d/usbarbitrator start

    chkconfig usbarbitrator on

  1. Comandos opcionales para verificar los dispositivos USB conectados a un anfitrión ESXi:

    lsusb

    esxcli storage core device list | grep -i usb

    esxcli storage filesystem list

    Puede ver /var/log/usb.log para verificar el estado de un dispositivo USB.

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

    ls -ltrh /vmfs/devices/disks/

    Nuestra unidad flash USB es mpx.vmhba32:C0:T0:L0: (vea la captura de pantalla abajo).

    Por lo tanto, la dirección completa/ubicación del disco es:

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

    Viewing disk devices connected to an ESXi host to identify a USB flash drive

  4. Verifique 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 archivos. Ejecute el siguiente comando y presione 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 en una unidad flash USB se llama NO NAME

    A USB flash drive connected to an ESXi host has the NO NAME volume label

  6. Verifique el contenido del directorio raíz de la unidad flash USB

    ls -al /vmfs/volumes/NO NAME/

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

    How to transfer files from VM to host using a USB flash drive connected to ESXi

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

    cd /vmfs/volumes/datastore10a

    mkdir install

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

    Selecting a VM file that can be copied to a USB flash drive from an ESXi datastore

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

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

  9. Compruebe si el archivo ha sido copiado:

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

    El archivo ha sido copiado con éxito.

    How to copy file from VM to host in the ESXi command line interface

De manera similar, puede copiar archivos en la dirección opuesta, copiar archivos de ESXi a una unidad flash USB y luego copiar el archivo necesario a una máquina virtual o a otra máquina desde esta unidad flash USB.

  1. Verifique el contenido de la carpeta de la máquina virtual:

    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. Verifique si el archivo fue copiado a la unidad flash USB:

    ls -al /vmfs/volumes/NO NAME/

    Copying a VM file from an ESXi host to a USB flash drive

Después de finalizar la copia de archivos en el host ESXi, puede expulsar la unidad flash USB e iniciar el servicio de arbitraje USB en el host ESXi. Luego puede insertar la unidad flash USB y usar la función de paso USB conectada al host para adjuntar la unidad USB a la máquina virtual.

Leer más sobre Pasarela USB para ESXi y conectar un dispositivo de almacenamiento USB insertado en un host ESXi a una máquina virtual que reside en el host ESXi.

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

Otro método para transferir archivos de la máquina virtual al host es usar comandos PowerCLI (cmdlets). Las herramientas de VMware deben estar instaladas en un sistema operativo invitado dentro de una máquina virtual. Estos cmdlets de PowerShell utilizan las herramientas de VMware para copiar archivos hacia/desde máquinas virtuales que residen en un host ESXi. Por lo tanto, no necesitas la red si ejecutas comandos dentro de una máquina virtual que reside en el host ESXi de origen/destino.

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

  1. Conectar a un host ESXi o servidor vCenter. Nos conectamos a un host ESXi en este ejemplo.

    Connect-VIServer 192.168.101.201

    Connecting to an ESXi host in VMware PowerCLI

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

    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

    How to disable a certificate warning in VMware vSphere PowerCLI

Copiar-ArchivoInvitadoVM (máquina virtual > ESXi local)

Usa el siguiente comando para copiar un archivo desde una máquina local (una máquina donde PowerCLI está ejecutándose a una máquina virtual remota en un host ESXi):

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

Dónde:

c:temptest.txt es el archivo de origen que queremos copiar desde la máquina local

-LocalToGuest es la dirección (desde la máquina local al sistema operativo invitado en una máquina virtual de destino que ejecuta en ESXi)

-VM Windows-VM es la definición del nombre de la máquina virtual de destino

c:temp-VM es la carpeta de destino en la máquina virtual de destino (donde queremos guardar una copia del archivo)

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

Password es la contraseña para este usuario.

Ignoramos la advertencia sobre la versión de las herramientas de VMware y verificamos si nuestro archivo text.txt ha sido copiado.

How to copy file to virtual machine in PowerCLI

Podemos ver que nuestro archivo test.txt, cuyo tamaño es de 29 bytes, fue copiado con éxito a la máquina virtual de Windows XP que ejecuta en un host ESXi.

A file has been copied to a VMware VM

Copiar-ArchivoInvitadoVM (máquina virtual ESXi > Local)

Ahora, vamos a copiar un archivo desde el sistema operativo invitado de la máquina virtual a un directorio local de la máquina donde se ejecuta el comando:

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

Dónde:

-Source "c:temp-VMtest2.txt" es la ruta al archivo de origen en la máquina virtual que ejecuta en ESXi

-GuestToLocal es la dirección (desde un sistema operativo invitado de la máquina virtual 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 máquina virtual de destino. Este usuario debe tener acceso a la carpeta de destino definida.

Password es la contraseña para este usuario en el sistema operativo invitado.

How to copy a file from a virtual machine in PowerCLI

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

get-help Copy-VMGuestFile -examples

Usando Copiar-ElementoAlmacénDatos

El cmdlet de PowerShell Copy-DatastoreItem se utiliza para copiar archivos hacia/desde un almacén de datos ESXi. Existen 2 enfoques para usar este cmdlet para copiar un archivo al almacén de datos de VMware ESXi:

  • Si PowerCLI está instalado en un sistema operativo Windows invitado dentro de la máquina virtual, puede ejecutar un comando para copiar un archivo directamente desde un almacén de datos de ESXi a una máquina virtual y viceversa.
  • Si no puede instalar PowerCLI en una máquina virtual que reside en un host ESXi, puede ejecutar comandos de PowerCLI desde su máquina Windows local, copiar archivos desde un almacén de datos de 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 Copy-VMGuestFile.

Debe estar conectado a un servidor ESXi o al servidor vCenter. Puede hacer esto con el comando:

ViConnect <server_name_or_IP>

Estamos conectados directamente al host ESXi.

Copiemos un archivo de configuración de una máquina virtual 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 máquina virtual en un host ESXi):

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

    Get-Datastore "datastore10a"

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

    $datastore = Get-Datastore "datastore10a"

  3. Cree una nueva unidad de PowerShell, nombrada como ds:, que mapea a $datastore:

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

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

    Set-Location ds:

  5. Para listar archivos y directorios en el directorio seleccionado, use el comando:

    Get-ChildItem

    Preparing to copy files from an ESXi host

  6. Puede establecer el directorio de la máquina virtual como una nueva ubicación. En nuestro caso, este directorio es Windows-VM

    Set-Location "Windows-VM"

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

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

    Dónde:

    ds:Windows-VMWindows-VM.vmx es la ruta hacia un archivo que debe ser copiado y ds: es el atajo definido hacia un almacén de datos (datstore10a en este caso).

    Copying a file from an ESXi datastore in PowerCLI

  • Si ha conectado a vCenter (no a un host ESXi particular como lo hicimos en este ejemplo), puede usar el siguiente comando definiendo un almacén de datos en el centro de datos vCenter para copiar un archivo desde el almacén de datos de ESXi a una carpeta en una máquina local:

    Copy-DatastoreItem vmstore:Datacenter1datastore10aWindows-VMWindows-VM.vmx c:temp

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

    Copy-DatastoreItem -Item c:tempdarwin.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.

    Copy file to VMware ESXi datastore in PowerCLI

  • Si estás conectado a vCenter, puedes usar este comando para copiar un archivo desde una máquina Windows local al almacén de datos en un host ESXi remoto:

    Copy-DatastoreItem c:tempdarwin.iso -Destination vmstore:Datacenter1datastore10ainstall

Puedes usar estos cmdlets de PowerCLI y crear scripts de PowerShell para transferir archivos de una máquina virtual a un host y viceversa.

Comandos para copiar archivos de una máquina virtual a un host en VMware Workstation

Si utilizas VMware Workstation (que es un hipervisor tipo 2) en tu host Windows o Linux (o VMware Fusion en macOS), también puedes usar la interfaz de línea de comandos para copiar archivos de la máquina virtual al host y viceversa. Puedes usar la herramienta de línea de comandos vmrun para operar con máquinas virtuales. La sintaxis de los comandos es la misma para Windows, Linux y macOS (VMware Fusion). Usamos VMware Workstation 15 en Windows 10 en este tutorial.

  1. Ve al directorio de VMware Workstation:

    cd "C:Program Files (x86)VMwareVMware Workstation"

  2. Utiliza el comando como sigue para copiar un archivo desde el sistema operativo invitado dentro de la máquina virtual al host local de Windows:

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

    En nuestro caso, el comando exacto es:

    vmrun copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied"

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

    Donde:

    d:virtualWinServer2019WinServer2019.vmx es un disco virtual de la máquina virtual desde el que copiamos el archivo.

    c:temptest.txt es un archivo almacenado en el disco virtual de una máquina virtual; este es un archivo que copiamos.

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

    Asegúrate de usar el carácter de barra invertida al establecer una ruta. Hemos copiado test.txt que es un archivo de texto desde una máquina virtual al host.

    Alternativamente, puedes ejecutar un comando definiendo credenciales en el comando:

    vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied"

    How to transfer files from VM to host by using the vmrun command

Para copiar un archivo en dirección inversa (desde una máquina host a una máquina virtual), usa el comando así:

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

Nuestro comando particular en este ejemplo es:

vmrun copyFileFromHostToGuest d:virtualWinServer2019WinServer2019.vmx "c:temptest3.txt" "c:temptest3-copy.txt"

How to copy files to virtual machine by using vmrun

Cómo Transferir Archivos Usando SSH y SCP

SSH (Secure Shell) es un protocolo común para gestionar de manera segura hosts remotos confiando en el cifrado. SCP es un protocolo que se basa en SSH para copiar archivos de manera segura a través de la red. Puedes usar SCP para transferir archivos de la máquina virtual al host, especialmente si Linux está en ejecución en la máquina virtual. Un servidor SCP y SSH se puede habilitar 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 usar 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 y comience el servicio TSM-SSH.
  2. Se debe permitir SSH en el firewall de ESXi para permitir el tráfico SCP al transferir archivos desde un host ESXi además de conectarse a otras máquinas utilizando SCP desde este host ESXi:
    • Vaya a Networking en el panel Navigator, seleccione la pestaña Firewall rules y seleccione SSH Client.
    • Haga clic en Actions > Enable para habilitar la regla de firewall.

    Enabling SSH access in the ESXi firewall

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

    nc -z 192.168.101.202 22

    Donde:

    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 predeterminado).

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

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

[user]@[SRC_HOST]:path_to_file1 – un archivo de origen

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

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

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

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

Para copiar un archivo local a una máquina remota a través de SCP, use el comando como:

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

Desde Linux

Copiemos el archivo LinuxDir.txt desde una máquina Ubuntu Linux local (que también puede ser una máquina virtual) 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 install en el 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/

How to copy a file to a remote ESXi host via 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 la bandera -r para copiar un directorio con todos los archivos incluidos:

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

Desde ESXi

Puede utilizar comandos scp en un host ESXi. La sintaxis scp en la línea de comandos es la misma para Linux y ESXi. Se debe configurar un servidor SSH en la máquina remota. Iniciemos sesión en el host ESXi ( 192.168.101.201 ) y copiemos el directorio install con todos los archivos contenidos en el directorio principal de user1 en la máquina Linux remota ( 192.168.101.210 ).

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

How to copy a file from an ESXi host to a remote machine via SCP

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

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

Cómo copiar un archivo desde una máquina remota a una local vía SCP

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

Copiando archivos a una máquina Linux local

Vamos a copiar un archivo del host ESXi remoto a la máquina Linux actual usando SCP. Para hacer esto, use el comando como:

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

Copiemos un archivo darwin.iso desde el servidor ESXi remoto al directorio principal definido en la máquina Linux:

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

How to copy a file from a remote ESXi datastore to the current Linux machine via SCP

Copiando archivos a un host ESXi local

Si iniciamos sesión en un host ESXi, podemos ejecutar el comando para copiar un archivo de máquina virtual 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 usando SCP:

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

How to copy a file from a remote Linux machine to the ESXi host via SCP

Cómo copiar archivos entre dos máquinas remotas

Hay comandos SCP para copiar archivos de una máquina remota a otra máquina remota con y sin copiar 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 ser copiados a nuestra máquina local actual) con el comando anterior. Si desea enrutar el tráfico a través de su máquina local en la que está ejecutando el comando, use la bandera -3.

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

Un ejemplo del comando para 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 es causado por cambiar la clave del host en el servidor remoto, elimine la clave del 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 clave de host antigua del 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 del equipo 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 fin 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 puedes copiar archivos a máquinas virtuales o hosts ESXi en Windows. Para ello, debes utilizar un cliente SCP como WinSCP, que cuenta con una interfaz gráfica fácil de usar y muy práctica. Puedes Descargar WinSCP de forma gratuita.

  1. Ejecuta WinSCP.
    • Selecciona un protocolo; por ejemplo, SFTP.
    • Introduce el nombre de host y el número de puerto de un host remoto, como un host ESXi o un equipo Linux.
    • Introduce el nombre de usuario y la contraseña del equipo remoto.
    • Haga clic en Login.

    En este ejemplo, nos conectamos a un host ESXi remoto.

    Connecting to an ESXi host in WinSCP to copy files

  2. Aparece un mensaje de notificación:

    Continue connecting to unknown server and add its host key to a cache?

    Haga clic en Yes para continuar.

  3. Una vez conectado, verá una ventana tipo «commander» con dos paneles. Un panel representa el directorio de la máquina local y el otro, el directorio de la máquina remota. Puede copiar archivos entre el host local y el host remoto arrastrando y soltando archivos entre estos dos paneles.

    Using WinSCP to copy a VM file from and to an ESXi host

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 Windows remota o a una máquina física utilizando un recurso compartido SMB en esa máquina Windows.

Sin embargo, no puede introducir la ruta directa del recurso compartido en un panel de WinSCP (por ejemplo, 192.168.101.117c$). Solo puede seleccionar una letra de unidad de disco. Para sortear esta limitación, conéctese al recurso compartido de archivos en el Explorador de Windows y asigne este recurso compartido como una unidad de red. Asigne una letra de unidad, por ejemplo, S: tal y como hemos hecho en este ejemplo, para conectarse a 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 archivos en ambas direcciones.

Copying files between a remote ESXi host and remote SMB share by using WinSCP in Windows

Uso de recursos compartidos NFS

Puedes utilizar recursos compartidos NFS para transferir archivos a máquinas virtuales desde un almacén de datos de ESXi y viceversa. ESXi no admite recursos compartidos SMB (nativos de Windows). Sí admite recursos compartidos NFS (nativos de Linux) y la conexión de un recurso compartido NFS como almacén de datos. Con esta función, puede utilizar uno de estos métodos para transferir archivos entre máquinas ESXi y Linux:

Método 1 :

  • Configurar un servidor NFS y recursos compartidos NFS en una máquina virtual Linux
  • Conectar los recursos compartidos NFS como almacén de datos en ESXi
  • Copiar archivos desde una máquina virtual a un almacén de datos de ESXi y viceversa

Método 2 :

  • Configurar un servidor NFS en una máquina física con Linux o Instalación en NAS
  • Conectar los recursos compartidos NFS como un almacén de datos en ESXi
  • Conectarse a los recursos compartidos NFS en una máquina virtual Linux
  • Copiar archivos desde una máquina virtual Linux a un recurso compartido NFS y, a continuación, copiar dichos archivos a un host ESXi. Copiar archivos desde el host ESXi al recurso compartido NFS y copiar dichos archivos desde el recurso compartido NFS a la máquina virtual Linux.

Lee la NFS frente a SMB comparación para obtener más información sobre estos protocolos de uso compartido de archivos.

Configuración de recursos compartidos NFS en Linux

En este tutorial utilizamos Linux Ubuntu 20.04. Iniciamos sesión en Linux como usuario normal y utilizamos sudo cuando se necesitan privilegios de usuario root para ejecutar el comando. Sigue los siguientes pasos para instalar un servidor NFS y configurar recursos compartidos NFS.

  1. Actualiza el árbol de repositorios en Linux:

    sudo apt-get update

  2. Instala el paquete del servidor NFS en Linux:

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

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

    sudo mkdir -p /srv/nfs/share1/

  4. Establece 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 que representa al usuario con los mínimos permisos y sin acceso al shell. La finalidad del grupo nogroup es similar a la del usuario nobody .

    Creating a directory for an NFS share

  5. Configura el archivo exports para compartir el directorio creado.

    sudo nano /etc/exports

    o

    sudo vim /etc/exports

  6. Añade la línea al final 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)

    Puedes 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)

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

    Guarda los cambios en el archivo de configuración y cierra el editor de texto.

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

    cat /etc/exports

  8. Aplica la nueva configuración con el comando:

    sudo exportfs -a

  9. Asegúrate de que el cortafuegos de la máquina Linux que aloja el servidor NFS permita el acceso. Puedes conceder acceso a una dirección IP concreta con un comando como este:

    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 los 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. Puedes comprobar el estado del cortafuegos con el comando:

    sudo ufw status

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

    sudo systemctl restart nfs-kernel-server

  12. Los recursos compartidos NFS se han configurado en Linux.
  13. Copia un archivo desde 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, a continuación, comprobamos el contenido del directorio:

    cp VM_file.txt /srv/nfs/share1/

    ls -al /srv/nfs/share1/

    Copying a file to a directory configured as an NFS share

Montar un almacén de datos NFS en ESXi

Es necesario añadir el almacén de datos NFS en ESXi después de configurar los recursos compartidos NFS. En este ejemplo utilizamos VMware Host Client para hacerlo.

Vaya a Storage > Datastores y haga clic en New datastore.

Creating a new datastore to mount the NFS as a datastore

Se abre el asistente New datastore .

  1. Seleccione Mount NFS datastore. Haga clic en Next para continuar.

    How to mount an NFS datastore in ESXi

  2. Proporcione los 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
    • Recursos compartidos NFS: /srv/nfs/share1/
    • Versión NFS: NFS4

    El nombre de usuario y la contraseña son opcionales para NFS4. Dejamos estos dos campos en blanco.

    Entering the details to mount an NFS datastore in ESXi

  3. Listo para finalizar. Comprueba tu configuración y haz clic en Finish si todo es correcto.

Copia de archivos desde 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 desde la máquina virtual almacenados en los recursos compartidos NFS a un almacén de datos local de ESXi (transferir archivos de la máquina virtual al host).

  1. Haga clic en Datastore Browser.

    Browsing the NFS datastore to copy a VM file

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

    How to copy a VM file from a virtual machine to an ESXi datastore using an NFS share

  3. Seleccione 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). Haga clic en Copy.

    Copying a VM file to an ESXi datastore in VMware Host Client

    Alternativamente, puede copiar el archivo necesario en la línea de comandos en el 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/Enviar Archivos

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

How to copy a VM file - downloading a virtual disk file from an ESXi datastore in VMware Host Client

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

  1. Descargue un disco virtual de la máquina virtual a su máquina local u otra máquina.
  2. Extraiga los archivos necesarios de este disco virtual de la máquina virtual (.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. Suba los archivos extraídos o los archivos del disco virtual montado al almacén de datos del host ESXi utilizando uno de los métodos explicados arriba (en el Cliente de Host de VMware, Cliente de vSphere o cliente SCP, etc.).

    How to map a VMDK file as a virtual disk drive in Windows

Lea la publicación detallada en el blog sobre Cómo extraer archivos de discos virtuales VMDK.

Uso de Archivos ISO para Transferencia de Datos a una Máquina Virtual

Si la conexión de red no está disponible para una máquina virtual, puede transferir archivos a máquinas virtuales de VMware usando archivos de imagen ISO:

  1. Cree una imagen ISO con software como Ultra ISO para Windows.
  2. Escriba los archivos necesarios a la imagen ISO en su máquina local u otra máquina. Puede copiar archivos desde ESXi usando uno de los métodos anteriores y escribirlos en la imagen ISO.
  3. Monte el archivo de imagen ISO a la máquina virtual usando una unidad de CD/DVD virtual de la máquina virtual (puede montar el archivo ISO directamente desde su máquina local o subir el archivo ISO a un almacén de datos de ESXi antes de hacer esto). Use Cliente de Host de VMware, Cliente de VMware vSphere, Estación de Trabajo de VMware o Consola Remota de VMware para montar el archivo ISO a la máquina virtual ESXi.

Este método no puede usarse para transferir archivos de la máquina virtual al host porque una máquina virtual trabaja con un disco de CD/DVD virtual en modo de solo 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 de red y otros funcionan incluso si no hay red disponible. Puedes utilizar el método que mejor se adapte a tu situación y combinar estos métodos. Recuerda hacer una copia de seguridad de tus máquinas virtuales para evitar la pérdida de datos. Con NAKIVO Backup & Replication, puedes proteger tus máquinas virtuales en VMware vSphere y recuperar archivos individuales directamente desde un backup de máquina virtual.

Prueba NAKIVO Backup & Replication

Prueba NAKIVO Backup & Replication

Solicita una versión de prueba gratuita para descubrir todas las funciones de protección de datos de la solución. 15 días gratis. Sin limitaciones de funciones ni de capacidad. No es necesario facilitar un número de tarjeta de crédito.

Artículos recomendados