I modi più efficaci per trasferire file da una VM a un host

Le VM offrono numerosi vantaggi, quali flessibilità, uso razionale delle risorse ed esecuzione in ambienti isolati. Un’operazione comune negli ambienti virtuali consiste nel copiare file tra VM e host. Continua a leggere per scoprire come copiare file da un host a una VM, come trasferire file da una VM a un host e come copiare file tra VM.

NAKIVO per il backup di VMware vSphere

NAKIVO per il backup di VMware vSphere

Protezione completa dei dati per le macchine virtuali VMware vSphere e opzioni di ripristino istantaneo. Destinazioni di backup sicure onsite, offsite e nel cloud. Funzioni anti-ransomware.

I componenti del nostro ambiente

Iniziamo con un ripasso della terminologia:

  • Un host è una macchina fisica su cui è installato un hypervisor.
  • Un hypervisor è un software di virtualizzazione che consente di eseguire VM sull’host. Esistono due tipi di hypervisor:
    • Tipo 1: utilizzo di un server ESXi, che funge da macchina host
    • Tipo 2: Utilizzo di VMware Workstation; in questo caso, Windows e Linux possono essere i sistemi operativi della macchina host

In questa guida, l’ambiente utilizzato per spiegare come trasferire file dalla macchina virtuale all’host è costituito dai seguenti componenti:

  • Host VMware ESXi 1: 192.168.101.201
  • Host VMware ESXi 2: 192.168.101.202
  • Macchina Ubuntu Linux: 192.168.101.210
  • Host Windows con VMware Workstation installato
  • Rete: 192.168.101.0/24
  • Macchine virtuali ESXi e macchine virtuali VMware Workstation connesse alla stessa rete

Utilizziamo le seguenti tecnologie per copiare file tra macchine virtuali e host:

  • Cartelle condivise
  • Appunti condivisi e trascinamento della selezione
  • Dispositivo di storage USB
  • PowerCLI
  • SSH e SCP
  • condivisione NFS
  • Scarica/Caricare file nell’interfaccia web di VMware
  • File ISO

Utilizzo delle cartelle condivise per trasferire un file della macchina virtuale all’host

Cartelle condivise è una comoda funzione di VMware Workstation che consente di trasferire file tra un host fisico Windows o Linux su cui è installato VMware Workstation e le VM in esecuzione su VMware Workstation. Per macOS, VMware Fusion è l’equivalente di VMware Workstation e supporta funzionalità simili.

Vediamo ora i passaggi per trasferire file da una macchina virtuale all’host e viceversa utilizzando le cartelle condivise di VMware.

Nota: Affinché questa funzione funzioni, VMware Tools deve essere installato su una macchina virtuale. I dati tra l’host e la macchina virtuale vengono trasferiti tramite l’interazione di VMware Tools tra l’host e il sistema operativo guest senza utilizzare una rete.

  1. Selezionare una macchina virtuale per la quale si desidera configurare la condivisione file di VMware. Selezioniamo una delle nostre VM Windows.
  2. Fare clic su VM > Settings (Modifica impostazioni VM) nell’interfaccia grafica di VMware Workstation.
  3. Nella finestra Virtual Machine Settings , selezionare la scheda Options e fare clic su Shared Folders. Nella sezione Folder sharing , selezionare Always enabled. Se lo si desidera, è possibile mappare una cartella condivisa come unità di rete nei sistemi guest Windows per maggiore comodità, selezionando la casella di controllo.
  4. Fare clic su Add per selezionare una cartella da utilizzare come cartella condivisa.

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

  5. Immettere il percorso della cartella da condividere sull’host oppure fare clic su Browse e selezionare la cartella desiderata. Selezioniamo C:tempshare-VM

    Inserisci un nome per la cartella condivisa, ad esempio share-VM

    Fai clic su Next.

    VMware file sharing – configuring shared folders in VMware Workstation

  6. Seleziona Enable this share. Se desideri che le macchine virtuali accedano alla cartella condivisa in modalità di sola lettura, seleziona la casella di controllo Read-only . Fai clic su Finish.

    VMware sharing folder in VMware Workstation and enabling this share

  7. La nuova cartella condivisa viene ora visualizzata nell’elenco delle cartelle condivise nella scheda Options della finestra Virtual machine settings . Una cartella condivisa è abilitata se la casella di controllo corrispondente accanto al nome del file è selezionata.

    Fai clic su OK per salvare le impostazioni.

    VMware sharing folder – a shared folder is created

  8. Aprire l’interfaccia utente della macchina virtuale Windows utilizzata per condividere la cartella tramite la funzione Shared folders .
  9. Fare clic su Network (My Network Places) in My Computer (This PC) o in Esplora risorse per visualizzare i computer disponibili in rete.
  10. Selezionare vmware-host come nome del computer su cui è configurata la cartella condivisa. Questo nome è impostato per impostazione predefinita ed è associato al computer fisico (host) con la cartella condivisa.

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

  11. Fare clic su Shared Folders e selezionare la cartella condivisa desiderata (share-VM nel nostro esempio). Il percorso completo della cartella condivisa, nel nostro caso, è

    vmware-hostShared Foldersshare-VM

È possibile copiare file da un host a una VM e da una VM a un host. Nel nostro esempio abbiamo copiato Test01.txt da un host Windows a un guest Windows utilizzando la condivisione file di VMware in VMware Workstation.

VMware transfer files from a VMware VM using a shared folder

Per i guest Linux, è possibile montare tutte le cartelle condivise di VMware con il comando riportato di seguito:

  • In Linux con kernel precedente alla versione 4.0:

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

  • In Linux con kernel 4.0 o versioni più recenti:

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

Se si desidera mantenere una cartella condivisa montata dopo il riavvio della macchina virtuale, aggiungere le righe appropriate con il commento e la configurazione riportati in /etc/fstab , ad esempio:

#

Cartella di condivisione VMware per trasferire file tra macchina virtuale ospite e host VMware

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

Prima di passare alla sezione avanti, si noti che la funzione delle cartelle condivise è disponibile solo in VMware Workstation (e VMware Fusion su macOS), e non è disponibile per le VM in esecuzione su Host VMware ESXi. Per gli host ESXi, è possibile condividere una cartella manualmente e utilizzare una rete per copiare file tra macchine Windows. Per copiare file da una VM a un host ESXi, è necessario utilizzare uno strumento aggiuntivo oppure combinare la copia dei file da una cartella condivisa manualmente con uno dei metodi illustrati di seguito.

Esistono altri metodi per Condivisione di una cartella in Windows 10 e Windows Server 2019. È inoltre possibile scoprire di più sul protocollo Condivisione file SMB .

