Virtuele machines bieden vele voordelen, zoals flexibiliteit, rationeel gebruik van middelen en het draaien in geïsoleerde omgevingen. Een veelvoorkomende taak in virtuele omgevingen is het kopiëren van bestanden tussen VM’s en hosts. Lees om te leren hoe je bestanden naar een virtuele machine vanaf een host kopieert, hoe je bestanden van een VM naar een host overzet, en hoe je bestanden tussen VM’s kopieert.
De Componenten van Onze Omgeving
Laten we beginnen met het doornemen van de terminologie:
- 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:
- Type 1: Gebruik van een ESXi-server, die de hostmachine is
- Type 2: Gebruik van VMware Workstation, en in dit geval kunnen Windows en Linux het besturingssysteem van de hostmachine zijn
In deze handleiding bestaat de omgeving die wordt gebruikt om uit te leggen hoe bestanden van VM naar host kunnen worden overgebracht uit de volgende componenten:
- ESXi-host 1: 192.168.101.201
- ESXi-host 2: 192.168.101.202
- Ubuntu Linux-machine: 192.168.101.210
- Windows-host met VMware Workstation geïnstalleerd
- Netwerk: 192.168.101.0/24
- ESXi-VM’s en VMware Workstation-VM’s verbonden met hetzelfde netwerk
We gebruiken de volgende technologieën om bestanden tussen VM’s en hosts te kopiëren:
- Gedeelde mappen
- Gedeeld klembord en slepen & neerzetten
- USB-opslagapparaat
- PowerCLI
- SSH en SCP
- NFS Share
- Bestanden downloaden/uploaden in een VMware-webinterface
- ISO-bestanden
Gebruik van Gedeelde Mappen om een VM-bestand naar de Host over te zetten
Gedeelde mappen is een handige functie in VMware Workstation om bestanden over te brengen tussen een fysieke Windows- of Linux-host waarop VMware Workstation is geïnstalleerd, en VM’s die op VMware Workstation draaien. Voor macOS is VMware Fusion het equivalent van VMware Workstation en ondersteunt vergelijkbare functies.
Laten we nu de stappen doornemen om bestanden over te brengen van VM naar host en vice versa met behulp van gedeelde mappen van VMware.
Opmerking: Voor deze functie om te werken, moet VMware Tools geïnstalleerd zijn op een VM. Gegevens tussen een host en VM worden overgedragen via interactie via VMware Tools tussen de host en het gast-OS zonder een netwerk te gebruiken.
- Selecteer een VM waarvoor u VMware-bestandsdeling wilt configureren. We selecteren een van onze Windows VM’s.
- Klik op VM > Instellingen (Bewerk virtuele machine-instellingen) in de VMware Workstation GUI.
- In het Virtuele machine-instellingen venster, selecteer het Opties tabblad en klik op Gedeelde mappen. In de Map delen sectie, selecteer Altijd ingeschakeld. Optioneel kunt u een gedeelde map als een netwerkstation in Windows-gasten toewijzen voor meer gemak door het selectievakje aan te vinken.
- Klik op Toevoegen om een map te selecteren die als gedeelde map zal worden gebruikt.
- Voer het pad in naar de map om te delen op de host of klik op Bladeren en selecteer de benodigde map. We selecteren C:\temp\share-VM
Voer een naam in voor de gedeelde map, bijvoorbeeld, share-VM
Klik op Volgende.
- Selecteer Deze share inschakelen. Als je wilt dat VM’s toegang hebben tot de gedeelde map in alleen-lezen modus, selecteer dan het Alleen lezen selectievakje. Klik op Voltooien.
- De nieuwe gedeelde map wordt nu weergegeven in de lijst met gedeelde mappen in het tabblad Opties van het venster Instellingen voor virtuele machine. Een gedeelde map is ingeschakeld als het overeenkomstige selectievakje is aangevinkt naast de bestandsnaam.
Klik op OK om de instellingen op te slaan.
- Open de gebruikersinterface van de Windows-VM die wordt gebruikt om de map te delen met de functie Gedeelde mappen.
- Klik op Netwerk (Mijn netwerklocaties) in Deze PC (Deze computer) of Windows Verkenner om beschikbare computers in het netwerk te zien.
- Selecteer vmware-host als de computernaam waarop de gedeelde map is geconfigureerd. Deze naam is standaard ingesteld en wordt toegewezen aan uw fysieke machine (host) met de gedeelde map.
- Klik op Gedeelde mappen en selecteer de benodigde gedeelde map (share-VM in ons voorbeeld). Het volledige pad naar de gedeelde map, in ons geval, is
\\vmware-host\Gedeelde mappen\share-VM\
Je kunt bestanden kopiëren naar een virtuele machine vanaf een host en naar een host vanaf een VM. We hebben in ons voorbeeld Test01.txt vanaf een Windows-host naar een Windows-gast gekopieerd met behulp van VMware-bestandsdeling in VMware Workstation.
Voor Linux-gasten kun je alle VMware-gedeelde mappen koppelen met het volgende commando zoals hieronder getoond:
- In Linux met een kernel van voor 4.0:
mount -t vmhgfs .host:/ /home/user1/shares
- In Linux met kernel 4.0 of nieuwer:
/usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other
Als je een gedeelde map na het herstarten van de VM wilt behouden, voeg dan de juiste regels met commentaar en configuratie toe in /etc/fstab, bijvoorbeeld:
# VMware gedeelde map om bestanden over te zetten tussen VMWare-gast en host
.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=1000 0 0
Voordat we doorgaan naar de volgende sectie, let op dat de gedeelde mappen functionaliteit alleen beschikbaar is in VMware Workstation (en VMware Fusion op macOS), en het is niet beschikbaar voor VM’s die worden uitgevoerd op ESXi-hosts. Voor ESXi-hosts kunt u handmatig een map delen en een netwerk gebruiken om bestanden tussen Windows-machines te kopiëren. Om bestanden van een VM naar een ESXi-host te kopiëren, dient u een aanvullend hulpmiddel te gebruiken of bestanden kopiëren vanuit een handmatig gedeelde map te combineren met een van de hieronder uitgelegde methoden.
Er zijn andere methoden voor het delen van een map in Windows 10 en Windows Server 2019. U kunt ook meer leren over het SMB-bestandsdelings protocol.
Als u een Windows-account met beheerdersrechten heeft en een beveiligingsbeleid toegang tot standaard verborgen beheerdersshares toestaat, kunt u toegang krijgen tot bestanden op lokale schijven van de Windows-machine met het pad naar de share, zoals:
\\IP-Address\c$
Waar:
IP-Address het IP-adres of de hostnaam van een externe Windows-machine is.
C$ is the needed disk drive letter on a remote Windows machine which is a hidden system share.
Het gebruiken van Gedeeld Klembord om Bestanden naar VM’s te Verplaatsen vanaf een Host
Gedeelde klembord is een functie waarmee u inhoud zoals tekst en hele bestanden kunt kopiëren en plakken vanuit een virtuele machine naar een hostmachine waarop VMware Workstation is geïnstalleerd. Het proces is vergelijkbaar met het proces wanneer u inhoud kopieert en plakt tussen verschillende toepassingsvensters in Windows of Linux met de GUI.
Alle functies zijn beschikbaar in VMware Workstation, waarmee u bestanden kunt overbrengen naar virtuele machines vanaf een host en naar een host vanuit een VM. U kunt bestanden ook slepen en neerzetten als alternatief voor kopiëren en plakken.
Gedeeld klembord in VMware Workstation
Laten we eens kijken hoe u bestanden naar VMware Workstation VM’s kunt overbrengen met behulp van een gedeeld klembord en slepen en neerzetten. In ons voorbeeld is VMware Workstation geïnstalleerd op een Windows-host.
- Selecteer uw VM in het linkerdeelvenster waar VM’s worden vermeld.
- Klik op Virtuele machine-instellingen bewerken (VM > Instellingen).
- Selecteer het tabblad Opties en klik op Gast Isolatie.
Selecteer twee selectievakjes:
- Inschakelen slepen en neerzetten
- Inschakelen kopiëren en plakken
Klik op OK om de instellingen op te slaan en het venster te sluiten.
Gedeeld klembord in VMware ESXi
Wat betreft VM’s die draaien op VMware ESXi, kun je geen bestand kopiëren met slepen en neerzetten of via een gedeeld klembord tussen een VM op een ESXi-host en een andere machine. De enige optie is om tekst te kopiëren en te plakken tussen een VM die op ESXi draait en je lokale machine (waarop VMware Workstation of VMware Remote Console is geïnstalleerd). Kopiëren en plakken en slepen en neerzetten voor bestanden worden niet ondersteund om veiligheidsredenen.
Als je echter geen configuratiebestand kunt kopiëren, kun je de tekstinhoud van het bestand kopiëren met een gedeeld klembord. Standaard is het gedeelde klembord uitgeschakeld in de ESXi-VM-configuratie. Doe het volgende op een ESXi-host om een gedeeld klembord in te schakelen om tekstgegevens te kopiëren en te plakken:
- De VM moet worden uitgeschakeld bij het bewerken van de VM-configuratie. Schakel de VM uit als de VM actief is.
- Open VM-instellingen. U kunt VMware Host Client en VMware vSphere Client gebruiken. Selecteer een VM, klik op VM-instellingen bewerken en selecteer het tabblad VM-opties.
Vouw de Geavanceerde instellingen sectie uit en klik op Configuratie bewerken.
- U moet drie configuratieparameters toevoegen aan de VM-configuratie (die wordt geschreven naar het VM-configuratie VMX-bestand). Klik op Parameter toevoegen.
- Voeg deze drie parameters toe:
isolation.tools.copy.disable FALSE
isolation.tools.paste.disable FALSE
isolation.tools.setGUIOptions.enable TRUE
- Klik op OK en sla de instellingen op.
Als alternatief kunt u handmatig een VMX-bestand bewerken met VM-configuratie die zich bevindt op een ESXi-datastore in de VM-map.
- Log in op de ESXi-shell lokaal of via SSH.
- Ga naar de VM-map (een map waar VM-bestanden worden opgeslagen op een datastore). In ons geval gaan we naar deze map:
cd /vmfs/volumes/datastore10a/Windows-VM/
- Bewerk het VMX-configuratiebestand. In ons geval is het bestand Windows-VM.vmx
vi Windows-VM.vmx
- Voeg de drie hierboven getoonde parameters toe aan het einde van dit configuratiebestand.
- Sla de wijzigingen op en sluit het bestand (verlaat de teksteditor).
Nu kunnen we tekst kopiëren en plakken tussen onze lokale machine en een externe VM die draait op een ESXi-host door gebruik te maken van VMware Remote Console en VMware Workstation om verbinding te maken met een VM.
Het gebruik van een USB-opslagapparaat
VMware ESXi en VMware Workstation ondersteunen de USB-doorvoerfunctie, waarmee u een USB-apparaat in een hostmachine kunt plaatsen en dit USB-apparaat kunt verbinden met een virtuele machine die op deze host draait. U kunt achtereenvolgens een USB-opslagapparaat verbinden met een hostmachine en een virtuele machine om bestanden tussen deze machines in beide richtingen te kopiëren.
Let op: VMware Tools moeten zijn geïnstalleerd op het gastbesturingssysteem (OS) van de VM om de USB-doorvoerfunctie te kunnen gebruiken.
Bestanden kopiëren tussen VMware Workstation-VM’s en de host
Volg deze stappen om bestanden over te zetten van VM naar host in VMware Workstation geïnstalleerd op Windows- en Linux-hosts (de interface is uniform):
- Zet de virtuele machine aan.
- Plaats een USB-opslagapparaat, zoals een USB-HDD (harde schijf) of USB-flashstation, in een fysieke computer die een hostmachine is.
- Het Nieuw USB-apparaat gedetecteerd venster opent in VMware Workstation. Kies waar u uw USB-apparaat wilt aansluiten:
- Verbinden met de host
- Verbinden met een virtuele machine
Laten we de tweede optie selecteren en onze USB-flashdrive aansluiten op de virtuele machine. We draaien een Windows VM in dit voorbeeld. Als er meerdere VM’s worden uitgevoerd op VMware Workstation, moet u de benodigde VM in de lijst selecteren. Een USB-apparaat kan slechts aan één VM tegelijk worden aangesloten. Klik op OK om door te gaan.
Als uw USB-opslagapparaat al is ingestoken in de USB-poort van de fysieke hostmachine waarop VMware Workstation is geïnstalleerd, wordt het pop-upvenster met USB-doorgeefopties niet automatisch weergegeven. U kunt een USB-apparaat aansluiten op een VM (loskoppelen van een host) in het menu:
Ga naar VM > Verwijderbare apparaten > Naam van uw USB-opslagapparaat > Verbinden (Loskoppelen van host).
In ons voorbeeld is de naam van de USB-flashdrive Kingston DataTraveler 2.0.
- Nu kunnen we de USB-flashdrive zien die is verbonden met de Windows 7 VM in de lijst met schijfstations van Deze Computer (Windows Verkenner). Om het USB-opslagapparaat te controleren:
- Klik met de rechtermuisknop op Deze Computer en selecteer Beheren.
- Ga naar Computerbeheer > Apparaatbeheer en Computerbeheer > Schijfbeheer in de juiste snap-in nadat je met de rechtermuisknop hebt geklikt.
Als er niet automatisch een schijfletter wordt toegewezen, wijs dan handmatig een letter toe in de Schijfbeheer snap-in.
De workflow voor Linux-gasten is identiek. In sommige Linux-distributies moet je een aangesloten USB-opslagapparaat zoals een flashdrive handmatig koppelen in het Linux-besturingssysteem.
- Zodra het USB-opslagapparaat aan de VM is gekoppeld en door het gast-OS is herkend, kopieer dan de benodigde bestanden van de VM naar een USB-opslagapparaat. Het kopiëren van bestanden van het USB-opslagapparaat naar een VM werkt nu ook.
- Nadat alle benodigde bestanden van de VM naar de USB-flashdrive zijn gekopieerd, koppel de USB-flashdrive los van de VM en sluit dit USB-apparaat aan op de host:
Klik op VM > Verwijderbare apparaten > Naam van uw USB-opslagapparaat > Ontkoppelen (Aansluiten op 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.
USB-doorvoer van VMware Workstation naar ESXi-VM’s
U kunt een USB-flashstation gebruiken dat in een ESXi-server is gestoken en in uw lokale Windows- of Linux-machine is gestoken (met VMware Workstation of VMware Remote Console (VMRC) geïnstalleerd) die u op afstand gebruikt om een ESXi-host te beheren om dit USB-flashstation te verbinden met een ESXi-VM. In het eerste geval wordt de met de host verbonden USB-doorvoer gebruikt en in het tweede geval wordt de met de client verbonden USB-doorvoer gebruikt.
Laten we een USB-flashstation dat in onze lokale fysieke Windows 10-machine is gestoken, verbinden met een Windows XP-VM die wordt uitgevoerd op een ESXi-host v7.0 (met behulp van de USB-doorvoerfunctie verbonden met de client). VMware Workstation is geïnstalleerd op onze fysieke Windows-machine en verbonden met de ESXi-host via het netwerk (192.168.101.0/24).
Om dit te doen:
- A VM must be powered off to edit the VM settings.
- Zorg ervoor dat een USB-controller aanwezig is in de lijst met virtuele hardware van de VM. U kunt de VM-configuratie controleren in VMware Host Client. Selecteer uw VM (Windows-VM in ons geval), klik op Bewerken en selecteer het tabblad Virtuele Hardware.
- Laten we teruggaan naar VMware Workstation geïnstalleerd op onze lokale (fysieke) Windows 10-machine. Klik op Bestand > Verbinden met een server in VMware Workstation om verbinding te maken met een externe ESXi-host.
- Voer de naam of het IP-adres van de ESXi-server, gebruikersnaam en wachtwoord in. Klik op Verbinden.
- Breid de ESXi-host uit in het linkerdeelvenster van VMware Workstation waar externe hosts, externe VM’s op deze hosts en lokale VMware Workstation-VM’s worden weergegeven.
- Selecteer een VM die wordt uitgevoerd op een externe ESXi-host. We selecteren Windows-VM die draait op 192.168.101.201. We kunnen daarna een gebruikersinterface van een gast-OS van de geselecteerde VM zien.
- Klik op VM > Verwijderbare Apparaten > De naam van uw USB-opslagapparaat > Verbinden (Loskoppelen van Gast).
Merk op dat we een USB-apparaat selecteren dat is aangesloten op onze fysieke Windows-machine waarop VMware Workstation is geïnstalleerd. Dit USB-apparaat is niet een apparaat dat is aangesloten op een fysieke ESXi-host waarmee we op afstand zijn verbonden.
- Nu kunnen we onze USB-flashdrive zien die is aangesloten op de Windows XP VM die wordt uitgevoerd op de externe ESXi-host: Start > CMD > compmgmt.msc > Apparaatbeheer.
- Ken een schijfletter toe aan de partitie van de aangesloten USB-flashdrive als er nog geen schijfletter is toegewezen. Kopieer de benodigde bestanden tussen de VM en de USB-flashdrive. Je kunt bestanden overzetten naar een VM en van een VM.
- Na het kopiëren van bestanden, kun je het USB-opslagapparaat loskoppelen van de VM en dit apparaat weer aansluiten op de lokale fysieke Windows 10-machine waarop VMware Workstation wordt uitgevoerd. In de VMware Workstation GUI, klik op VM > Verwijderbare apparaten > Naam van je USB-opslagapparaat > Ontkoppelen (Verbinden met host).
Een USB-flashstation aansluiten op ESXi
Deze methode is uiterst nuttig in sommige gevallen, bijvoorbeeld als je een netwerkdriver moet bijwerken op een ESXi-host en je het netwerk niet kunt gebruiken. Het aansluiten van een USB-flashstation op ESXi is ingewikkelder dan op een hostmachine waarop VMware Workstation wordt uitgevoerd.
Er zijn beperkingen op ESXi met betrekking tot ondersteunde bestandssystemen die aan ESXi kunnen worden gekoppeld. USB-flashstations of USB-HDD’s met FAT32- en NTFS-bestandssystemen worden niet ondersteund. Om deze reden moeten we een partitie maken op onze USB-flashstation en deze partitie formatteren met VFAT (dat in Windows wordt herkend als FAT12). VFAT heeft beperkingen, zoals de maximale partitiegrootte en de maximale bestandsgrootte. Daarom is deze methode niet van toepassing op grote bestanden zoals virtuele schijven of ISO-images groter dan 4 GB. Deze limieten zijn echter voldoende voor het overbrengen van configuratiebestanden, stuurprogramma’s, enzovoort.
Een partitie maken op een USB-flashstation
Allereerst maken we een nieuwe partitie op ons USB-flashstation en formatteren we deze partitie in VFAT. We kunnen dat doen door een USB-flashstation dat is ingevoegd in de ESXi-server aan een VM te koppelen (met behulp van de host-verbonden USB-doorvoerfunctie). Als alternatief kunnen we een USB-flashstation invoegen in een fysieke Windows- of Linux-machine.
In dit voorbeeld gebruiken we een Windows 7-machine om een USB-flashstation voor ESXi voor te bereiden. Opdrachten voor Windows Server 2008R2, Windows 10 en andere nieuwere Windows-versies zijn hetzelfde.
- Om ervoor te zorgen dat een USB-flashstation is verbonden met uw Windows-machine, klikt u met de rechtermuisknop op Deze computer of Deze pc (of voert u diskmgmt.msc uit vanuit CMD) om Schijfbeheer te openen.
- Open de Windows-opdrachtregel:
Start > Uitvoeren > cmd
- Typ
diskpart
in de opdrachtregel en druk op Enter.Je ziet een diskpart-prompt:
Diskpart
- Lijst de schijven die zijn verbonden met je Windows-machine op:
list disk
Vind je USB-flashstation in de uitvoerlijst en onthoud het schijfnummer. In ons geval is Schijf 1 het nummer van ons USB-flashstation (zie de onderstaande schermafbeelding).
- Selecteer je USB-flashstation door het juiste schijfnummer te definiëren dat je uit de uitvoer van bovenstaand commando hebt gekregen (schijf 1 in ons geval).
select disk 1
- Hieronder staan de partities op de geselecteerde USB-flashdrive:
lijst partitie
We hebben één partitie (Partitie 1) op onze USB-flashdrive (zie de onderstaande schermafbeelding). Het hebben van één partitie op een USB-flashdrive is het meest voorkomende geval.
Vervolgens moeten we partities op de USB-flashdrive verwijderen.
Belangrijk: Alle gegevens op de USB-flashdrive worden verwijderd. U kunt gegevens van de flashdrive kopiëren indien nodig voordat u naar de volgende stappen gaat.
- Selecteer een partitie op de USB-flashdrive die verwijderd gaat worden:
selecteer partitie 1
- Voer het commando uit om de geselecteerde partitie te verwijderen:
verwijder partitie
- Selecteer opnieuw een schijf die uw USB-flashstation is:
select disk 1
- Maak een nieuwe partitie met een VFAT-bestandssysteem. In dit voorbeeld maken we een partitie van 4 GB op onze USB-flashdrive. Houd er rekening mee dat u geen bestanden groter dan 4 GB kunt opslaan op VFAT. Merk op dat VFAT alleen het 8.3-bestandsnaamformaat ondersteunt.
create partition primary size=4000 id=6
- Formatteer de aangemaakte partitie op deze manier om compatibiliteit met ESXi te behouden:
format fs=fat quick
- Sluit het diskpart-hulpprogramma af (voer het exit commando uit).
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.
Laten we veronderstellen dat we een ZIP-archief met stuurprogramma’s moeten kopiëren. We hebben bijvoorbeeld net-tulip.zip naar een USB-flashstation gekopieerd. Vervolgens moeten we een partitie van een USB-flashstation dat is ingevoegd in een ESXi-server, in de ESXi-opdrachtregel koppelen.
Configuratie van een ESXi-host om een USB-flashstation te gebruiken
Veronderstel dat we een ZIP-archief met een stuurprogramma van een USB-flashstation naar een ESXi-datastore moeten kopiëren en vervolgens een VM-configuratiebestand van een ESXi-datastore naar een USB-flashstation moeten kopiëren. De bestandsnaam is net-tulip.zip in ons voorbeeld. Voer het volgende uit op de ESXi-host om bestanden over te brengen naar VMware ESXi van een USB-flashstation en omgekeerd:
- Configuratie wordt gemaakt in de opdrachtregelinterface. Daarom moet u SSH-toegang inschakelen op een ESXi-host.
- Om externe SSH-toegang in DCUI in te schakelen, gaat u naar Probleemoplossingsopties > SSH inschakelen.
- Om externe SSH-toegang en SSH-server op ESXi in VMware Host Client in te schakelen, gaat u naar Host> Beheren en selecteert u het tabblad Diensten. Klik met de rechtermuisknop op TSM-SSH en klik op Start om de service te starten. U kunt deze service permanent inschakelen.
- Maak verbinding met de ESXi-host via SSH om de opdrachtregel te gebruiken. U kunt uw favoriete SSH-client gebruiken.
- Stop de USB-arbitrage-service:
/etc/init.d/usbarbitrator stop
De USB-arbitrage schakelt automatisch de USB-doorvoerfunctie in voor virtuele machines die zich bevinden op een ESXi-host (u hoeft alleen een USB-flashstation te selecteren in de VM-instellingen van de betreffende VM om deze functie te gebruiken).
- Als u de USB-arbitrage-service na het opnieuw opstarten van ESXi wilt uitschakelen (permanent), kunt u de opdracht gebruiken:
chkconfig usbarbitrator off
Om de USB-arbitrage-service in te schakelen, gebruikt u de juiste opdracht:
/etc/init.d/usbarbitrator start
chkconfig usbarbitrator on
- Optionele commando’s om de USB-apparaten verbonden met een ESXi-host te controleren:
lsusb
esxcli storage core device list | grep -i usb
esxcli storage filesystem list
Je kunt /var/log/usb.log bekijken om de status van een USB-apparaat te controleren.
- Je moet mogelijk een USB-opslagapparaat loskoppelen en weer aansluiten nadat je de USB-arbitrator-service hebt gestopt.
- Lijst de blok-schijfapparaten op om de verbonden USB-flashdrive (of USB HDD) te vinden/identificeren.
ls -ltrh /vmfs/devices/disks/
Onze USB-flashdrive is mpx.vmhba32:C0:T0:L0: (zie de onderstaande schermafbeelding).
Dus, het volledige schijfadres/locatie is:
/dev/disks/mpx.vmhba32:C0:T0:L0:
- Controleer het partitienummer van het USB-apparaat om ervoor te zorgen dat u het juiste schijfapparaat hebt geïdentificeerd:
ls /dev/disks/mpx.vmhba32:C0:T0:L0:*
Volgens de uitvoer is het volledige apparaat-ID, rekening houdend met het partitienummer in ons geval, als volgt:
/dev/disks/mpx.vmhba32:C0:T0:L0:1
- Localiseer de hoofdmap van een USB-flashstation om het bron-/bestemmingspad voor het kopiëren van bestanden te definiëren. Voer de volgende opdracht uit en druk op Tab om de beschikbare items in de volumes directory te zien. De /volumes/ directory van het ESXi-bestandssysteem is een directory waarin partities met bestandssystemen zijn gemonteerd.
ls -al /vmfs/volumes/ [druk op Tab]
Het volume op een USB-flashstation heet NO NAME
- Controleer de inhoud van de rootdirectory van de USB-flashdrive
ls -al /vmfs/volumes/NO\ NAME/
Ons ZIP-archief is aanwezig op het volume van de USB-flashdrive.
- We hebben de map installeren aangemaakt op de ESXi-dataschijf (datastore10a) met de commando’s:
cd /vmfs/volumes/datastore10a
mkdir install
In de onderstaande schermafbeelding kunt u ook de map zien van de VM waarvan we het configuratiebestand later van de ESXi-dataschijf naar een USB-flashdrive gaan kopiëren.
- Kopieer het ZIP-archief van de USB-flashdrive naar de install-map op onze ESXi-host (op datastore10a).
cp /vmfs/volumes/NO\ NAME/net-tulip.zip /vmfs/volumes/datastore10a/install/
- Controleer of het bestand succesvol is gekopieerd:
ls -al /vmfs/volumes/datastore10a/install/
Het bestand is succesvol gekopieerd.
Vergelijkbaar kunt u bestanden in de tegenovergestelde richting kopiëren – bestanden kopiëren van ESXi naar een USB-flashdrive en vervolgens het benodigde bestand naar een VM of naar een ander apparaat vanaf deze USB-flashdrive kopiëren.
- Controleer de inhoud van de VM-map:
ls -al /vmfs/volumes/datastore10a/Windows-VM/
- Kopieer het configuratiebestand Windows-VM.vmx van een ESXi-dataschijf naar een USB-flashdrive:
cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/NO\ NAME/
- Controleer of het bestand is gekopieerd naar de USB-flashdrive:
ls -al /vmfs/volumes/NO\ NAME/
Na het voltooien van het kopiëren van bestanden op de ESXi-host, kunt u de USB-flashdrive uitwerpen en de USB-arbitrator-service op de ESXi-host starten. Vervolgens kunt u de USB-flashdrive invoegen en de functie voor USB-doorvoer die is aangesloten op de host gebruiken om de USB-flashdrive aan de virtuele machine te koppelen.
Lees meer over USB-doorvoer voor ESXi en het aansluiten van een USB-opslagapparaat dat in een ESXi-host is gestoken op een VM die op de ESXi-host is gehuisvest.
Het gebruik van PowerCLI om bestanden over te zetten naar VMware VM’s
Een andere methode om bestanden van VM naar host over te zetten, is door PowerCLI-opdrachten (cmdlets) te gebruiken. VMware Tools moeten zijn geïnstalleerd in een gastbesturingssysteem binnen een VM. Deze PowerShell-cmdlets gebruiken VMware Tools om bestanden te kopiëren naar/van VM’s die zijn gehuisvest op een ESXi-host. U heeft dus geen netwerk nodig als u opdrachten uitvoert binnen een VM die is gehuisvest op de bron-/doel-ESXi-host.
Om bestanden tussen VM’s te kopiëren, kunt u een Copy-VMGuestFile-cmdlet en andere cmdlets gebruiken in vSphere PowerCLI.
- Verbind met een ESXi-host of vCenter Server. We verbinden met een ESXi-host in dit voorbeeld.
Connect-VIServer 192.168.101.201
- Om de certificaatwaarschuwing te vermijden, voer het volgende commando uit:
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Kopieer-VMGuestFile (Lokaal > ESXi-VM)
Gebruik het volgende commando om een bestand vanaf een lokale machine (een machine waar PowerCLI wordt uitgevoerd) naar een externe VM op een ESXi-host te kopiëren:
Copy-VMGuestFile -Source "c:\temp\test.txt" -LocalToGuest -VM Windows-VM -Destination "c:\temp-VM" -GuestUser user1 -GuestPassword Password
Waar:
c:\temp\test.txt is the source file that we want to copy from the local machine
-LocalToGuest is de richting (van lokale machine naar gast-OS op een doel-VM die op ESXi draait)
-VM Windows-VM is de definitie van de bestemmings-VM-naam
c:\temp-VM is the destination folder on the destination VM (where we want to store a file copy)
user1 is de gebruikersnaam in het gastbesturingssysteem (OS) op de bestemmings-VM. Deze gebruiker moet toegang hebben tot de gedefinieerde bestemmingsmap.
Wachtwoord is het wachtwoord voor deze gebruiker.
We negeren de waarschuwing over de VMware Tools-versie en controleren of ons text.txt-bestand is gekopieerd.
We kunnen zien dat ons test.txt-bestand, waarvan de grootte 29 bytes is, succesvol is gekopieerd naar de Windows XP-VM die wordt uitgevoerd op een ESXi-host.
Copy-VMGuestFile (ESXi VM > Lokaal)
Nu, laten we een bestand kopiëren vanuit het gast-OS van de VM naar een lokale map van de machine waar de opdracht wordt uitgevoerd:
Copy-VMGuestFile -Source "c:\temp-VM\test2.txt" -GuestToLocal -Destination "c:\temp" -VM Windows-VM -GuestUser user1 -GuestPassword Password
Waar:
-Source “c:\temp-VM\test2.txt” is het pad naar het bronbestand op de VM die wordt uitgevoerd op ESXi
-GuestToLocal is de richting (van een gast-OS van de ESXi-VM naar de lokale machine waar de opdracht wordt uitgevoerd)
“c:\temp” is het pad naar de bestemmingsmap op een lokale machine
user1 is de gebruikersnaam in het gastbesturingssysteem op de bestemmings-VM. Deze gebruiker moet toegang hebben tot de gedefinieerde bestemmingsmap.
Wachtwoord is het wachtwoord voor deze gebruiker in het gast-OS
U kunt voorbeelden zien van het gebruik van de Copy-VMGuestFile-cmdlet met de opdracht:
get-help Copy-VMGuestFile -examples
Gebruik Copy-DatastoreItem
De Copy-DatastoreItem PowerShell-cmdlet wordt gebruikt om bestanden te kopiëren naar/vanaf een ESXi-datastore. Er zijn 2 benaderingen voor het gebruik van deze cmdlet om een bestand naar de VMware ESXi-datastore te kopiëren:
- Als PowerCLI is geïnstalleerd op een Windows-gast binnen de VM, kunt u een opdracht uitvoeren om een bestand rechtstreeks van een ESXi-datastore naar een VM en vice versa te kopiëren.
- Als u PowerCLI niet kunt installeren op een virtuele machine die op een ESXi-host staat, kunt u PowerCLI-opdrachten uitvoeren vanaf uw lokale Windows-machine, bestanden kopiëren van een ESXi-datastore naar uw lokale machine met de Copy-VMGuestFile-opdracht, en vervolgens deze bestanden van uw lokale machine naar een VM kopiëren met de Copy-VMGuestFile.
U moet verbonden zijn met een ESXi-server of vCenter Server. Dit kunt u doen met de opdracht:
ViConnect <server_name_or_IP>
We zijn rechtstreeks verbonden met de ESXi-host.
Laten we een VM-configuratiebestand kopiëren vanaf de datastore naar de huidige Windows-machine (de machine waarop we deze opdrachten uitvoeren – het kan ook een VM zijn op een ESXi-host):
- Krijg de informatie over de datastore:
Get-Datastore "datastore10a"
- Krijg een ESXi-datastoreobject:
$datastore = Get-Datastore "datastore10a"
- Maak een nieuwe PowerShell-schijf aan, genaamd ds:, die wordt toegewezen aan $datastore:
New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root "\"
- Stel uw datastore in als de huidige locatie:
Set-Location ds:\
- Om bestanden en mappen in de geselecteerde map weer te geven, gebruikt u het commando:
Get-ChildItem
- U kunt de VM-map instellen als een nieuwe locatie. In ons geval is deze map Windows-VM
Set-Location "Windows-VM"
- De opdracht om het VM-bestand te kopiëren, dat wil zeggen het VM-configuratie VMX-bestand, van de gedefinieerde ESXi datastore naar de tijdelijke map op de huidige machine:
Kopieer-DatastoreItem -Item ds:\Windows-VM\Windows-VM.vmx -Bestemming c:\temp
Waar:
ds:\Windows-VM\Windows-VM.vmx is het pad naar een bestand dat moet worden gekopieerd en ds:\ is de gedefinieerde snelkoppeling naar een datastore (datstore10a in dit geval).
- Als u verbinding hebt gemaakt met vCenter (niet met een specifieke ESXi-host zoals we in dit voorbeeld deden), kunt u de volgende opdracht gebruiken met het definiëren van een datastore in het vCenter-datacenter om een bestand van de ESXi datastore naar een map op een lokale machine te kopiëren:
Kopieer-DatastoreItem vmstore:\Datacenter1\datastore10a\Windows-VM\Windows-VM.vmx c:\temp\
- Om een bestand in tegenovergestelde richting te kopiëren (door verbinding te maken met een ESXi-host), gebruik het commando:
Copy-DatastoreItem -Item c:\temp\darwin.iso -Bestemming ds:\install\
We kopiëren darwin.iso (dat is een image met VMware Tools voor macOS) van een Windows-machine naar de installatiemap op een ESXi datastore.
- Als je verbonden bent met vCenter, kun je dit commando gebruiken om een bestand van een lokale Windows-machine naar een datastore op een externe ESXi-host te kopiëren:
Copy-DatastoreItem c:\temp\darwin.iso -Bestemming vmstore:\Datacenter1\datastore10a\install\
Je kunt deze PowerCLI-cmdlets gebruiken en PowerShell-scripts maken om bestanden van VM naar host en vice versa over te brengen.
Commando’s om bestanden van een VM naar een host te kopiëren in VMware Workstation
Als je VMware Workstation gebruikt (wat een type-2 hypervisor is) op je Windows- of Linux-host (of VMware Fusion op macOS), kun je ook de command-line interface gebruiken om bestanden van VM naar host en vice versa te kopiëren. Je kunt de vmrun command-line tool gebruiken om te werken met virtuele machines. De syntaxis van commando’s is hetzelfde voor Windows, Linux en macOS (VMware Fusion). We gebruiken VMware Workstation 15 op Windows 10 in deze handleiding.
- Ga naar de VMware Workstation-map:
cd "C:\Program Files (x86)\VMware\VMware Workstation\"
- Gebruik het commando als volgt om een bestand van het gastbesturingssysteem binnen de VM naar de lokale Windows-host te kopiëren:
CopyFileFromHostToGuest <Pad naar vmx-bestand> <Pad in gast> <Pad op host>
In ons geval is het exacte commando:
vmrun copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"
-
Waar:
d:\virtual\WinServer2019\WinServer2019.vmx is een virtuele schijf van de VM waarvan we het bestand kopiëren.
c:\temp\test.txt is een bestand dat is opgeslagen op de virtuele schijf van een VM; dit is een bestand dat we kopiëren.
c:\temp\copied\ is een directory waar het gekopieerde bestand op een hostmachine wordt opgeslagen.
Zorg ervoor dat je het backslash-teken \ gebruikt bij het instellen van een pad. We hebben test.txt gekopieerd, dat een tekstbestand is van een VM naar een host.
Als alternatief kunt u een opdracht uitvoeren door referenties in de opdracht te definiëren:
vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test.txt" "c:\temp\copied\"
Om een bestand in omgekeerde richting te kopiëren (van een hostmachine naar een VM), gebruik je het commando op deze manier:
CopyFileFromHostToGuest <Pad naar vmx-bestand> <Pad op host> <Pad in gast>
Het specifieke commando in dit voorbeeld is:
vmrun copyFileFromHostToGuest d:\virtual\WinServer2019\WinServer2019.vmx "c:\temp\test3.txt" "c:\temp\test3-copy.txt"
Hoe bestanden overbrengen met SSH en SCP
SSH (Secure Shell) is een veelvoorkomend protocol voor het veilig beheren van externe hosts met behulp van versleuteling. SCP is een protocol dat vertrouwt op SSH voor het veilig kopiëren van bestanden over het netwerk. Je kunt SCP gebruiken om bestanden van VM naar host over te brengen, vooral als Linux op de VM draait. Een SCP- en SSH-server kan op Linux-machines en ESXi worden ingeschakeld in een paar stappen.
Hoe een SSH-server inschakelen in ESXi
Om deze methode te gebruiken en bestanden over te brengen naar VMware ESXi en van ESXi, moet er een SSH-serverservice zijn ingeschakeld op een ESXi-host.
- Om een SSH-server in VMware Host Client in te schakelen, ga naar Host > Beheren > Services en start de TSM-SSH-service.
- SSH moet worden toegestaan in de ESXi-firewall om SCP-verkeer toe te staan voor het overbrengen van bestanden van een ESXi-host en om verbinding te maken met andere machines via SCP vanaf deze ESXi-host:
- Ga naar Netwerken in het Navigatie-paneel, selecteer het tabblad Firewallregels en selecteer SSH-client.
- Klik op Acties > Inschakelen om de firewallregel in te schakelen.
- Om de SSH-verbinding tussen hosts te controleren, kunt u dit commando uitvoeren op een ESXi-host:
nc -z 192.168.101.202 22
Waar:
192.168.101.202 het IP-adres is van een externe host.
22 is het poortnummer voor de SSH-verbinding (22 is het standaard poortnummer).
De algemene syntaxis van het scp-commando om bestanden via SCP over het netwerk te kopiëren:
scp [OPTIE] [gebruiker]@[BRON_HOST]:pad_naar_bestand1 [gebruiker]@[DOEL_HOST]:pad_naar_bestand2
[gebruiker]@[BRON_HOST]:pad_naar_bestand1 – een bronbestand
[gebruiker]@[DOEL_HOST]:pad_naar_bestand2 – een bestemmingsbestand
-P specificeert een poortnummer voor SSH-verbinding (gebruik deze vlag als het poortnummer niet 22 is).
Hieronder leggen we de specifieke voorbeelden in de praktijk uit.
Hoe u een lokaal bestand naar een externe machine kopieert via SCP
Om een lokaal bestand naar een externe machine te kopiëren via SCP, gebruikt u het commando zoals:
scp bestand.txt gebruikersnaam@extern_host_ip:/externe/map
Van Linux
Laten we het bestand LinuxDir.txt kopiëren vanaf een lokale Ubuntu Linux-machine (die ook een VM kan zijn) naar een ESXi-host via het netwerk met behulp van SCP. De bestemmingslocatie op de externe ESXi-host is de installeren map op de datastore10a datastore. Het IP-adres van de externe ESXi-host is 192.168.101.201.
Het commando om het bestand van de lokale Linux-machine naar de externe ESXi-host te kopiëren in ons geval is:
scp LinuxDir.txt [email protected]:/vmfs/volumes/datastore10a/installeren/
U kunt het gekopieerde bestand op de bestemmingsmachine opslaan met een nieuwe bestandsnaam:
scp LinuxDir.txt [email protected]:/vmfs/volumes/datastore10a/installeren/LinuxDir-kopie.txt
Gebruik de -r vlag om een map met alle ingesloten bestanden te kopiëren:
scp -r /lokale/map [email protected]:/externe/map
Vanaf ESXi
U kunt scp-opdrachten gebruiken op een ESXi-host. De scp-syntaxis op de opdrachtregel is hetzelfde voor Linux en ESXi. Een SSH-server moet geconfigureerd zijn op de externe machine.
Laten we inloggen op de ESXi-host (192.168.101.201) en de map installeren met alle inhoud naar de thuismap van gebruiker1 op de externe Linux-machine (192.168.101.210) kopiëren.
scp -r /vmfs/volumes/datastore10a/install/ [email protected]:/home/user1/
Als de SSH-server luistert naar een poort anders dan 22, gebruik dan de -P-parameter; bijvoorbeeld, als het SSH-poortnummer 8022 is, is de opdracht:
scp -P 8022 -r /vmfs/volumes/datastore10a/install/ [email protected]:/home/user1/
Hoe een bestand van een externe naar een lokale machine kopiëren via SCP
SCP is handig voor het kopiëren van bestanden van een externe machine naar de lokale machine, wat u ook toestaat om bestanden van VM naar host over te brengen. Hieronder leggen we uit hoe u de juiste opdrachten uitvoert in Linux en ESXi.
Bestanden kopiëren naar een lokale Linux-machine
We gaan een bestand van de externe ESXi-host naar de huidige Linux-machine kopiëren met SCP. Gebruik hiervoor de opdracht zoals:
scp remote_gebruikersnaam@remote_ip_adres:/externe/bestand.txt /lokale/map
Laten we een darwin.iso bestand kopiëren van de externe ESXi-server naar de gedefinieerde home-directory op de Linux-machine:
scp [email protected]:/vmfs/volumes/datastore10a/install/winPreVista.iso /home/user1/
Bestanden kopiëren naar een lokale ESXi-host
Als we inloggen op een ESXi-host, kunnen we het commando uitvoeren om een VM-bestand van een externe Linux-machine naar een datastore op de lokale ESXi-host te kopiëren. Laten we VM_file.txt van de Linux-machine naar de directory van de ESXi-datastore kopiëren via het netwerk met SCP:
scp [email protected]:/home/user1/VM_file.txt /vmfs/volumes/datastore10a/install/
Hoe bestanden kopiëren tussen twee externe machines
Er zijn SCP-commando’s om bestanden van de ene externe machine naar de andere externe machine te kopiëren, met en zonder het kopiëren van gegevens via de huidige lokale machine. De commandosyntax is als volgt:
scp [email protected]://directory/file.txt [email protected]://directory/
De gegevens worden rechtstreeks van de ene externe host naar de andere overgebracht (zonder te worden gekopieerd naar onze huidige lokale machine) met het bovenstaande commando. Als je het verkeer wilt routeren via je lokale machine waarop je het commando uitvoert, gebruik dan de -3 vlag.
Opmerking: Gebruik dit commando als de referenties op beide externe hosts hetzelfde zijn.
Een voorbeeld van het commando dat moet worden uitgevoerd op een lokale Linux-machine om een bestand (vim.v00) te kopiëren van een externe ESXi-host (192.168.101.202) naar een lokale ESXi-host (192.168.101.201):
scp [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/
Als je de fout Host key verification failed ziet, betekent dit dat de host-sleutel niet is opgeslagen op een van de hosts. Als de fout wordt veroorzaakt door het wijzigen van de host-sleutel op de externe server, verwijder dan de oude host-sleutel voor de huidige externe host die is opgeslagen in ~/.ssh/known_hosts
Het commando om een oude host-sleutel te verwijderen is:
ssh-keygen -R hostname_of_IP_adres
Bijvoorbeeld, voer het commando uit op 192.168.101.202 om de oude host-sleutel te verwijderen voor de externe host 192.168.101.201:
ssh-keygen -R 192.168.101.201
Een voorbeeld van het gebruik van -3 in het commando om bestanden te kopiëren via de lokale machine:
scp -3 [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/
Het alternatieve commando hiervoor is:
scp -o "ForwardAgent yes" [email protected]://vmfs/volumes/BOOTBANK1/vim.v00 [email protected]://vmfs/volumes/datastore10a/install/
Hoe bestanden via SCP kopiëren vanaf Windows
Je kunt ook bestanden kopiëren naar virtuele machines of ESXi-hosts in Windows. Hiervoor moet je een SCP-client zoals WinSCP gebruiken, wat een gebruiksvriendelijke en handige grafische interface is. Je kunt WinSCP downloaden gratis.
- Voer WinSCP uit.
- Selecteer een protocol, bijvoorbeeld, SFTP.
- Voer een hostnaam en poortnummer in van een externe host, zoals een ESXi-host of een Linux-machine.
- Voer een gebruikersnaam en wachtwoord in van een externe machine.
- Klik op Aanmelden.
In dit voorbeeld maken we verbinding met een externe ESXi-host.
- A notification message is displayed:
Ga door met verbinden met onbekende server en voeg zijn hostkey toe aan een cache?
Klik op Ja om door te gaan.
- Zodra verbonden, zie je het venster in de stijl van een commandant met twee panelen. Eén paneel vertegenwoordigt de directory op de lokale machine en het andere paneel vertegenwoordigt de directory op de externe machine. Je kunt bestanden kopiëren tussen de lokale host en de externe host door bestanden te kopiëren tussen deze twee panelen.
U kunt bestanden kopiëren van een datastore van een externe ESXi-host waarmee u verbonden bent in WinSCP naar een externe Windows VM of fysieke machine met behulp van een SMB-share op die Windows-machine.
U kunt echter niet het directe gedeelde pad invoeren in een WinSCP-paneel (bijvoorbeeld, \\192.168.101.117\c$). U kunt alleen een schijfletter selecteren. Om deze beperking te omzeilen, verbindt u zich met het bestandsshare in Windows Verkenner en koppelt u dit bestandsshare als een netwerkstation. Wijs een schijfletter toe, bijvoorbeeld S:, zoals we in dit voorbeeld hebben gedaan, om de gedeelde map op 192.168.101.211 te verbinden.
Nu kunnen we S: selecteren als een netwerkstation in het vervolgkeuzemenu in het linkerpaneel van WinSCP, selecteer de benodigde bestanden of mappen op de datastore van de externe ESXi-server en kopieer bestanden in beide richtingen.
Het gebruik van een NFS-share
U kunt een NFS-share gebruiken om bestanden over te zetten naar VM’s vanaf een ESXi-datastore en vice versa. ESXi ondersteunt geen SMB-shares (native voor Windows). Het ondersteunt NFS-shares (native voor Linux) en het koppelen van een NFS-share als datastore. Met behulp van deze functie kunt u een van deze benaderingen gebruiken om bestanden over te zetten tussen ESXi en Linux-machines:
Benadering 1:
- Configureer een NFS-server en NFS-share op een Linux-VM
- Koppel de NFS-share als datastore op ESXi
- Kopieer bestanden van een VM naar een ESXi-datastore en vice versa
Benadering 2:
- Configureer een NFS-server op een fysieke Linux-machine of NAS
- Bevestig de NFS-share als een datastore op ESXi
- Verbind met de NFS-share op een Linux VM
- Kopieer bestanden van een Linux VM naar een NFS-share en kopieer deze bestanden vervolgens naar een ESXi-host. Kopieer bestanden van de ESXi-host naar de NFS-share en kopieer deze bestanden van de NFS-share naar de Linux VM.
Lees de NFS vs SMB-vergelijking om meer te weten te komen over deze bestandsdelingsprotocollen.
Configuratie van een NFS-share op Linux
We gebruiken Linux Ubuntu 20.04 in deze handleiding. We zijn ingelogd op Linux als een gewone gebruiker en gebruiken sudo wanneer rootrechten nodig zijn om het commando uit te voeren. Voer de volgende stappen uit om een NFS-server te installeren en een NFS-share te configureren.
- Update de repository-tree in Linux:
sudo apt-get update
- Installeer het NFS-serverpakket op Linux:
sudo apt-get install nfs-kernel-server -y
- Maak een directory aan (de exportdirectory) die gedeeld zal worden op de NFS-server:
sudo mkdir -p /srv/nfs/share1/
- Maak de eigenaar en machtigingen voor de aangemaakte map:
sudo chown -R nobody:nogroup /srv/nfs/share1/
sudo chmod 0777 /srv/nfs/share1/
De nobody is een pseudo-gebruiker om de gebruiker met de minste rechten zonder shelltoegang voor te stellen. Het doel van de nogroup groep is vergelijkbaar met de nobody gebruiker.
- Configureer het exports-bestand om de aangemaakte map te delen.
sudo nano /etc/exports
of
sudo vim /etc/exports
- Voeg de regel onderaan het configuratiebestand toe:
/srv/nfs/share1/ CLIENT_IP(rw,sync,no_subtree_check)
In ons geval is de regel met het toegestane IP-adres van onze ESXi-host:
/srv/nfs/share1/ 192.168.101.201(rw,sync,no_subtree_check)
U kunt toegang toestaan voor alle hosts van het subnet door de regel toe te voegen:
/srv/nfs/share1/ 192.168.101.0/24(rw,sync,no_subtree_check)
U kunt de volgende regel toevoegen om toegang te verlenen voor een andere host (IP-adres).
Sla de wijzigingen op in het configuratiebestand en verlaat de teksteditor.
- Om te controleren of de gegevens naar het bestand zijn geschreven, kunt u het commando gebruiken:
cat /etc/exports
- Pas de nieuwe configuratie toe met het commando:
sudo exportfs -a
- Zorg ervoor dat de firewall op de Linux-machine met de NFS-server toegang toestaat. U kunt toegang verlenen aan het specifieke IP-adres met het commando zoals:
sudo ufw allow from IP to any port nfs
In ons geval:
sudo ufw allow from 192.168.101.201 to any port nfs
Om toegang te verlenen aan hosts van het hele subnet:
sudo ufw allow from SUBNET to any port nfs
In ons geval zou het commando zijn:
sudo ufw allow from 192.168.101.0/24 to any port nfs
- U kunt de status van de firewall controleren met het commando:
sudo ufw status
- Herstart de NFS-server om de configuratiewijzigingen van kracht te laten worden:
sudo systemctl restart nfs-kernel-server
- De NFS-share is geconfigureerd in Linux.
- Kopieer een bestand vanuit een willekeurige map van de Linux-machine naar de map gedeeld via NFS. We kopiëren VM_file.txt naar onze NFS-share en controleren daarna de inhoud van de map:
cp VM_file.txt /srv/nfs/share1/
ls -al /srv/nfs/share1/
Het aankoppelen van een NFS-opslagplaats in ESXi
Je moet de NFS-opslagplaats toevoegen in ESXi na het configureren van de NFS-share. We gebruiken VMware Host Client in dit voorbeeld om dit te doen.
Ga naar Opslag > Datastores en klik op Nieuwe datastore.
De Nieuwe datastore-wizard is geopend.
- Selecteer Koppel NFS-opslagplaats aan. Klik op Volgende om door te gaan.
- Geef NFS-montagedetails:
- Naam: NFS-share (de naam die wordt weergegeven als de datanaam)
- NFS-server: 192.168.101.210
- NFS-share: /srv/nfs/share1/
- NFS-versie: NFS4<>/li
Een gebruikersnaam en wachtwoord zijn optioneel voor NFS4. We laten deze twee velden leeg.
- Klaar om te voltooien. Controleer uw configuratie en klik op Voltooien als alles correct is.
Bestanden kopiëren van een VM naar host
De NFS-datanopslag is succesvol gemonteerd. U kunt dit controleren in Opslag > Datanamen.
Nu kunnen we bestanden kopiëren van de VM die is opgeslagen op de NFS-share naar een lokale ESXi-datanopslag (bestanden overzetten van VM naar host).
- Klik op Datanamenbrowser.
- Selecteer uw NFS-datastore in de datastore-browser (NFS-share in ons geval). Blader naar het benodigde bestand in de NFS-datastore. Selecteer het benodigde bestand en klik op Kopiëren.
- Selecteer bestemming. Selecteer de gewenste locatie in de doel-datastore waar u het gekopieerde bestand wilt opslaan (datastore10b in ons geval). Klik op Kopiëren.
Als alternatief kunt u het benodigde bestand kopiëren via de opdrachtregel op de ESXi-server:
cp /vmfs/volumes/NFS-share/VM_file.txt /vmfs/volumes/datastore10b/VM_file-copy.txt
Gebruik de VMware-webinterface om bestanden te downloaden/uploaden
U kunt een webinterface van VMware Host Client of VMware vSphere Client gebruiken om bestanden naar/van een ESXi datastore te uploaden/downloaden. De webinterface is beschikbaar vanaf elke fysieke of virtuele machine waar een webbrowser is geïnstalleerd en de netwerkverbinding met een ESXi-host beschikbaar is. Zo kunt u deze webinterface rechtstreeks vanuit een VM openen als een gast-OS de GUI heeft, of een willekeurige lokale machine gebruiken als tussenmachine om bestanden van VM naar host en vice versa over te brengen.
Er is echter een alternatieve maar meer complexe manier om bestanden over te zetten naar VMware ESXi vanuit VMs:
- Download een virtuele schijf van de VM naar uw lokale machine of een andere machine.
- Extraheren van de benodigde bestanden uit deze VM virtuele schijf (.vmdk en –flat.vmdk) naar een lokale machine. Als alternatief kunt u een virtuele schijf aankoppelen aan een virtuele drive als VMware Workstation is geïnstalleerd.
- Upload de geëxtraheerde bestanden of bestanden vanaf de aangekoppelde virtuele schijf naar de datastore van de ESXi-host met behulp van een van de hierboven uitgelegde methoden (in VMware Host Client, vSphere Client of SCP-client, enz.).
Lees het gedetailleerde blogbericht over hoe bestanden te extraheren uit VMDK virtuele schijven.
Gebruik van ISO-bestanden voor gegevensoverdracht naar een VM
Als de netwerkverbinding ontbreekt voor een VM, kunt u bestanden naar VMware-VM’s overbrengen met behulp van ISO-afbeeldingsbestanden:
- Maak een ISO-afbeelding met software zoals Ultra ISO voor Windows.
- Schrijf de benodigde bestanden naar de ISO-afbeelding op uw lokale machine of een andere machine. U kunt bestanden kopiëren van ESXi met behulp van een van de methoden hierboven en ze naar de ISO-afbeelding schrijven.
- Monteer de ISO-afbeeldingsbestand naar de VM met behulp van een virtuele CD/DVD-schijf van de VM (u kunt het ISO-bestand rechtstreeks van uw lokale machine of het ISO-bestand uploaden naar een ESXi-datastore voordat u dit doet). Gebruik VMware Host Client, VMware vSphere Client, VMware Workstation of VMware Remote Console om het ISO-bestand aan de ESXi VM te koppelen.
Deze methode kan niet worden gebruikt om bestanden van VM naar host over te brengen omdat een VM werkt met een virtuele CD/DVD-schijf in de alleen-lezen modus.
Conclusie
Er zijn meerdere methoden om bestanden naar virtuele machines te kopiëren vanuit een host en vice versa. Sommige van hen vereisen een netwerkverbinding en sommige van hen werken zelfs als het netwerk niet beschikbaar is. U kunt de methode gebruiken die geschikt is voor u in uw scenario en deze methoden combineren. Vergeet niet om uw VM’s te back-uppen om gegevensverlies te voorkomen. Met NAKIVO Backup and Replication kunt u uw VM’s in VMware vSphere beschermen en individuele bestanden herstellen rechtstreeks uit een VM-back-up.
Source:
https://www.nakivo.com/blog/3-simple-ways-to-transfer-files-from-a-vm-to-a-host/