Le macchine virtuali offrono molti vantaggi, come flessibilità, uso razionale delle risorse ed esecuzione in ambienti isolati. Un compito comune negli ambienti virtuali è copiare file tra le VM e gli host. Leggi per imparare come copiare file su una macchina virtuale da un host, come trasferire file da una VM all’host e come copiare file tra le VM.
I Componenti del Nostro Ambiente
Iniziamo esaminando la terminologia:
- A host is a physical machine on which a hypervisor is installed.
- A hypervisor is virtualization software to run virtual machines on the host. There are two types of hypervisors:
- Tipo 1: Utilizzando un server ESXi, che è la macchina host
- Tipo 2: Utilizzando VMware Workstation, e in questo caso Windows e Linux possono essere il sistema operativo della macchina host
In questa guida, l’ambiente utilizzato per spiegare come trasferire file dalla VM all’host è composto dai seguenti componenti:
- Host ESXi 1: 192.168.101.201
- Host 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
- VM ESXi e VM di VMware Workstation collegati alla stessa rete
Utilizziamo le seguenti tecnologie per copiare file tra VM e host:
- Cartelle Condivise
- Appunti Condivisi e Trascinamento
- Dispositivo di Archiviazione USB
- PowerCLI
- SSH e SCP
- Condivisione NFS
- Scarica/Carica File in un’interfaccia web di VMware
- File ISO
Utilizzo delle Cartelle Condivise per Trasferire un File VM all’Host
Cartelle Condivise è una funzionalità conveniente in VMware Workstation per 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.
Andiamo ora sui passaggi per trasferire file da VM all’host e viceversa utilizzando le cartelle condivise VMware.
Nota: Perché questa funzione funzioni, VMware Tools deve essere installato su una VM. I dati tra un host e una VM vengono trasferiti utilizzando l’interazione tramite VMware Tools tra l’host e il sistema operativo guest senza utilizzare una rete.
- Seleziona una VM per la quale desideri configurare la condivisione file VMware. Selezioniamo una delle nostre VM Windows.
- Fai clic su VM > Impostazioni (Modifica impostazioni macchina virtuale) nell’interfaccia grafica di VMware Workstation.
- Nella finestra Impostazioni macchina virtuale, seleziona la scheda Opzioni e fai clic su Cartelle Condivise. Nella sezione Condivisione cartelle, seleziona Sempre abilitato. Opzionalmente, puoi mappare una cartella condivisa come unità di rete nei guest Windows per maggiore comodità selezionando la casella di controllo.
- Fai clic su Aggiungi per selezionare una cartella da utilizzare come cartella condivisa.
- Inserisci il percorso della cartella da condividere sull’host o clicca su Sfoglia e seleziona la cartella necessaria. Selezioniamo C:\temp\share-VM
Inserisci un nome per la cartella condivisa, ad esempio, share-VM
Clicca su Avanti.
- Seleziona Abilita questa condivisione. Se vuoi che le VM accedano alla cartella condivisa in modalità sola lettura, seleziona la casella di controllo Sola lettura. Clicca su Termina.
- La nuova cartella condivisa è ora visualizzata nell’elenco delle cartelle condivise nella scheda Opzioni della finestra delle Impostazioni della macchina virtuale. Una cartella condivisa è abilitata se la casella di controllo corrispondente è selezionata accanto al nome del file.
Fare clic su OK per salvare le impostazioni.
- Aprire l’interfaccia utente della VM Windows utilizzata per condividere la cartella con la funzionalità Cartelle condivise.
- Fare clic su Rete (Risorse di rete) in Risorse del computer (Questo PC) o Esplora risorse di Windows per vedere i computer disponibili nella rete.
- Selezionare vmware-host come nome del computer su cui è configurata la cartella condivisa. Questo nome è impostato per impostazione predefinita ed è mappato al tuo computer fisico (host) con la cartella condivisa.
- Fare clic su Cartelle condivise e selezionare la cartella condivisa necessaria (share-VM nel nostro esempio). Il percorso completo della cartella condivisa, nel nostro caso, è
\\vmware-host\Cartelle condivise\share-VM\
Puoi copiare file da una macchina virtuale a un host e da un host a una VM. Abbiamo copiato Test01.txt da un host Windows a un guest Windows nel nostro esempio utilizzando la condivisione file VMware in VMware Workstation.
Per gli ospiti Linux, puoi montare tutte le cartelle condivise di VMware con il comando come mostrato 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 successivo:
/usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other
Se desideri mantenere una cartella condivisa montata dopo il riavvio della VM, aggiungi le righe appropriate con il commento e la configurazione in /etc/fstab, ad esempio:
# Cartella condivisa VMware per trasferire file tra guest e host di VMware
.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=1000 0 0
Prima di passare alla sezione successiva, nota 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 ESXi. Per gli host ESXi, puoi condividere una cartella manualmente e utilizzare una rete per copiare file tra le macchine Windows. Per copiare file da una VM a un host ESXi, dovresti utilizzare uno strumento aggiuntivo o combinare la copia dei file da una cartella condivisa manualmente con uno dei metodi spiegati di seguito.
Esistono altri metodi per condividere una cartella in Windows 10 e Windows Server 2019. Puoi anche saperne di più sul protocollo di condivisione file SMB.
Se hai un account Windows con diritti amministrativi e una policy di sicurezza consente l’accesso alle condivisioni amministrative nascoste disponibili per impostazione predefinita, puoi accedere ai file sui dischi locali della macchina Windows utilizzando il percorso della condivisione come segue:
\\Indirizzo-IP\c$
Dove:
Indirizzo-IP è un indirizzo IP o un nome host di una macchina Windows remota.
C$ is the needed disk drive letter on a remote Windows machine which is a hidden system share.
Utilizzo della Clipboard Condivisa per Trasferire File alle VM da un Host
Il clipboard condiviso è una funzione che ti consente di copiare e incollare contenuti come testo e interi file da una macchina virtuale a una macchina host su cui è installato VMware Workstation. Il processo è simile a quando si copia e incolla contenuti tra diverse finestre di applicazioni in Windows o Linux con GUI.
L’intera gamma di funzionalità è disponibile in VMware Workstation, che consente di trasferire file alle macchine virtuali da un host e viceversa. Puoi trascinare e rilasciare file come alternativa alla copia e incolla.
Clipboard condiviso in VMware Workstation
Vediamo come trasferire file alle macchine virtuali di VMware Workstation utilizzando un clipboard condiviso e il trascinamento e rilascio. Nel nostro esempio, VMware Workstation è installato su un host Windows.
- Seleziona la tua VM nel riquadro di sinistra dove le VM sono elencate.
- Fai clic su Modifica impostazioni macchina virtuale (VM > Impostazioni).
- Seleziona la scheda Opzioni e clicca su Ospite Isolamento.
Seleziona due caselle di controllo:
- Abilita trascinamento e rilascio
- Abilita copia e incolla
Clicca su OK per salvare le impostazioni e chiudere la finestra.
Appunti condivisi in VMware ESXi
Per le VM in esecuzione su VMware ESXi, non è possibile copiare alcun file utilizzando trascinamento e rilascio o tramite appunti condivisi tra una VM su un host ESXi e qualsiasi altra macchina. L’unica opzione è copiare e incollare testo tra una VM in esecuzione su ESXi e la tua macchina locale (su cui è installato VMware Workstation o VMware Remote Console). Copia e incolla e trascinamento e rilascio per i 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 degli appunti condivisi. Per impostazione predefinita, gli appunti condivisi sono disabilitati nella configurazione della VM ESXi. Segui quanto segue su un host ESXi per abilitare degli appunti condivisi per copiare e incollare dati testuali:
- La VM deve essere spenta durante la modifica della configurazione della VM. Arrestare la VM se la VM è in esecuzione.
- Aprire Impostazioni VM. È possibile utilizzare VMware Host Client e VMware vSphere Client. Selezionare una VM, fare clic su Modifica impostazioni VM e selezionare la scheda Opzioni VM.
Espandere la sezione Impostazioni avanzate e fare clic su Modifica configurazione.
- È necessario aggiungere tre parametri di configurazione al file di configurazione della VM (che viene scritto nel file VMX di configurazione della VM). Fare clic su Aggiungi parametro.
- Aggiungere questi tre parametri:
isolation.tools.copy.disable FALSE
isolation.tools.paste.disable FALSE
isolation.tools.setGUIOptions.enable TRUE
- Fai clic su OK e salva le impostazioni.
Come alternativa, puoi modificare manualmente un file VMX con la configurazione VM situata su un datastore ESXi nella directory VM.
- Accedi alla shell ESXi localmente o tramite SSH.
- Vai alla directory VM (una directory dove sono memorizzati i file VM su un datastore). Nel nostro caso, andiamo in questa directory:
cd /vmfs/volumes/datastore10a/Windows-VM/
- Modifica il file di configurazione VMX. Nel nostro caso, il file è Windows-VM.vmx
vi Windows-VM.vmx
- Aggiungi i tre parametri mostrati sopra alla fine di questo file di configurazione.
- Salva le modifiche e chiudi il file (esci dall’editor di testo).
Ora possiamo copiare e incollare il testo tra la nostra macchina locale e una VM remota in esecuzione su un host ESXi utilizzando la Console remota VMware e VMware Workstation per connettersi a una VM.
Utilizzando un Dispositivo di Archiviazione USB
VMware ESXi e VMware Workstation supportano la funzionalità di passaggio USB, che consente di inserire un dispositivo USB in una macchina host e di collegare questo dispositivo USB a una macchina virtuale in esecuzione su questo host. È possibile collegare un dispositivo di archiviazione USB a una macchina host e una macchina virtuale in sequenza per copiare file tra queste macchine in entrambe le direzioni.
Nota: È necessario installare VMware Tools sul sistema operativo (OS) guest della VM per utilizzare la funzionalità di passaggio USB.
Copiare file tra le VM di VMware Workstation e l’host
Eseguire le seguenti operazioni per trasferire file da VM a host in VMware Workstation installato su host Windows e Linux (l’interfaccia è unificata):
- Accendere la macchina virtuale.
- Inserire un dispositivo di archiviazione USB, come un HDD (Hard Disk Drive) USB o una chiavetta USB, in un computer fisico che è una macchina host.
- La finestra Nuovo dispositivo USB rilevato si apre in VMware Workstation. Scegli dove vuoi connettere il tuo dispositivo USB:
- Connetti all’host
- Connetti a una macchina virtuale
Scegliamo la seconda opzione e connettiamo la nostra chiavetta USB alla macchina virtuale. In questo esempio stiamo eseguendo una VM Windows. Se sono in esecuzione più VM su VMware Workstation, devi selezionare la VM necessaria dalla lista. Un dispositivo USB può essere connesso solo a una VM alla volta. Fai clic su OK per procedere.
Se il tuo dispositivo di archiviazione USB è già stato inserito nella porta USB della macchina fisica in cui è installato VMware Workstation, la finestra popup con le opzioni di passaggio USB non verrà visualizzata automaticamente. Puoi connettere un dispositivo USB a una VM (disconnetterlo dall’host) nel menu:
Vai a VM > Dispositivi rimovibili > Nome del tuo dispositivo di archiviazione USB > Connetti (Disconnetti dall’host).
Nel nostro esempio, il nome della chiavetta USB è Kingston DataTraveler 2.0.
- Ora possiamo vedere la chiavetta USB collegata alla VM Windows 7 nell’elenco delle unità disco del mio computer (Esplora risorse di Windows). Per controllare il dispositivo di archiviazione USB:
- Fare clic destro su Il mio computer e premere Gestione.
- Andare a Gestione computer > Gestione dispositivi e Gestione computer > Gestione disco nell’apposito snap-in dopo aver fatto clic destro.
Se una lettera di unità non viene assegnata automaticamente, assegnare manualmente la lettera nell’apposito snap-in Gestione disco.
Il flusso di lavoro per gli ospiti Linux è identico. In alcune distribuzioni Linux, potrebbe essere necessario montare manualmente un dispositivo di archiviazione USB collegato come una chiavetta USB nel sistema operativo Linux.
- Una volta che il dispositivo di archiviazione USB è stato montato sulla VM e riconosciuto dal sistema operativo guest, copiare i file necessari dalla VM a un dispositivo di archiviazione USB. Ora funziona anche la copia dei file dal dispositivo di archiviazione USB alla VM.
- 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:
Fare clic su VM > Dispositivi rimovibili > Nome del dispositivo di archiviazione USB > Scollega (Connetti all’host).
- A USB storage device is now connected to a host machine (a Windows machine on which VMware Workstation is running in our case). We can transfer the files that were copied from the VM to the USB flash drive to your host machine.
Il passaggio USB da VMware Workstation alle VM ESXi
Puoi utilizzare una chiavetta USB inserita in un server ESXi e inserita nel tuo computer locale Windows o Linux (con VMware Workstation o VMware Remote Console (VMRC) installato) che stai utilizzando per gestire un host ESXi in remoto per collegare questa chiavetta USB a una VM ESXi. Nel primo caso, viene utilizzato il passaggio USB connesso all’host e nel secondo caso viene utilizzato il passaggio USB connesso al client.
Colleghiamo una chiavetta USB inserita nel nostro computer fisico locale Windows 10 a una VM Windows XP in esecuzione su un host ESXi v7.0 (utilizzando la funzione di passaggio USB connesso al client). VMware Workstation è installato sul nostro computer fisico Windows e collegato all’host ESXi tramite la rete (192.168.101.0/24).
Per fare ciò:
- A VM must be powered off to edit the VM settings.
- Assicurati che un controller USB sia presente nell’elenco dell’hardware virtuale della VM. Puoi controllare la configurazione della VM in VMware Host Client. Seleziona la tua VM (Windows-VM nel nostro caso), clicca su Modifica Impostazioni e seleziona la scheda Hardware Virtuale.
- Torniamo a VMware Workstation installato sul nostro computer locale (fisico) Windows 10. Fare clic su File > Connetti a un server in VMware Workstation per connettersi a un host ESXi remoto.
- Inserisci il nome o l’indirizzo IP del server ESXi, nome utente e password. Fare clic su Connetti.
- Espandi l’host ESXi nel riquadro sinistro di VMware Workstation dove sono visualizzati gli host remoti, le VM remote su questi host e le VM locali di VMware Workstation.
- Seleziona una VM in esecuzione su un host ESXi remoto. Selezioniamo Windows-VM in esecuzione su 192.168.101.201. Dopo di che, possiamo vedere un’interfaccia utente di un sistema operativo guest della VM selezionata.
- Fare clic su VM > Dispositivi Rimovibili > Nome del tuo Dispositivo di Archiviazione USB> Connetti (Disconnetti dall’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 connessi in remoto.
- Ora possiamo vedere la nostra chiavetta USB collegata alla VM Windows XP in esecuzione sull’host ESXi remoto: Avvia > CMD > compmgmt.msc > Gestione Dispositivi.
- Assegna una lettera di unità al partizionamento del dispositivo flash USB connesso se non è stata assegnata. Copia i file necessari tra la VM e il dispositivo flash USB. Puoi trasferire file verso una VM e da una VM.
- Dopo aver copiato i file, puoi scollegare il dispositivo di archiviazione USB dalla VM e riconnettere questo dispositivo alla macchina fisica locale Windows 10 su cui è in esecuzione VMware Workstation. Nella GUI di VMware Workstation, clicca su VM > Dispositivi Rimovibili > Nome del tuo Dispositivo di Archiviazione USB > Scollega (Connettiti all’host).
Collegare una Chiavetta USB su ESXi
Questo metodo è estremamente utile in alcuni casi, ad esempio, se è necessario aggiornare un driver di rete su un host ESXi e non è possibile utilizzare la rete. Collegare una chiavetta USB a ESXi è più complicato che collegarsi a una macchina host che esegue VMware Workstation.
Ci sono limitazioni su ESXi per quanto riguarda i sistemi di file supportati che possono essere montati su ESXi. Le chiavette USB o gli HDD USB con sistemi di file FAT32 e NTFS non sono supportati. Per questo motivo, è necessario creare una partizione sulla nostra chiavetta USB e formattare questa partizione con VFAT (che è riconosciuto in Windows come FAT12). VFAT ha limitazioni, come la dimensione massima della partizione e la dimensione massima dei file. Pertanto, questo metodo non è applicabile per file di grandi dimensioni come dischi virtuali o immagini ISO superiori a 4 GB. Tuttavia, questi 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 formattiamo questa partizione in VFAT. Possiamo farlo collegando una chiavetta USB inserita nel server ESXi a una VM (utilizzando la funzione di passaggio USB connessa all’host). In alternativa, possiamo inserire una chiavetta USB in una macchina fisica Windows o Linux.
In questo esempio, utilizziamo una macchina 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.
- Per assicurarsi che una chiavetta USB sia collegata al computer Windows, fare clic con il pulsante destro del mouse su Risorse del Computer o Questo PC (o eseguire diskmgmt.msc da CMD) per aprire Gestione disco.
- Aprire la riga di comando di Windows:
Start > Esegui > cmd
- Digitare
diskpart
nella riga di comando e premere Invio.Vedrai un prompt di diskpart:
Diskpart
- Elencare i dischi collegati al tuo computer Windows:
elenco disco
Trova la tua chiavetta USB nell’elenco di output e ricorda il numero del disco. Nel nostro caso, Disco 1 è il numero della nostra chiavetta USB (vedi lo screenshot sotto).
- Seleziona la tua chiavetta USB definendo il numero di disco appropriato ottenuto dall’output del comando precedente (disco 1 nel nostro caso).
seleziona disco 1
- Elenca le partizioni sull’unità flash USB selezionata:
elenco partizione
Abbiamo una partizione (Partizione 1) sulla nostra unità flash USB (vedi lo screenshot sotto). Avere una sola partizione su un’unità flash USB è il caso più comune.
Successivamente, dobbiamo eliminare le partizioni sull’unità flash USB.
Importante: Tutti i dati sull’unità flash USB verranno eliminati. Puoi copiare i dati dall’unità flash se necessario prima di procedere ai passaggi successivi.
- Seleziona una partizione sull’unità flash USB che sta per essere eliminata:
seleziona partizione 1
- Esegui il comando per eliminare la partizione selezionata:
elimina partizione
- Seleziona di nuovo il disco che è la tua chiavetta USB:
select disk 1
- Crea una nuova partizione con un sistema di file VFAT. In questo esempio, creiamo una partizione da 4 GB sulla nostra chiavetta USB. Tieni presente che non puoi memorizzare file più grandi di 4 GB su VFAT. Nota che VFAT supporta solo il formato di nome file 8.3.
create partition primary size=4000 id=6
- Formatta la partizione creata in questo modo per la compatibilità con ESXi:
format fs=fat quick
- Esci dall’utilità diskpart (esegui il comando exit).
A USB flash drive is ready to be recognized by ESXi and copy files. After some additional ESXi configuration steps, you can attach a USB flash drive to a VM and copy the needed file(s) to the USB flash drive.
Supponiamo che abbiamo bisogno di copiare un archivio ZIP con driver. Abbiamo copiato net-tulip.zip su una chiavetta USB nel nostro esempio. Successivamente, è necessario montare una partizione di una chiavetta USB inserita in un server ESXi nella riga di comando ESXi.
Configurazione di un host ESXi per utilizzare una chiavetta USB
Dobbiamo copiare un’archivio ZIP con un driver da un’unità flash USB a un datastore ESXi e quindi copiare un file di configurazione VM da un datastore ESXi a un’unità flash USB. Il nome del file è net-tulip.zip nel nostro esempio. Esegui le seguenti operazioni sull’host ESXi per trasferire file su VMware ESXi da un’unità flash USB e viceversa:
- La configurazione è effettuata nell’interfaccia della riga di comando. Per questo motivo, è necessario abilitare l’accesso SSH su un host ESXi.
- Per abilitare l’accesso SSH remoto in DCUI, vai a Opzioni di risoluzione dei problemi > Abilita SSH.
- Per abilitare l’accesso SSH remoto e il server SSH su ESXi nel Client Host VMware, vai a Ospite > Gestisci e seleziona la scheda Servizi. Fai clic con il pulsante destro del mouse su TSM-SSH e clicca su Avvia per avviare il servizio. Puoi abilitare questo servizio in modo permanente.
- Connettiti all’host ESXi tramite SSH per utilizzare la riga di comando. Puoi utilizzare il tuo client SSH preferito.
- Arresta il servizio arbitro USB:
/etc/init.d/usbarbitrator stop
L’arbitro USB abilita automaticamente la funzione di passaggio USB per le macchine virtuali residenti su un host ESXi (devi solo selezionare una chiavetta USB nelle impostazioni della VM appropriata per utilizzare questa funzione).
- Se desideri disabilitare il servizio arbitro USB dopo il riavvio di ESXi (permanentemente), puoi utilizzare il comando:
chkconfig usbarbitrator off
Per abilitare il servizio arbitro USB, utilizza il comando appropriato:
/etc/init.d/usbarbitrator start
chkconfig usbarbitrator on
- Comandi opzionali per controllare i dispositivi USB collegati a un host ESXi:
lsusb
esxcli storage core device list | grep -i usb
esxcli storage filesystem list
Puoi vedere /var/log/usb.log per controllare lo stato di un dispositivo USB.
- Potresti dover disconnettere e riconnettere un dispositivo di archiviazione USB dopo aver arrestato il servizio arbitro USB.
- Elenca i dispositivi di blocco del disco per trovare/identificare la chiavetta USB (o l’HDD USB) collegata.
ls -ltrh /vmfs/devices/disks/
La nostra chiavetta USB è mpx.vmhba32:C0:T0:L0: (vedi lo screenshot sotto).
Quindi, l’indirizzo/comando completo del disco è:
/dev/disks/mpx.vmhba32:C0:T0:L0:
- Controlla il numero di partizione del dispositivo USB per assicurarti di aver identificato il dispositivo disco corretto:
ls /dev/disks/mpx.vmhba32:C0:T0:L0:*
Secondo l’output, l’ID completo del dispositivo, tenendo conto del numero di partizione nel nostro caso, è:
/dev/disks/mpx.vmhba32:C0:T0:L0:1
- Trova la cartella radice di una chiavetta USB per definire il percorso di origine/destinazione per copiare i file. Esegui il seguente comando e premi Tab per visualizzare gli elementi disponibili nella directory volumi. La directory /volumes/ del sistema file ESXi è una directory a cui sono montate le partizioni con i sistemi di file.
ls -al /vmfs/volumes/ [premi Tab]
Il volume su una chiavetta USB è chiamato NO NAME
- 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.
- Abbiamo creato la cartella install sul datastore ESXi (datastore10a) con i seguenti comandi:
cd /vmfs/volumes/datastore10a
mkdir install
Nella schermata sottostante, è possibile vedere anche la directory della VM di cui copieremo il file di configurazione dal datastore ESXi a una chiavetta USB in seguito.
- Copia l’archivio ZIP dalla chiavetta USB alla cartella install sul nostro host ESXi (su datastore10a).
cp /vmfs/volumes/NO\ NAME/net-tulip.zip /vmfs/volumes/datastore10a/install/
- Controlla se il file è stato copiato:
ls -al /vmfs/volumes/datastore10a/install/
Il file è stato copiato con successo.
Allo stesso modo, è possibile copiare file nella direzione opposta – copiare file da ESXi a una chiavetta USB e quindi copiare il file necessario a una VM o a un’altra macchina da questa chiavetta USB.
- Controlla il contenuto della cartella VM:
ls -al /vmfs/volumes/datastore10a/Windows-VM/
- Copia il file di configurazione Windows-VM.vmx da un datastore ESXi a una chiavetta USB:
cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/NO\ NAME/
- Controlla se il file è stato copiato sulla chiavetta USB:
ls -al /vmfs/volumes/NO\ NAME/
Dopo aver finito di copiare i file sull’host ESXi, puoi espellere la chiavetta USB e avviare il servizio di arbitro USB sull’host ESXi. Quindi puoi inserire la chiavetta USB e utilizzare la funzione di passaggio USB collegata all’host per collegare la chiavetta USB alla macchina virtuale.
Leggi di più su passaggio USB per ESXi e connessione di un dispositivo di archiviazione USB inserito in un host ESXi a una VM residente sull’host ESXi.
Utilizzo di PowerCLI per Trasferire File su VM VMware
Un altro metodo per trasferire file da VM all’host è utilizzare i comandi (cmdlets) PowerCLI. VMware Tools deve essere installato in un sistema operativo guest all’interno di una VM. Questi cmdlet PowerShell utilizzano VMware Tools per copiare file da/per VM residenti su un host ESXi. Quindi, non è necessaria la rete se esegui i comandi all’interno di una VM residente sull’host ESXi di origine/destinazione.
Per copiare file tra VM, puoi utilizzare un cmdlet Copy-VMGuestFile e altri cmdlet in vSphere PowerCLI.
- Connetti a un host ESXi o a un server vCenter. Ci collegheremo a un host ESXi in questo esempio.
Connect-VIServer 192.168.101.201
- Per evitare l’avviso sul certificato, esegui il comando:
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Copia file dell’ospite della VM (Locale > VM ESXi)
Utilizza il seguente comando per copiare un file da una macchina locale (una macchina in cui è in esecuzione PowerCLI) a una VM remota su un host ESXi:
Copy-VMGuestFile -Source "c:\temp\test.txt" -LocalToGuest -VM Windows-VM -Destination "c:\temp-VM" -GuestUser user1 -GuestPassword Password
Dove:
c:\temp\test.txt is the source file that we want to copy from the local machine
-LocalToGuest è la direzione (dalla macchina locale all’OS guest su una VM di destinazione in esecuzione su ESXi)
-VM Windows-VM è la definizione del nome della VM di destinazione
c:\temp-VM is the destination folder on the destination VM (where we want to store a file copy)
user1 è il nome utente nel sistema operativo guest (OS) sulla VM di destinazione. Questo utente deve avere accesso alla cartella di destinazione definita.
Password è la password per questo utente.
Ignoriamo l’avviso sulla versione di VMware Tools e verifichiamo se il nostro file text.txt è stato copiato.
Possiamo vedere che il nostro file test.txt, la cui dimensione è di 29 byte, è stato copiato con successo nella VM di Windows XP in esecuzione su un host ESXi.
Copy-VMGuestFile (VM ESXi > Locale)
Ora, copiamo un file dall’OS guest della VM a una directory locale della macchina dove viene eseguito il comando:
Copy-VMGuestFile -Source "c:\temp-VM\test2.txt" -GuestToLocal -Destination "c:\temp" -VM Windows-VM -GuestUser user1 -GuestPassword Password
Dove:
-Source “c:\temp-VM\test2.txt” è il percorso del file sorgente sulla VM in esecuzione su ESXi
-GuestToLocal è la direzione (dall’OS guest della VM ESXi alla macchina locale dove viene eseguito il comando)
“c:\temp” è il percorso della cartella di destinazione su una macchina locale
user1 è il nome utente nel sistema operativo guest sulla VM di destinazione. Questo utente deve avere accesso alla cartella di destinazione definita.
Password è la password per questo utente nell’OS guest
Puoi vedere degli esempi sull’uso del cmdlet Copy-VMGuestFile con il comando:
get-help Copy-VMGuestFile -examples
Utilizzando Copy-DatastoreItem
Il cmdlet PowerShell Copy-DatastoreItem viene utilizzato per copiare file da/a un datastore ESXi. Ci sono 2 approcci per utilizzare questo cmdlet per copiare file nel datastore VMware ESXi:
- Se PowerCLI è installato su una macchina virtuale Windows all’interno della VM, è possibile eseguire un comando per copiare un file direttamente da un datastore ESXi a una VM e viceversa.
- Se non è possibile installare PowerCLI su una macchina virtuale che risiede su un host ESXi, è possibile eseguire comandi PowerCLI dalla propria macchina Windows locale, copiare file da un datastore ESXi alla propria macchina locale con il comando Copy-VMGuestFile, e quindi copiare questi file dalla propria macchina locale a una VM con il comando Copy-VMGuestFile.
È necessario essere connessi a un server ESXi o a un server vCenter. È possibile farlo con il comando:
ViConnect <nome_server_o_IP>
Siamo connessi direttamente all’host ESXi.
Eseguiamo la copia di un file di configurazione della VM dal datastore alla macchina Windows corrente (la macchina su cui eseguiamo questi comandi – che può anche essere una VM su un host ESXi):
- Ottenere le informazioni sul datastore:
Get-Datastore "datastore10a"
- Ottenere un oggetto datastore ESXi:
$datastore = Get-Datastore "datastore10a"
- Crea una nuova unità PowerShell, chiamata ds: che mappa a $datastore:
New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root "\"
- Imposta il tuo datastore come posizione corrente:
Set-Location ds:\
- Per elencare i file e le directory nella directory selezionata, usa il comando:
Get-ChildItem
- Puoi impostare la directory VM come nuova posizione. Nel nostro caso, questa directory è Windows-VM
Set-Location "Windows-VM"
- Il comando per copiare il file VM, cioè il file di configurazione VMX, dal datastore ESXi definito alla cartella temporanea sul computer corrente:
Copy-DatastoreItem -Item ds:\Windows-VM\Windows-VM.vmx -Destination c:\temp
Dove:
ds:\Windows-VM\Windows-VM.vmx è il percorso di un file che deve essere copiato e ds:\ è il collegamento definito a un datastore (datstore10a in questo caso).
- Se ti sei connesso a vCenter (non a un host ESXi specifico come abbiamo fatto in questo esempio), puoi utilizzare il seguente comando definendo un datastore nel datacenter di vCenter per copiare un file dal datastore ESXi a una cartella su un computer locale:
Copy-DatastoreItem vmstore:\Datacenter1\datastore10a\Windows-VM\Windows-VM.vmx c:\temp\
- Per copiare un file nella direzione opposta (connettendosi a un host ESXi), utilizza il comando:
Copy-DatastoreItem -Item c:\temp\darwin.iso -Destination ds:\install\
Stiamo copiando darwin.iso (che è un’immagine con VMware Tools per macOS) da una macchina Windows alla directory di installazione su un datastore ESXi.
- Se sei connesso a vCenter, puoi utilizzare questo comando per copiare un file da una macchina Windows locale a un datastore su un host ESXi remoto:
Copy-DatastoreItem c:\temp\darwin.iso -Destination vmstore:\Datacenter1\datastore10a\install\
Puoi utilizzare questi cmdlet PowerCLI e creare script PowerShell per trasferire file da una VM all’host e viceversa.
Comandi per copiare file da una VM a un host in VMware Workstation
Se usi VMware Workstation (che è un ipervisore di tipo 2) sul tuo host Windows o Linux (o VMware Fusion su macOS), puoi anche utilizzare l’interfaccia della riga di comando per copiare file dalla VM all’host e viceversa. Puoi utilizzare lo strumento a riga di comando vmrun per operare con le macchine virtuali. La sintassi dei comandi è la stessa per Windows, Linux e macOS (VMware Fusion). Utilizziamo VMware Workstation 15 su Windows 10 in questo tutorial.
- Vai alla directory di VMware Workstation:
cd "C:\Program Files (x86)\VMware\VMware Workstation\"
- Usa il comando seguente per copiare un file dall’OS guest all’interno della VM all’host locale Windows:
CopyFileFromHostToGuest <Percorso al file vmx> <Percorso nel guest> <Percorso sull’host>
Nel nostro caso, il comando esatto è:
vmrun copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"
-
Dove:
d:\virtual\WinServer2019\WinServer2019.vmx è un disco virtuale della VM da cui copiamo il file.
c:\temp\test.txt è un file memorizzato sul disco virtuale di una VM; questo è un file che copiamo.
c:\temp\copied\ è una directory dove salvare una copia del file su una macchina host.
Assicurati di utilizzare il carattere backslash \ 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 nel comando:
vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"
Per copiare un file in direzione inversa (da una macchina host a una VM), utilizzare il comando seguente:
CopiaFileDaHostAGuest <Percorso del file vmx> <Percorso sull’host> <Percorso nel guest>
Il comando specifico nel nostro esempio è:
vmrun copyFileFromHostToGuest d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test3.txt" "c:\temp\test3-copy.txt"
Come Trasferire File Usando SSH e SCP
SSH (Secure Shell) è un protocollo comune per gestire in modo sicuro host remoti che si basa sulla crittografia. SCP è un protocollo che si basa su SSH per copiare file in modo sicuro sulla rete. È possibile utilizzare SCP per trasferire file da una VM all’host, specialmente se Linux è in esecuzione sulla VM. Un server SCP e SSH può essere abilitato su macchine Linux ed ESXi in pochi passaggi.
Come abilitare un server SSH in ESXi
Un servizio server SSH deve essere abilitato su un host ESXi per utilizzare questo metodo e trasferire file su VMware ESXi e da ESXi.
- Per abilitare un server SSH in VMware Host Client, andare su Host > Gestisci > Servizi e avviare il servizio TSM-SSH.
- SSH deve essere consentito nel firewall ESXi per consentire il traffico SCP per il trasferimento di file da un host ESXi e per connettersi ad altre macchine utilizzando SCP da questo host ESXi:
- Vai su Networking nel riquadro Navigatore, seleziona la scheda Regole del firewall e seleziona Client SSH.
- Fai clic su Azioni > Abilita per abilitare la regola del firewall.
- 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 è un 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 comando scp per copiare file tramite SCP sulla rete:
scp [OPZIONE] [utente]@[HOST_SORGENTE]:percorso_file1 [utente]@[HOST_DESTINAZIONE]:percorso_file2
[utente]@[HOST_SORGENTE]:percorso_file1 – un file di origine
[utente]@[HOST_DESTINAZIONE]:percorso_file2 – un file di destinazione
-P specifica un numero di porta per la connessione SSH (utilizzare questa bandiera se il numero di porta non è 22).
Di seguito, spieghiamo gli esempi particolari in pratica.
Come copiare un file locale su una macchina remota tramite SCP
Per copiare un file locale su una macchina remota tramite SCP, utilizzare il comando come segue:
scp file.txt nome_utente_remoto@indirizzo_ip_host_remoto:/directory_remota
Da Linux
Copiamo il file LinuxDir.txt da una macchina Ubuntu Linux locale (che può anche essere una VM) su un host ESXi tramite rete utilizzando SCP. La posizione di destinazione sull’host ESXi remoto è la directory install sul datastore 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 [email protected]:/vmfs/volumes/datastore10a/install/
È possibile memorizzare il file copiato sulla macchina di destinazione con un nuovo nome file:
scp LinuxDir.txt [email protected]:/vmfs/volumes/datastore10a/install/LinuxDir-copy.txt
Utilizzare la bandiera -r per copiare una directory con tutti i file inclusi:
scp -r /directory_locale [email protected]:/directory_remoto
Dall’ESXi
Puoi utilizzare i comandi scp su un host ESXi. La sintassi di scp nella riga di comando è la stessa per Linux ed ESXi. Un server SSH deve essere configurato sulla macchina remota.
Accediamo all’host ESXi (192.168.101.201) e copiamo la directory install con tutti i file contenuti nella directory home di user1 sulla macchina Linux remota (192.168.101.210).
scp -r /vmfs/volumes/datastore10a/install/ [email protected]:/home/user1/
Se il server SSH è in ascolto su una porta diversa da 22, utilizzare il parametro -P; ad esempio, se il numero di porta SSH è 8022, il comando è:
scp -P 8022 -r /vmfs/volumes/datastore10a/install/ [email protected]:/home/user1/
Come copiare un file da una macchina remota a una locale tramite SCP
SCP è comodo per copiare file da una macchina remota alla macchina locale, che consente anche di trasferire file da VM all’host. Di seguito spieghiamo come eseguire i comandi appropriati in Linux ed ESXi.
Copia dei file su una macchina Linux locale
Stiamo per copiare un file dall’host ESXi remoto alla macchina Linux corrente utilizzando SCP. Per fare ciò, utilizzare il comando come segue:
scp nome_utente_remoto@indirizzo_ip_remoto:/percorso_remoto/file.txt /directory_locale
Copiamo un file darwin.iso dal server ESXi remoto alla directory home definita sulla macchina Linux:
scp [email protected]:/vmfs/volumes/datastore10a/install/winPreVista.iso /home/user1/
Copiare file su un host ESXi locale
Se effettuiamo l’accesso a un host ESXi, possiamo eseguire il comando per copiare un file VM da una macchina Linux remota a un datastore sull’host ESXi locale. Copiamo VM_file.txt dalla macchina Linux alla directory del datastore ESXi tramite la rete utilizzando SCP:
scp [email protected]:/home/user1/VM_file.txt /vmfs/volumes/datastore10a/install/
Come copiare file tra due macchine remote
Esistono comandi SCP per copiare file da una macchina remota a un’altra macchina remota con e senza copiare dati attraverso la macchina locale corrente. La sintassi del comando è la seguente:
scp [email protected]://directory/file.txt [email protected]://directory/
I dati vengono trasferiti direttamente da un host remoto a un altro (senza essere copiati sulla nostra macchina locale corrente) con il comando sopra. Se vuoi instradare il traffico attraverso la tua macchina locale su cui stai eseguendo il comando, utilizza il flag -3.
Nota: Utilizza 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 [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/
Se visualizzi l’errore Verifica della chiave host non riuscita, significa che la chiave host non è memorizzata su uno degli host. Se l’errore è causato dalla modifica della chiave host sul server remoto, elimina la vecchia chiave host per l’host remoto corrente memorizzata in ~/.ssh/known_hosts
Il comando per eliminare una vecchia chiave host è:
ssh-keygen -R nome_host_o_indirizzo_IP
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 i file attraverso la macchina locale:
scp -3 [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/
Il comando alternativo a questo scopo è:
scp -o "ForwardAgent yes" [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/
Come copiare i file tramite SCP da Windows
Puoi anche copiare i file su macchine virtuali o host ESXi in Windows. Per fare ciò, è necessario utilizzare un client SCP come WinSCP, che è un’interfaccia grafica user-friendly e comoda. Puoi scaricare WinSCP gratuitamente.
- Esegui WinSCP.
- Seleziona un protocollo, ad esempio, SFTP.
- Inserisci il nome host e il numero di porta di un host remoto, come ad esempio un host ESXi o una macchina Linux.
- Inserisci un nome utente e una password di una macchina remota.
- Fai clic su Login.
In questo esempio, ci stiamo connettendo a un host ESXi remoto.
- A notification message is displayed:
Continuare a connettersi al server sconosciuto e aggiungere la sua chiave host a una cache?
Fai clic su Sì per continuare.
- Una volta connesso, vedrai la finestra in stile comando con due pannelli. Un pannello rappresenta la directory sulla macchina locale e un altro pannello rappresenta la directory sulla macchina remota. Puoi copiare file tra l’host locale e l’host remoto copiando file tra questi due pannelli.
Puoi copiare i file da un datastore di un host ESXi remoto a cui sei connesso in WinSCP a una VM Windows remota o a una macchina fisica utilizzando una condivisione SMB su quella macchina Windows.
Tuttavia, non puoi inserire il percorso diretto della condivisione in un pannello WinSCP (ad esempio, \\192.168.101.117\c$). Puoi solo selezionare una lettera di unità del disco. Per aggirare questa limitazione, connettiti alla condivisione di file in Esplora risorse di Windows e mappa questa condivisione di file come un’unità di rete. Assegna una lettera di unità, ad esempio, S: come abbiamo fatto in questo esempio, per connettere la cartella condivisa su 192.168.101.211.
Ora possiamo selezionare S: come un’unità di rete nel menu a discesa nel riquadro sinistro di WinSCP, selezionare i file o le directory necessari nel datastore del server ESXi remoto e copiare i file in entrambe le direzioni.
Utilizzo di una condivisione NFS
Puoi utilizzare una condivisione NFS per trasferire file alle VM da un datastore ESXi e viceversa. ESXi non supporta le condivisioni SMB (native per Windows). Supporta le condivisioni NFS (native per Linux) e l’attacco di una condivisione NFS come datastore. Utilizzando questa funzionalità, puoi utilizzare uno di questi approcci per trasferire file tra ESXi e le macchine Linux:
Approccio 1:
- Configura un server NFS e una condivisione NFS su una VM Linux
- Allega la condivisione NFS come datastore su ESXi
- Copia i file da una VM a un datastore ESXi e viceversa
Approccio 2:
- Configura un server NFS su una macchina Linux fisica o NAS
- Collegare la condivisione NFS come datastore su ESXi
- Connettersi alla condivisione NFS su una VM Linux
- Copiare i file da una VM Linux a una condivisione NFS e 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.
Leggere il confronto NFS vs SMB per saperne di più su questi protocolli di condivisione file.
Configurare una condivisione NFS su Linux
Utilizziamo Linux Ubuntu 20.04 in questo tutorial. Abbiamo effettuato l’accesso a Linux come utente normale e utilizziamo sudo quando sono necessari privilegi di root per eseguire il comando. Eseguire i seguenti passaggi per installare un server NFS e configurare una condivisione NFS.
- Aggiornare l’albero del repository in Linux:
sudo apt-get update
- Installare il pacchetto del server NFS su Linux:
sudo apt-get install nfs-kernel-server -y
- Creare una directory (la directory di esportazione) che verrà condivisa sul server NFS:
sudo mkdir -p /srv/nfs/share1/
- Imposta il proprietario e i permessi per la directory creata:
sudo chown -R nobody:nogroup /srv/nfs/share1/
sudo chmod 0777 /srv/nfs/share1/
Il nobody è un utente pseudo che rappresenta l’utente con i minori permessi senza accesso alla shell. Lo scopo del gruppo nogroup è simile a quello dell’utente nobody.
- Configura il file di esportazione per condividere la directory creata.
sudo nano /etc/exports
o
sudo vim /etc/exports
- Aggiungi la riga alla fine del 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)
Puoi consentire l’accesso a tutti gli host della subnet aggiungendo la riga:
/srv/nfs/share1/ 192.168.101.0/24(rw,sync,no_subtree_check)
Puoi aggiungere la riga successiva per consentire l’accesso a un altro host (indirizzo IP).
Salva le modifiche al file di configurazione e esci dall’editor di testo.
- Per verificare se i dati sono stati scritti nel file, puoi utilizzare il comando:
cat /etc/exports
- Applica la nuova configurazione con il comando:
sudo exportfs -a
- Assicurati che il firewall sulla macchina Linux con il server NFS consenta l’accesso. Puoi concedere l’accesso a un particolare indirizzo IP con un comando simile a:
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 dall’intera subnet:
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
- Puoi verificare lo stato del firewall con il comando:
sudo ufw status
- Riavvia il server NFS per rendere effettive le modifiche di configurazione:
sudo systemctl restart nfs-kernel-server
- La condivisione NFS è stata configurata in Linux.
- Copia un file da qualsiasi directory della macchina Linux alla directory condivisa tramite NFS. Copiamo VM_file.txt nella nostra condivisione NFS e controlliamo il contenuto della directory dopo:
cp VM_file.txt /srv/nfs/share1/
ls -al /srv/nfs/share1/
Montaggio di un datastore NFS in ESXi
È necessario aggiungere il datastore NFS in ESXi dopo aver configurato la condivisione NFS. Utilizziamo VMware Host Client in questo esempio per farlo.
Vai su Storage > Datastores e clicca su Nuovo datastore.
Si apre la procedura guidata Nuovo datastore.
- Seleziona Monta datastore NFS. Clicca su Avanti per continuare.
- Fornire dettagli di montaggio NFS:
- Nome: NFS-share (il nome che verrà visualizzato come nome del datastore)
- Server NFS: 192.168.101.210
- Condivisione NFS: /srv/nfs/share1/
- Versione NFS: NFS4<>/li
Nome utente e password sono opzionali per NFS4. Lasciamo vuoti questi due campi.
- Pronto per completare. Controlla la tua configurazione e clicca su Termina se tutto è corretto.
Copia file da una VM all’host
Il datastore NFS è stato montato con successo. Puoi verificarlo in Archiviazione > Datastore.
Ora possiamo copiare file dalla VM memorizzata sulla condivisione NFS a un datastore ESXi locale (trasferire file dalla VM all’host).
- Clicca su Esplora datastore.
- Seleziona il tuo datastore NFS nel browser dei datastore (condivisione NFS nel nostro caso). Naviga fino al file necessario nel datastore NFS. Seleziona il file necessario e clicca su Copia.
- Seleziona la destinazione. Scegli la posizione desiderata nel datastore di destinazione dove vuoi memorizzare il file copiato (datastore10b nel nostro caso). Clicca su Copia.
In alternativa, puoi copiare il file necessario tramite la riga di comando sul server ESXi:
cp /vmfs/volumes/NFS-share/VM_file.txt /vmfs/volumes/datastore10b/VM_file-copy.txt
Utilizzando l’Interfaccia Web VMware per Scaricare/Caricare File
È possibile utilizzare un’interfaccia web di VMware Host Client o VMware vSphere Client per caricare/scaricare file da/un datastore ESXi. L’interfaccia web è disponibile da qualsiasi macchina fisica o virtuale dotata di un browser web installato e di una connessione di rete a un host ESXi. Pertanto, è possibile aprire direttamente questa interfaccia web da una VM se un sistema operativo guest dispone di un’interfaccia grafica o utilizzare qualsiasi macchina locale come macchina intermedia per trasferire file da VM all’host e viceversa.
Esiste un modo alternativo, ma più complesso, per trasferire file a VMware ESXi da VM:
- Scaricare un disco virtuale della VM sulla propria macchina locale o su un’altra macchina.
- 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 VMware Workstation è installato.
- Caricare i file estratti o i file dal disco virtuale montato nel datastore dell’host ESXi utilizzando uno dei metodi spiegati sopra (nel client VMware Host, vSphere Client o client SCP, ecc.).
Leggi l’articolo dettagliato sul blog su come estrarre file dai dischi virtuali VMDK.
Utilizzo di file ISO per il trasferimento di dati a una VM
Se la connessione di rete non è disponibile per una VM, è possibile trasferire file a VM VMware utilizzando file immagine ISO:
- Crea un file immagine ISO con software come Ultra ISO per Windows.
- Scrivi i file necessari nell’immagine ISO sulla tua macchina locale o su un’altra macchina. È possibile copiare i file da ESXi utilizzando uno dei metodi sopra e scriverli nell’immagine ISO.
- Montare il file immagine ISO alla VM utilizzando un’unità CD/DVD virtuale della VM (è possibile montare il file ISO direttamente dalla tua macchina locale o caricare il file ISO in un datastore ESXi prima di fare questo). Utilizza VMware Host Client, VMware vSphere Client, VMware Workstation o VMware Remote Console per montare il file ISO alla VM ESXi.
Questo metodo non può essere utilizzato per trasferire file da VM al host perché una VM lavora con un disco CD/DVD virtuale in modalità di sola lettura.
Conclusione
Ci sono diversi metodi per copiare file a macchine virtuali da un host e viceversa. Alcuni di essi richiedono una connessione di rete e alcuni di essi funzionano anche se la rete non è disponibile. Puoi utilizzare il metodo che è adatto a te nel tuo scenario e combinare questi metodi. Ricorda di eseguire il backup delle tue VM per evitare la perdita di dati. Con NAKIVO Backup and Replication, puoi proteggere le tue VM in VMware vSphere e ripristinare file individuali direttamente da un backup di VM.
Source:
https://www.nakivo.com/blog/3-simple-ways-to-transfer-files-from-a-vm-to-a-host/