Se si dispone di un account Windows con diritti amministrativi e un criterio di sicurezza consente l’accesso alle condivisioni amministrative nascoste disponibili per impostazione predefinita, è possibile accedere ai file sui dischi locali di un computer Windows utilizzando il percorso della condivisione come:

IP-Addressc$

Dove:

IP-Address è un indirizzo IP o un nome host di un computer Windows remoto.

C$ è la lettera dell’unità disco necessaria su un computer Windows remoto che rappresenta una condivisione di sistema nascosta.

Utilizzo degli appunti condivisi per trasferire file alle VM da un host

Gli appunti condivisi sono una funzione che consente di copiare e incollare contenuti come testo e interi file da una VM a una macchina host su cui è installato VMware Workstation. Il processo è simile a quello utilizzato per copiare e incollare contenuti tra diverse finestre di applicazioni in Windows o Linux tramite l’interfaccia grafica.

L’intera gamma di funzioni è disponibile in VMware Workstation, che consente di trasferire file alle VM da un host e a un host da una VM. È possibile trascinare e rilasciare i file in alternativa al copia-incolla.

Appunti condivisi in VMware Workstation

Vediamo come trasferire file alle VM di VMware Workstation utilizzando gli appunti condivisi e il trascinamento. Nel nostro esempio, VMware Workstation è installato su un host Windows.

  1. Selezionare la VM nel riquadro di sinistra in cui sono elencate le VM.
  2. Fare clic su Edit virtual machine settings (VM > Settings).

    Opening virtual machine settings

  3. Selezionare la scheda Options e fare clic su Guest Isolation.

    Selezionare due caselle di controllo:

    • Enable drag and drop
    • Enable copy and paste

    Fare clic su OK per salvare le impostazioni e chiudere la finestra.

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

Appunti condivisi in VMware ESXi

Per quanto riguarda le VM in esecuzione su VMware ESXi, non è possibile copiare alcun file tramite trascinamento o tramite gli appunti condivisi tra una VM su un Host VMware ESXi e qualsiasi altra macchina. L’unica opzione è copiare e incollare testo tra una VM in esecuzione su ESXi e la macchina locale (su cui è installato VMware Workstation o Console remota VMware ). Il copia-incolla e il trascinamento dei file non sono supportati per motivi di sicurezza. Tuttavia, se non è possibile copiare un file di configurazione, ad esempio, è possibile copiare il contenuto testuale del file utilizzando gli appunti condivisi. Per impostazione predefinita, gli appunti condivisi sono disabilitati nella configurazione della macchina virtuale ESXi. Per abilitare gli appunti condivisi e consentire il copia-incolla dei dati testuali, procedere come segue su un host ESXi:

  1. La macchina virtuale deve essere spenta durante la modifica della configurazione della macchina virtuale. Spegnere la macchina virtuale se è in esecuzione.
  2. Aprire VM settings. È possibile utilizzare VMware Host Client e VMware vSphere Client. Selezionare una macchina virtuale, fare clic su Edit VM settings e selezionare la scheda VM options .

    Espandere la sezione Advanced Settings e fare clic su Edit Configuration.

    Advanced VM configuration to enable shared clipboard in ESXi

  3. È necessario aggiungere tre parametri di configurazione alla configurazione della macchina virtuale (che vengono scritti nel file VMX di configurazione della macchina virtuale). Fare clic su Add parameter.

    Enabling shared clipboard for a VM on VMware ESXi

  4. Aggiungere questi tre parametri:

    isolation.tools.copy.disable FALSE

    isolation.tools.paste.disable FALSE

    isolation.tools.setGUIOptions.enable TRUE

  5. Fare clic su OK e salvare le impostazioni.

    Configuration parameters to enable shared clipboard are added

In alternativa, è possibile modificare manualmente un file VMX contenente la configurazione della VM, che ha la sua ubicazione in un archivio dati ESXi nella directory della VM.

  1. Accedere alla shell ESXi localmente o tramite SSH.
  2. Andare alla directory della VM (la directory in cui sono archiviati i file della VM su un archivio dati). Nel nostro caso, andiamo in questa directory:

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

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

  3. Modifica il file di configurazione VMX. Nel nostro caso, il file è Windows-VM.vmx

    vi Windows-VM.vmx

  4. Aggiungi i tre parametri mostrati sopra alla fine di questo file di configurazione.
  5. Salva le modifiche e chiudi il file (esci dall’editor di testo).

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

Ora possiamo copiare e incollare testo tra il nostro computer locale e una VM remota in esecuzione su un Host VMware ESXi utilizzando VMware Remote Console e VMware Workstation per connetterci a una VM.

Utilizzo di un dispositivo di storage USB

VMware ESXi e VMware Workstation supportano la funzione di passthrough USB, che consente di inserire un dispositivo USB in un host e di collegare tale dispositivo USB a una VM in esecuzione su tale host. È possibile collegare un dispositivo di archiviazione USB a una macchina host e a una VM in sequenza per copiare file tra queste macchine in entrambe le direzioni.

Nota: Per utilizzare la funzione di passthrough USB, è necessario che VMware Tools sia installato sul sistema operativo (OS) guest della VM.

Copia di file tra macchine virtuali VMware Workstation e l’host

Per trasferire file dalla macchina virtuale all’host in VMware Workstation installato su host Windows e Linux (l’interfaccia è unificata), procedere come segue:

  1. Accendere la macchina virtuale.
  2. Inserire un dispositivo di storage USB, ad esempio un disco rigido USB (HDD) o una chiavetta USB, in un computer fisico che funge da macchina host.
  3. La finestra New USB Device Detected si apre in VMware Workstation. Scegliere dove si desidera collegare il dispositivo USB:
    • Collegare alla macchina host
    • Collegare a una VM

    Selezioniamo la seconda opzione e colleghiamo la nostra chiavetta USB alla VM. In questo esempio stiamo eseguendo una VM Windows. Se su VMware Workstation sono in esecuzione più VM, è necessario selezionare quella desiderata dall’elenco. Un dispositivo USB può essere collegato a una sola VM alla volta. Fare clic su OK per procedere.

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

    Se il dispositivo di archiviazione USB è già stato inserito nella porta USB del computer host fisico su cui è installato VMware Workstation, la finestra a comparsa con le opzioni di passthrough USB non verrà visualizzata automaticamente. È possibile collegare un dispositivo USB a una VM (scollegandolo dall’host) dal menu:

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

    Nel nostro esempio, il nome della chiavetta USB è Kingston DataTraveler 2.0.

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

  4. Ora possiamo vedere la chiavetta USB collegata alla VM Windows 7 nell’elenco delle unità disco di “Risorse del computer” (Esplora risorse). Per verificare il dispositivo di storage USB:
    • Fai clic con il tasto destro del mouse su My Computer e seleziona Manage.
    • Vai su Computer Management > Device Manager and Computer Management > Disk Management nello snap-in appropriato dopo aver fatto clic con il tasto destro del mouse.

    Se una lettera di unità non viene assegnata automaticamente, assegnala manualmente nello snap-in Disk Management .

    La procedura per i sistemi guest Linux è identica. In alcune distribuzioni Linux, potrebbe essere necessario montare manualmente un dispositivo di storage USB collegato, come una chiavetta USB, nel sistema operativo Linux.

  5. Una volta che il dispositivo di archiviazione USB è stato montato sulla VM e riconosciuto dal sistema operativo guest, copiare i file necessari dalla VM al dispositivo di archiviazione USB. Ora è possibile anche copiare file dal dispositivo di archiviazione USB a una VM.

    A USB flash drive is connected to a VM

  6. Dopo aver copiato tutti i file necessari dalla VM alla chiavetta USB, scollegare la chiavetta USB dalla VM e collegare questo dispositivo USB all’host:

    Fai clic su 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 di storage USB è ora collegato a una macchina host (nel nostro caso, un computer Windows su cui è in esecuzione VMware Workstation). È possibile trasferire i file copiati dalla macchina virtuale (VM) sulla chiavetta USB al computer host.

Pass-through USB da VMware Workstation alle macchine virtuali ESXi

È possibile utilizzare una chiavetta USB inserita in un server ESXi e collegata al proprio computer locale Windows o Linux (su cui è installato VMware Workstation o VMware Remote Console (VMRC)), che si sta utilizzando per gestire in remoto un host VMware ESXi, per collegare tale chiavetta USB a una macchina virtuale ESXi. Nel primo caso viene utilizzato il pass-through USB collegato all’host, mentre nel secondo caso viene utilizzato il pass-through USB collegato al client.

Colleghiamo una chiavetta USB inserita nel nostro computer fisico locale con Windows 10 a una VM Windows XP in esecuzione su un host ESXi v7.0 (utilizzando la funzione di pass-through USB collegata al client). VMware Workstation è installato sul nostro computer fisico Windows ed è connesso all’host VMware ESXi tramite la rete (192.168.101.0/24).

Per farlo:

  1. Una macchina virtuale deve essere spenta per poter modificare le sue impostazioni.
  2. Assicurarsi che una USB controller sia presente nell’elenco dell’hardware virtuale della macchina virtuale. È possibile verificare la configurazione della VM in VMware Host Client. Selezionare la propria VM (Windows-VM nel nostro caso), fare clic su Edit Settings e selezionare la scheda Virtual Hardware .

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

  3. Torniamo ora a VMware Workstation installato sul nostro computer locale (fisico) con Windows 10. Fare clic su File > Connect to a server in VMware Workstation per connettersi a un host VMware ESXi remoto.

    Connecting to a remote ESXi server

  4. Inserire il nome del server VMware ESXi o l’indirizzo IP, il nome utente e la password. Fare clic su Connect.

    Connecting to a remote ESXi host – entering credentials

  5. Espandere l’host VMware ESXi nel riquadro sinistro di VMware Workstation, dove vengono visualizzati gli host remoti, le macchine virtuali remote su tali host e le macchine virtuali locali di VMware Workstation.
  6. Selezionare una macchina virtuale in esecuzione su un host VMware ESXi remoto. Selezioniamo Windows-VM in esecuzione su 192.168.101.201 . A questo punto è possibile visualizzare l’interfaccia utente del sistema operativo guest della macchina virtuale selezionata.
  7. Fare clic su VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from Host).

    Si noti che selezioniamo un dispositivo USB collegato al nostro computer fisico Windows su cui è installato VMware Workstation. Questo dispositivo USB non è un dispositivo collegato a un host ESXi fisico a cui ci siamo collegati in remoto.

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

  8. Ora possiamo vedere la nostra chiavetta USB collegata alla macchina virtuale Windows XP in esecuzione sull’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. Assegnare una lettera di unità alla partizione della chiavetta USB collegata, se non è stata ancora assegnata. Copiare i file necessari tra la macchina virtuale e la chiavetta USB. È possibile trasferire file verso una macchina virtuale e da una macchina virtuale.

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

  10. Dopo aver copiato i file, è possibile scollegare il dispositivo di archiviazione USB dalla macchina virtuale e ricollegarlo al computer fisico locale con Windows 10 su cui è in esecuzione VMware Workstation. Nell’interfaccia grafica di VMware Workstation, fare clic su VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

Collegamento di una chiavetta USB su ESXi

Questo metodo è estremamente utile in alcuni casi, ad esempio se è necessario aggiornare un driver di rete su un Host VMware ESXi e non è possibile utilizzare la rete. Il collegamento di una chiavetta USB a ESXi è più complicato rispetto al collegamento a un host su cui è in esecuzione VMware Workstation.

Su ESXi esistono limitazioni relative ai file system supportati che possono essere montati su ESXi. Le chiavette USB o gli HDD USB con file system FAT32 e NTFS non sono supportati. Per questo motivo, è necessario creare una partizione sulla chiavetta USB e formattarla con VFAT (che in Windows viene riconosciuto come FAT12). Il VFAT presenta alcune limitazioni, quali la dimensione massima della partizione e la dimensione massima dei file. Pertanto, questo metodo non è applicabile a file di grandi dimensioni, come dischi virtuali o immagini ISO superiori a 4 GB. Tuttavia, tali limiti sono sufficienti per trasferire file di configurazione, driver, ecc.

Creazione di una partizione su una chiavetta USB

Innanzitutto, creiamo una nuova partizione sulla nostra chiavetta USB e formattiamola in VFAT. Possiamo farlo collegando una chiavetta USB inserita nel server ESXi a una VM (utilizzando la funzione di passthrough USB collegata all’host). In alternativa, possiamo inserire una chiavetta USB in una macchina fisica con Windows o Linux.

In questo esempio, utilizziamo un computer con Windows 7 per preparare una chiavetta USB per ESXi. I comandi per Windows Server 2008R2, Windows 10 e altre versioni più recenti di Windows sono gli stessi.

  1. Per assicurarsi che una chiavetta USB sia collegata al computer Windows, fare clic con il tasto destro del mouse su My Computer o This PC (oppure eseguire diskmgmt.msc dal CMD) per aprire Disk Management.
  2. Aprire la riga di comando di Windows:

    Start > Run > cmd

  3. Digita diskpart nella riga di comando e premi Enter.

    Verrà visualizzato il prompt di diskpart:

    Diskpart

  4. Elenca i dischi collegati al tuo computer Windows:

    list disk

    Individua la tua chiavetta USB nell’elenco dei risultati e prendi nota del numero del disco. Nel nostro caso, Disk 1 è il numero della nostra chiavetta USB (vedi lo screenshot qui sotto).

  5. Seleziona la tua chiavetta USB specificando il numero di disco corrispondente che hai ricavato dall’output del comando precedente (disk 1 nel nostro caso).

    select disk 1

  6. Elenca le partizioni sulla chiavetta USB selezionata:

    list partition

    Sulla nostra chiavetta USB è presente una partizione (Partition 1) (vedi lo screenshot qui sotto). Avere una sola partizione su una chiavetta USB è il caso più comune.

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

    Avanti, dobbiamo eliminare le partizioni presenti sulla chiavetta USB.

    Importante: Tutti i dati presenti sulla chiavetta USB verranno eliminati. Se necessario, è possibile copiare i dati dalla chiavetta prima di procedere con i passaggi avanti.

  7. Selezionare una partizione sulla chiavetta USB che si intende eliminare:

    select partition 1

  8. Eseguire il comando per eliminare la partizione selezionata:

    delete partition

  9. Selezionare nuovamente il disco corrispondente alla chiavetta USB:

    select disk 1

    Selecting the first partition on a USB flash drive in Diskpart

  10. Creare una nuova partizione con file system VFAT. In questo esempio, creiamo una partizione da 4 GB sulla nostra chiavetta USB. Tenere presente che su VFAT non è possibile memorizzare file di dimensioni superiori a 4 GB. Si noti che VFAT ha supporto solo per il formato dei nomi file 8.3.

    create partition primary size=4000 id=6

  11. Formattare la partizione creata in questo modo per garantire la compatibilità con ESXi:

    format fs=fat quick

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

  12. Uscire dall’utilità diskpart (eseguire il comando exit ).

La chiavetta USB è ora pronta per essere riconosciuta da ESXi e per la copia dei file. Dopo alcuni ulteriori passaggi di configurazione di ESXi, è possibile collegare una chiavetta USB a una VM e copiare i file necessari sulla chiavetta USB.

Supponiamo di dover copiare un archivio ZIP contenente i driver. Nel nostro esempio abbiamo copiato il file net-tulip.zip su una chiavetta USB. Avanti, dobbiamo montare una partizione della chiavetta USB inserita in un server ESXi tramite la riga di comando di ESXi.

Configurazione di un host ESXi per l’utilizzo di una chiavetta USB

Supponiamo di dover copiare un archivio ZIP contenente un driver da una chiavetta USB a un archivio dati ESXi e, successivamente, copiare un file di configurazione della VM da un archivio dati ESXi a una chiavetta USB. Nel nostro esempio, i nomi dei file sono net-tulip.zip . Per trasferire i file da una chiavetta USB a VMware ESXi e viceversa, procedere come segue sull’host VMware ESXi:

  1. La configurazione viene effettuata in interfaccia a riga di comando. Per questo motivo, è necessario abilitare l’accesso SSH su un Host ESXi.
    • Per abilitare l’accesso SSH remoto in DCUI, andare su Troubleshooting options > Enable SSH.
    • Per abilitare l’accesso SSH remoto e il server SSH su ESXi in VMware Host Client, andare su Host > Manage e selezionare la scheda Services . Fare clic con il tasto destro del mouse su TSM-SSH e selezionare Start per avviare il servizio. È possibile abilitare questo servizio in modo permanente.

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

  2. Connettersi all’host ESXi tramite SSH per utilizzare la riga di comando. È possibile utilizzare il proprio client SSH preferito.
  3. Arrestare il servizio USB Arbitrator:

    /etc/init.d/usbarbitrator stop

    USB Arbitrator abilita automaticamente la funzione di passthrough USB per le VM residenti su un host ESXi (è sufficiente selezionare una chiavetta USB nelle impostazioni della VM corrispondente per utilizzare questa funzione).

  • Se si desidera disabilitare il servizio USB Arbitrator dopo il riavvio di ESXi (in modo permanente), è possibile utilizzare il comando:

    chkconfig usbarbitrator off

    Per abilitare il servizio USB Arbitrator, utilizzare il comando appropriato:

    /etc/init.d/usbarbitrator start

    chkconfig usbarbitrator on

  1. Comandi opzionali per verificare i dispositivi USB collegati a un host ESXi:

    lsusb

    esxcli storage core device list | grep -i usb

    esxcli storage filesystem list

    È possibile consultare /var/log/usb.log per verificare lo stato di un dispositivo USB.

  2. Potrebbe essere necessario scollegare e ricollegare un dispositivo di storage USB dopo aver arrestato il servizio USB Arbitrator.
  3. Elencare i dispositivi disco a blocchi per individuare/identificare la chiavetta USB (o l’HDD USB) collegata.

    ls -ltrh /vmfs/devices/disks/

    La nostra chiavetta USB è mpx.vmhba32:C0:T0:L0: (vedere la schermata qui sotto).

    Pertanto, l’ubicazione completa del disco è:

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

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

  4. Verificare il numero di partizione del dispositivo USB per assicurarsi di aver identificato il dispositivo disco corretto:

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

    In base all’output, l’ID completo del dispositivo, tenendo conto del numero di partizione nel nostro caso, è:

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

  5. Individuare la cartella radice di una chiavetta USB per definire il percorso di origine/destinazione per la copia dei file. Eseguire il seguente comando e premere Tab per visualizzare gli elementi disponibili nella directory dei volumi. La directory /volumes/ del file system ESXi è una directory in cui vengono montate le partizioni con i file system.

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

    Il volume su una chiavetta USB è denominato NO NAME

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

  6. Controlla il contenuto della directory principale della chiavetta USB

    ls -al /vmfs/volumes/NO NAME/

    Il nostro archivio ZIP è presente sul volume della chiavetta USB.

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

  7. Abbiamo creato la cartella install sul datastore ESXi (datastore10a) con i comandi:

    cd /vmfs/volumes/datastore10a

    mkdir install

    Nello screenshot qui sotto, puoi anche vedere la directory della VM di cui copieremo in seguito il file di configurazione dall’archivio dati ESXi alla chiavetta USB.

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

  8. Copiare l’archivio ZIP dalla chiavetta USB nella cartella di installazione “ ” ( ) sul nostro host ESXi (su datastore10a).

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

  9. Verificare che il file sia stato copiato:

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

    Il file è stato copiato correttamente.

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

Allo stesso modo, è possibile copiare i file nella direzione opposta: copiare i file da ESXi su una chiavetta USB e poi copiare il file necessario su una VM o su un’altra macchina da questa chiavetta USB.

  1. Verificare il contenuto della cartella della VM:

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

  2. Copiare il file di configurazione Windows-VM.vmx da un archivio dati ESXi su una chiavetta USB:

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

  3. Verificare se il file è stato copiato sulla chiavetta USB:

    ls -al /vmfs/volumes/NO NAME/

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

Dopo aver terminato la copia dei file sull’host ESXi, è possibile espellere la chiavetta USB e avviare il servizio di arbitraggio USB sull’host ESXi. A questo punto è possibile inserire la chiavetta USB e utilizzare la funzione di passthrough USB collegata all’host per collegare la chiavetta USB alla VM.

Ulteriori informazioni su Pass-through USB per ESXi e sul collegamento di un dispositivo di storage USB inserito in un Host VMware ESXi a una VM presente sull’Host VMware ESXi.

Utilizzo di PowerCLI per trasferire file alle VM VMware

Un altro metodo per trasferire file dalla VM all’host consiste nell’utilizzare i PowerCLI comandi (cmdlet). VMware Tools deve essere installato nel sistema operativo guest all’interno di una macchina virtuale. Questi cmdlet di PowerShell utilizzano VMware Tools per copiare file da e verso macchine virtuali presenti su un Host VMware ESXi. Pertanto, non è necessaria la connessione di rete se si eseguono i comandi all’interno di una macchina virtuale presente sull’Host VMware ESXi di origine o di destinazione.

Per copiare file tra macchine virtuali, è possibile utilizzare il cmdlet Copy-VMGuestFile e altri cmdlet disponibili in VMware vSphere PowerCLI.

  1. Connettersi a un host ESXi o a vCenter Server. In questo esempio ci connettiamo a un host ESXi.

    Connect-VIServer 192.168.101.201

    Connecting to an ESXi host in VMware PowerCLI

  • Per evitare l’avvertenza relativa al certificato, eseguire il comando:

    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

    How to disable a certificate warning in VMware vSphere PowerCLI

Copy-VMGuestFile (macchina virtuale ESXi locale > )

Utilizzare il seguente comando per copiare un file da un computer locale (un computer su cui è in esecuzione PowerCLI) a una macchina virtuale remota su un host ESXi:

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

Dove:

c:temptest.txt è il file di origine che si desidera copiare dal computer locale

-LocalToGuest indica la direzione (dal computer locale al sistema operativo guest su una macchina virtuale di destinazione in esecuzione su ESXi)

-VM Windows-VM è la definizione del nome della macchina virtuale di destinazione

c:temp-VM è la cartella di destinazione sulla macchina virtuale di destinazione (dove si desidera salvare la copia del file)

user1 è il nome utente nel sistema operativo guest (OS) sulla macchina virtuale di destinazione. Questo utente deve avere accesso alla cartella di destinazione specificata.

Password è la password di questo utente.

Ignoriamo l’avvertenza relativa alla versione di VMware Tools e verifichiamo se il nostro file text.txt è stato copiato.

How to copy file to virtual machine in PowerCLI

Possiamo vedere che il nostro file test.txt , la cui dimensione è di 29 byte, è stato copiato con successo sulla macchina virtuale Windows XP in esecuzione su un host ESXi.

A file has been copied to a VMware VM

Copy-VMGuestFile (macchina virtuale ESXi > locale)

Ora, copiamo un file dal sistema operativo guest della macchina virtuale in una directory locale della macchina su cui viene eseguito il comando:

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

Dove:

-Source "c:temp-VMtest2.txt" è il percorso del file di origine sulla VM in esecuzione su ESXi

-GuestToLocal indica la direzione (dal sistema operativo guest della VM ESXi al computer locale su cui viene eseguito il comando)

"c:temp" è il percorso della cartella di destinazione sul computer locale

user1 è il nome utente nel sistema operativo guest sulla VM di destinazione. Questo utente deve avere accesso alla cartella di destinazione specificata.

Password è la password di questo utente nel sistema operativo guest

How to copy a file from a virtual machine in PowerCLI

È possibile vedere esempi di utilizzo del cmdlet Copy-VMGuestFile con il comando:

get-help Copy-VMGuestFile -examples

Utilizzo di Copy-DatastoreItem

Il cmdlet di PowerShell Copy-DatastoreItem viene utilizzato per copiare file da e verso un archivio dati ESXi. Esistono due metodi per utilizzare questo cmdlet per copiare un file in un archivio dati VMware ESXi:

  • Se PowerCLI è installato su un sistema guest Windows all’interno della VM, è possibile eseguire un comando per copiare un file direttamente da un archivio dati ESXi a una VM e viceversa.
  • Se non è possibile installare PowerCLI su una VM ospitata su un host ESXi, è possibile eseguire i comandi PowerCLI dal proprio computer Windows locale, copiare i file da un archivio dati ESXi al computer locale con il comando Copy-VMGuestFile e quindi copiare questi file dal computer locale a una VM con il comando Copy-VMGuestFile.

È necessario essere connessi a un server ESXi o a vCenter Server. È possibile farlo con il comando:

ViConnect <server_name_or_IP>

Siamo connessi direttamente all’host ESXi.

Copiamo un file di configurazione della VM dall’archivio dati alla macchina Windows corrente (la macchina su cui eseguiamo questi comandi – può anche essere una VM su un host ESXi):

  1. Ottenere le informazioni relative all’archivio dati:

    Get-Datastore "datastore10a"

  2. Ottenere un oggetto archivio dati ESXi:

    $datastore = Get-Datastore "datastore10a"

  3. Creare una nuova unità PowerShell, denominata ds: che si mappa su $datastore:

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

  4. Impostare il proprio archivio dati come ubicazione corrente:

    Set-Location ds:

  5. Per elencare i file e le directory nella directory selezionata, utilizzare il comando:

    Get-ChildItem

    Preparing to copy files from an ESXi host

  6. È possibile impostare la directory della VM come nuova ubicazione. Nel nostro caso, questa directory è Windows-VM

    Set-Location "Windows-VM"

  7. Il comando per copiare il file della VM, ovvero il file di configurazione VMX, dall’archivio dati ESXi definito alla cartella temporanea sul computer corrente:

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

    Dove:

    ds:Windows-VMWindows-VM.vmx è il percorso del file da copiare e ds: è il collegamento definito a un archivio dati (datstore10a in questo caso).

    Copying a file from an ESXi datastore in PowerCLI

  • Se ci si è connessi a vCenter (e non a un particolare host ESXi come abbiamo fatto in questo esempio), è possibile utilizzare il seguente comando, specificando un archivio dati nel datacenter di vCenter, per copiare un file dal datastore ESXi a una cartella su un computer locale:

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

  • Per copiare un file nella direzione opposta (connettendosi a un host ESXi), utilizzare il comando:

    Copy-DatastoreItem -Item c:tempdarwin.iso -Destination ds:install

    Copiamo darwin.iso (si tratta di un’immagine con VMware Tools per macOS) da un computer Windows alla directory di installazione su un archivio dati ESXi.

    Copy file to VMware ESXi datastore in PowerCLI

  • Se sei connesso a vCenter, puoi utilizzare questo comando per copiare un file da un computer Windows locale a un archivio dati su un host VMware ESXi remoto:

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

Puoi utilizzare questi cmdlet di PowerCLI e creare script PowerShell per trasferire file dalla macchina virtuale all’host e viceversa.

Comandi per copiare file da una VM a un host in VMware Workstation

Se si utilizza VMware Workstation (che è un hypervisor di tipo 2) sul proprio host Windows o Linux (o VMware Fusion su macOS), è anche possibile utilizzare l’interfaccia a riga di comando per copiare file dalla VM all’host e viceversa. È possibile utilizzare lo strumento da riga di comando vmrun per gestire le VM. La sintassi dei comandi è la stessa per Windows, Linux e macOS (VMware Fusion). In questo tutorial utilizziamo VMware Workstation 15 su Windows 10.

  1. Accedere alla directory di VMware Workstation:

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

  2. Utilizzare il comando seguente per copiare un file dal sistema operativo ospite all’interno della VM all’host Windows locale:

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

    Nel nostro caso, il comando esatto è:

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

  3. Inserisci un nome utente e la password corrispondente quando richiesto (l’utente deve disporre di privilegi sufficienti per accedere al file specificato).

    Dove:

    d:virtualWinServer2019WinServer2019.vmx è un disco virtuale della VM da cui copiamo il file.

    c:temptest.txt è un file memorizzato sul disco virtuale di una VM; questo è il file che copiamo.

    c:tempcopied è una directory in cui salvare la copia del file sulla macchina host.

    Assicurati di utilizzare il carattere barra rovesciata quando imposti un percorso. Abbiamo copiato test.txt che è un file di testo da una VM all’host.

    In alternativa, puoi eseguire un comando definendo le credenziali all’interno del comando stesso:

    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

Per copiare un file in direzione opposta (da una macchina host a una VM), utilizza il comando in questo modo:

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

Il comando specifico in questo esempio è:

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

How to copy files to virtual machine by using vmrun

Come trasferire file utilizzando SSH e SCP

SSH (Secure Shell) è un protocollo comune per la gestione sicura di host remoti basato sulla crittografia. SCP è un protocollo che si avvale di SSH per copiare file in modo sicuro attraverso la rete. È possibile utilizzare SCP per trasferire file da una VM all’host, specialmente se sulla VM è in esecuzione Linux. È possibile abilitare un server SCP e SSH su macchine Linux e ESXi in pochi passaggi.

Come abilitare un server SSH in ESXi

Per utilizzare questo metodo e trasferire file verso e da VMware ESXi, è necessario abilitare il servizio del server SSH su un host ESXi.

  1. Per abilitare un server SSH in VMware Host Client, accedere a Host > Manage > Services e avviare il servizio TSM-SSH .
  2. SSH deve essere consentito nel firewall di ESXi per permettere il traffico SCP necessario al trasferimento di file da un host ESXi, nonché alla connessione ad altre macchine tramite SCP da questo host ESXi:
    • Accedere a Networking nel pannello Navigator , selezionare la scheda Firewall rules e selezionare SSH Client.
    • Fare clic su Actions > Enable per abilitare la regola del firewall.

    Enabling SSH access in the ESXi firewall

  3. Per verificare la connessione SSH tra gli host, è possibile eseguire questo comando su un host ESXi:

    nc -z 192.168.101.202 22

    Dove:

    192.168.101.202 è l’indirizzo IP di un host remoto.

    22 è il numero di porta per la connessione SSH (22 è il numero di porta predefinito).

La sintassi generale del scp comando per copiare file tramite SCP in rete:

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

[user]@[SRC_HOST]:path_to_file1 – un file di origine

[user]@[DEST_HOST]:path_to_file2 – un file di destinazione

-P specifica un numero di porta per la connessione SSH (utilizzare questo flag se il numero di porta non è 22).

Di seguito, spieghiamo gli esempi specifici nella pratica.

Come copiare un file locale su una macchina remota tramite SCP

Per copiare un file locale su una macchina remota tramite SCP, utilizzare un comando del tipo:

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

Da Linux

Copiamo il file LinuxDir.txt da una macchina locale con Ubuntu Linux (che può anche essere una VM) a un host ESXi in rete utilizzando SCP. La ubicazione di destinazione sull’host ESXi remoto è la directory install sul archivio dati datastore10a . L’indirizzo IP dell’host ESXi remoto è 192.168.101.201 .

Il comando per copiare il file dalla macchina Linux locale all’host ESXi remoto nel nostro caso è:

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

How to copy a file to a remote ESXi host via SCP

È possibile archiviare il file copiato sulla macchina di destinazione con un nuovo nome:

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

Utilizzare il flag -r per copiare una directory con tutti i file in essa contenuti:

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

Da ESXi

È possibile utilizzare i comandi scp su un host ESXi. La sintassi scp nella riga di comando è la stessa sia per Linux che per ESXi. È necessario configurare un server SSH sulla macchina remota. Accediamo all’host ESXi ( 192.168.101.201 ) e copiamo la directory install con tutti i file in essa contenuti nella directory home di user1 sulla macchina 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

Se il server SSH ascolta su una porta diversa dalla 22, utilizzare il parametro -P ; ad esempio, se il numero di porta SSH è 8022, il comando è:

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

Come copiare un file da una macchina remota a una locale tramite SCP

SCP è utile per copiare file da una macchina remota a quella locale, il che consente anche di trasferire file dalla macchina virtuale all’host. Di seguito spieghiamo come eseguire i comandi appropriati in Linux e ESXi.

Copia di file su un computer Linux locale

Copieremo un file dall’host ESXi remoto al computer Linux corrente utilizzando SCP. Per farlo, utilizzare un comando del tipo:

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

Copiamo un darwin.iso file dal server ESXi remoto alla directory home definita sul computer 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

Copia di file su un host ESXi locale

Se effettuiamo l’accesso a un host ESXi, possiamo eseguire il comando per copiare un file di una VM da una macchina Linux remota a un archivio dati sull’host ESXi locale. Copiamo VM_file.txt dalla macchina Linux alla directory dell’archivio dati ESXi tramite la rete utilizzando 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

Come copiare file tra due macchine remote

Esistono comandi SCP per copiare file da una macchina remota a un’altra, con o senza il passaggio dei dati attraverso la macchina locale corrente. La sintassi del comando è la seguente:

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

Con il comando sopra riportato, i dati vengono trasferiti direttamente da un host remoto a un altro (senza essere copiati sulla nostra macchina locale corrente). Se si desidera instradare il traffico attraverso la macchina locale su cui si sta eseguendo il comando, utilizzare il flag -3

Nota: Utilizzare questo comando se le credenziali su entrambi gli host remoti sono le stesse.

Un esempio del comando da eseguire su una macchina Linux locale per copiare un file (vim.v00) da un host ESXi remoto (192.168.101.202) a un host ESXi locale (192.168.101.201):

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

Se viene visualizzato l’errore Host key verification failed , significa che la chiave host non è memorizzata su uno degli host. Se l’errore è causato dalla modifica della chiave host sul server remoto, eliminare la vecchia chiave host relativa all’host remoto corrente memorizzata in ~/.ssh/known_hosts

Il comando per eliminare una vecchia chiave host è: ssh-keygen -R hostname_or_IP_address

Ad esempio, esegui il comando su 192.168.101.202 per rimuovere la vecchia chiave host per l’host remoto 192.168.101.201:

ssh-keygen -R 192.168.101.201

Un esempio di utilizzo di -3 nel comando per copiare file tramite il computer locale:

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

Il comando alternativo per questo scopo è:

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

Come copiare file tramite SCP da Windows

È inoltre possibile copiare file su VM o host ESXi in Windows. A tal fine, è necessario utilizzare un client SCP come WinSCP, che offre un’interfaccia grafica intuitiva e comoda. È possibile Scarica WinSCP gratuitamente.

  1. Avviare WinSCP.
    • Selezionare un protocollo, ad esempio, SFTP.
    • Inserire il nome host e il numero di porta di un host remoto, come un host ESXi o una macchina Linux.
    • Inserire il nome utente e la password della macchina remota.
    • Fare clic su Login.

    In questo esempio, ci stiamo collegando a un host ESXi remoto.

    Connecting to an ESXi host in WinSCP to copy files

  2. Viene visualizzato un messaggio di notifica:

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

    Fare clic su Yes per continuare.

  3. Una volta stabilita la connessione, viene visualizzata una finestra in stile Commander con due pannelli. Un pannello rappresenta la directory sul computer locale, mentre l’altro rappresenta la directory sul computer remoto. È possibile copiare file tra l’host locale e quello remoto trascinandoli da un pannello all’altro.

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

È possibile copiare file da un archivio dati di un host ESXi remoto a cui ci si è connessi in WinSCP a una VM Windows remota o a un computer fisico utilizzando una condivisione SMB su quel computer Windows.

Tuttavia, non è possibile inserire il percorso diretto della condivisione in un pannello di WinSCP (ad esempio, 192.168.101.117c$). È possibile selezionare solo una lettera di unità. Per aggirare questa limitazione, connettersi alla condivisione file in Esplora risorse e mappare questa condivisione come unità di rete. Assegnare una lettera di unità, ad esempio S: come abbiamo fatto in questo esempio, per connettersi alla cartella condivisa su 192.168.101.211 .

Ora è possibile selezionare S: come unità di rete nel menu a discesa nel riquadro sinistro di WinSCP, selezionare i file o le directory necessari sull’archivio dati del server ESXi remoto e copiare i file in entrambe le direzioni.

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

Utilizzo di una condivisione NFS

È possibile utilizzare una condivisione NFS per trasferire file alle VM da un archivio dati ESXi e viceversa. ESXi non supporta le condivisioni SMB (native per Windows). Supporta invece le condivisioni NFS (native per Linux) e il collegamento di una condivisione NFS come archivio dati. Utilizzando questa funzione, è possibile ricorrere a uno dei seguenti approcci per trasferire file tra macchine ESXi e Linux:

Approccio 1 :

  • Configurare un server NFS e una condivisione NFS su una VM Linux
  • Collegare la condivisione NFS come archivio dati su ESXi
  • Copiare file da una VM a un archivio dati ESXi e viceversa

Approccio 2 :

  • Configurare un server NFS su una macchina fisica Linux oppure NAS
  • Collegare la condivisione NFS come archivio dati su ESXi
  • Connettersi alla condivisione NFS su una VM Linux
  • Copiare i file da una VM Linux a una condivisione NFS, quindi copiare questi file su un host ESXi. Copiare i file dall’host ESXi alla condivisione NFS e copiare questi file dalla condivisione NFS alla VM Linux.

Leggi il NFS vs SMB confronto per scoprire di più su questi protocolli di condivisione file.

Configurazione di una condivisione NFS su Linux

In questo tutorial utilizziamo Linux Ubuntu 20.04. Abbiamo effettuato l’accesso a Linux come utente normale e utilizziamo sudo quando sono necessari i privilegi di utente root per eseguire il comando. Esegui i seguenti passaggi per installare un server NFS e configurare una condivisione NFS.

  1. Aggiornare l’albero dei repository in Linux:

    sudo apt-get update

  2. Installare il pacchetto del server NFS su Linux:

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

  3. Creare una directory (la directory di esportazione) che verrà condivisa sul server NFS:

    sudo mkdir -p /srv/nfs/share1/

  4. Impostare il proprietario e i permessi per la directory creata:

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

    sudo chmod 0777 /srv/nfs/share1/

    L’utente nobody è uno pseudo-utente che rappresenta l’utente con i permessi minimi e senza accesso alla shell. Lo scopo del gruppo nogroup è simile a quello dell’utente nobody .

    Creating a directory for an NFS share

  5. Configurare il file exports per condividere la directory creata.

    sudo nano /etc/exports

    oppure

    sudo vim /etc/exports

  6. Aggiungere la riga in fondo al file di configurazione:

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

    Nel nostro caso, la riga con l’indirizzo IP consentito del nostro host ESXi è:

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

    È possibile consentire l’accesso a tutti gli host della sottorete aggiungendo la riga:

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

    È possibile aggiungere la riga successiva per consentire l’accesso a un altro host (indirizzo IP).

    Salvare le modifiche al file di configurazione e chiudere l’editor di testo.

  7. Per verificare se i dati sono stati scritti nel file, è possibile utilizzare il comando:

    cat /etc/exports

  8. Applicare la nuova configurazione con il comando:

    sudo exportfs -a

  9. Assicurarsi che il firewall sulla macchina Linux con il server NFS consenta l’accesso. È possibile concedere l’accesso a un indirizzo IP specifico con un comando del tipo:

    sudo ufw allow from IP to any port nfs

    Nel nostro caso:

    sudo ufw allow from 192.168.101.201 to any port nfs

    Per consentire l’accesso agli host dell’intera sottorete:

    sudo ufw allow from SUBNET to any port nfs

    Nel nostro caso, il comando sarebbe:

    sudo ufw allow from 192.168.101.0/24 to any port nfs

  10. È possibile verificare lo stato del firewall con il comando:

    sudo ufw status

  11. Riavviare il server NFS affinché le modifiche alla configurazione abbiano effetto:

    sudo systemctl restart nfs-kernel-server

  12. La condivisione NFS è stata configurata in Linux.
  13. Copiare un file da una qualsiasi directory della macchina Linux nella directory condivisa tramite NFS. Copiamo VM_file.txt nella nostra condivisione NFS e controlliamo il contenuto della directory dopo l’operazione:

    cp VM_file.txt /srv/nfs/share1/

    ls -al /srv/nfs/share1/

    Copying a file to a directory configured as an NFS share

Montaggio di un archivio dati NFS in ESXi

È necessario aggiungere l’archivio dati NFS in ESXi dopo aver configurato la condivisione NFS. In questo esempio utilizziamo VMware Host Client per eseguire questa operazione.

Accedere a Storage > Datastores e fare clic su New datastore.

Creating a new datastore to mount the NFS as a datastore

Si apre la procedura guidata New datastore .

  1. Selezionare Mount NFS datastore. Fare clic su Next per continuare.

    How to mount an NFS datastore in ESXi

  2. Fornire i dettagli di montaggio NFS:
    • Nome: NFS-share (il nome che verrà visualizzato come nome dell’archivio dati)
    • Server NFS: 192.168.101.210
    • Condivisione NFS: /srv/nfs/share1/
    • Versione NFS: NFS4

    Il nome utente e la password sono facoltativi per NFS4. Lasciamo questi due campi vuoti.

    Entering the details to mount an NFS datastore in ESXi

  3. Tutto pronto per il completamento. Verifica la configurazione e, se tutto è corretto, fai clic su Finish .

Copia dei file da una VM all’host

L’archivio dati NFS è stato montato con successo. È possibile verificarlo in Storage > Datastores.

Ora è possibile copiare i file dalla VM memorizzati sulla condivisione NFS a un datastore ESXi locale (trasferire i file dalla VM all’host).

  1. Fare clic su Datastore Browser.

    Browsing the NFS datastore to copy a VM file

  2. Selezionare l’archivio dati NFS nel browser degli archivi dati (NFS-share nel nostro caso). Sfogliare il file desiderato nell’archivio dati NFS. Selezionare il file desiderato e fare clic su Copy.

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

  3. Selezionare la destinazione. Selezionare l’ubicazione desiderata nell’archivio dati di destinazione in cui si desidera salvare il file copiato (nel nostro casodatastore10b ). Fare clic su Copy.

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

    . In alternativa, è possibile copiare il file desiderato dalla riga di comando sul server ESXi:

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

. Utilizzo dell’interfaccia web di VMware per scaricare/caricare file

. È possibile utilizzare l’interfaccia web di VMware Host Client o VMware vSphere Client per caricare/scaricare file da/verso un archivio dati ESXi. L’interfaccia web è disponibile da qualsiasi macchina fisica o virtuale su cui sia installato un browser web e sia disponibile una connessione di rete a un host ESXi. Pertanto, è possibile aprire questa interfaccia web direttamente da una VM se il sistema operativo ospite dispone di un’interfaccia grafica (GUI) oppure utilizzare qualsiasi macchina locale come macchina intermedia per trasferire i file dalla VM all’host e viceversa.

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

Esiste un metodo alternativo, ma più complesso, per trasferire file su VMware ESXi dalle VM:

  1. Scarica un disco virtuale della VM sulla propria macchina locale o su un’altra macchina.
  2. Estrarre i file necessari da questo disco virtuale della VM (.vmdk e -flat.vmdk) su una macchina locale. In alternativa, è possibile montare un disco virtuale su un’unità virtuale se è installato VMware Workstation.
  3. Caricare i file estratti o quelli provenienti dal disco virtuale montato nell’archivio dati dell’host VMware ESXi utilizzando uno dei metodi illustrati sopra (tramite VMware Host Client, vSphere Client o client SCP, ecc.).

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

Leggi il post dettagliato sul blog all’indirizzo Come estrarre i file dai dischi virtuali VMDK.

Utilizzo dei file ISO per il trasferimento dei dati a una macchina virtuale

Se la connessione di rete non è disponibile per una macchina virtuale, è possibile trasferire i file alle macchine virtuali VMware utilizzando file immagine ISO:

  1. Crea un’immagine ISO con un software come Ultra ISO per Windows.
  2. Scrivi i file necessari nell’immagine ISO sul tuo computer locale o su un altro computer. Puoi copiare i file da ESXi utilizzando uno dei metodi sopra indicati e scriverli nell’immagine ISO.
  3. Montare il file immagine ISO sulla VM utilizzando un’unità CD/DVD virtuale della VM (è possibile montare il file ISO direttamente dal proprio computer locale oppure caricare il file ISO su un archivio dati ESXi prima di procedere). Utilizzare VMware Host Client, VMware vSphere Client, VMware Workstation o VMware Remote Console per montare il file ISO sulla macchina virtuale ESXi.

Questo metodo non può essere utilizzato per trasferire file dalla macchina virtuale all’host poiché la macchina virtuale utilizza un disco CD/DVD virtuale in modalità di sola lettura.

Conclusione

Esistono diversi metodi per copiare file da un host alle macchine virtuali e viceversa. Alcuni richiedono una connessione di rete, mentre altri funzionano anche in assenza di rete. È possibile utilizzare il metodo più adatto alla propria situazione e combinare questi metodi tra loro. Ricordarsi di eseguire il backup delle macchine virtuali per evitare la perdita di dati. Con NAKIVO Backup & Replication, è possibile proteggere le macchine virtuali in VMware vSphere e ripristinare singoli file direttamente da un backup della macchina virtuale.

Prova NAKIVO Backup & Replication

Prova NAKIVO Backup & Replication

Richiedi una prova gratuita per scoprire tutte le funzionalità di protezione dei dati offerte dalla soluzione. 15 giorni gratuiti. Nessuna limitazione in termini di funzionalità o capacità. Non è obbligatoria alcuna carta di credito.

Le persone leggono anche