Najskuteczniejsze sposoby przesyłania plików z maszyny wirtualnej na komputer hosta

Maszyny wirtualne oferują wiele korzyści, takich jak elastyczność, racjonalne wykorzystanie zasobów oraz możliwość pracy w izolowanych środowiskach. Częstym zadaniem w środowiskach wirtualnych jest kopiowanie plików między maszynami wirtualnymi a hostami. Zapoznaj się z tym artykułem, aby dowiedzieć się, jak skopiować pliki z hosta na maszynę wirtualną, jak przenieść pliki z maszyny wirtualnej na host oraz jak kopiować pliki między maszynami wirtualnymi.

NAKIVO do tworzenia kopii zapasowej VMware vSphere

NAKIVO do tworzenia kopii zapasowej VMware vSphere

Kompleksowa ochrona danych dla maszyn wirtualnych VMware vSphere oraz opcje natychmiastowego odzyskiwania. Bezpieczne lokalizacje kopii zapasowych na miejscu, zdalnie oraz w chmurze. Funkcje ochrony przed oprogramowaniem wymuszającym okup.

Elementy naszego środowiska

Zacznijmy od omówienia terminologii:

  • A host to fizyczna maszyna, na której zainstalowany jest hiperwizor.
  • A hiperwizor to oprogramowanie do wirtualizacji służące do uruchamiania maszyn wirtualnych na hoście. Istnieją dwa rodzaje hiperwizorów:
    • Typ 1: Wykorzystanie serwera ESXi, który pełni rolę maszyny hosta
    • Typ 2: Wykorzystanie VMware Stacji Roboczej, przy czym w tym przypadku systemem operacyjnym maszyny hosta może być Windows lub Linux

W niniejszym przewodniku środowisko wykorzystane do wyjaśnienia sposobu przesyłania plików z maszyny wirtualnej do hosta składa się z następujących elementów:

  • Host ESXi 1: 192.168.101.201
  • Host ESXi 2: 192.168.101.202
  • Maszyna z systemem Ubuntu Linux: 192.168.101.210
  • Host Windows z zainstalowaną stacją roboczą VMware Workstation
  • Sieć: 192.168.101.0/24
  • Maszyny wirtualne ESXi i stacje robocze VMware Workstation podłączone do tej samej sieci

Używamy następujących technologii do kopiowania plików między maszynami wirtualnymi a hostami:

  • Foldery współdzielone
  • Współdzielony schowek i przeciąganie & Upuszczanie
  • Urządzenie magazynu USB
  • PowerCLI
  • SSH i SCP
  • Udostępnianie NFS
  • Pobieranie/Przesyłanie plików w interfejsie internetowym VMware
  • Pliki ISO

Korzystanie z folderów współdzielonych do przesyłania plików maszyny wirtualnej do hosta

Foldery współdzielone to wygodna funkcja programu VMware Workstation, służąca do przesyłania plików między fizycznym hostem z systemem Windows lub Linux, na którym zainstalowano program VMware Workstation, a maszynami wirtualnymi działającymi w programie VMware Workstation. W przypadku systemu macOS program VMware Fusion jest odpowiednikiem programu VMware Workstation i obsługuje podobne funkcje.

Przejdźmy teraz do omówienia kroków niezbędnych do przesyłania plików z maszyny wirtualnej do hosta i odwrotnie przy użyciu folderów współdzielonych VMware.

Uwaga: Aby ta funkcja działała, Narzędzia VMware musi być zainstalowany na maszynie wirtualnej. Dane między hostem a maszyną wirtualną są przesyłane za pomocą interakcji poprzez VMware Tools między hostem a systemem operacyjnym gościa bez użycia sieci.

  1. Wybierz maszynę wirtualną, dla której chcesz skonfigurować udział plików VMware. Wybieramy jedną z naszych maszyn wirtualnych z systemem Windows.
  2. Kliknij VM > Settings (Edytuj ustawienia maszyny wirtualnej) w interfejsie graficznym VMware Workstation.
  3. W oknie Virtual Machine Settings wybierz kartę Options i kliknij Shared Folders. W sekcji Folder sharing wybierz Always enabled. Opcjonalnie można dla większej wygody zamapować folder współdzielony jako dysk sieciowy w systemach Windows działających w trybie gościa, zaznaczając odpowiednie pole wyboru.
  4. Kliknij Add , aby wybrać folder, który ma służyć jako folder współdzielony.

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

  5. Wprowadź ścieżkę do folderu, który chcesz udostępnić na hoście, lub kliknij Browse i wybierz odpowiedni folder. Wybieramy C:tempshare-VM

    Wprowadź nazwę folderu współdzielonego, na przykład share-VM

    Kliknij Next.

    VMware file sharing – configuring shared folders in VMware Workstation

  6. Wybierz Enable this share. Jeśli chcesz, aby maszyny wirtualne miały dostęp do folderu współdzielonego w trybie tylko do odczytu, zaznacz pole wyboru Read-only . Kliknij Finish.

    VMware sharing folder in VMware Workstation and enabling this share

  7. Nowy folder współdzielony jest teraz wyświetlany na liście folderów współdzielonych w zakładce Options okna Virtual machine settings . Folder współdzielony jest włączony, jeśli obok nazwy pliku zaznaczone jest odpowiednie pole wyboru.

    Kliknij OK , aby zapisać ustawienia.

    VMware sharing folder – a shared folder is created

  8. Otwórz interfejs użytkownika maszyny wirtualnej z systemem Windows używanej do udostępniania folderu za pomocą funkcji Shared folders .
  9. Kliknij Network (My Network Places) w My Computer (This PC) lub Eksploratorze Windows, aby wyświetlić komputery dostępne w sieci.
  10. Wybierz vmware-host jako nazwę komputera, na którym skonfigurowano folder udostępniony. Ta nazwa jest ustawiona domyślnie i jest przypisana do Twojej maszyny fizycznej (hosta) z folderem udostępnionym.

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

  11. Kliknij Shared Folders i wybierz potrzebny folder udostępniony (share-VM w naszym przykładzie). Pełna ścieżka do folderu współdzielonego w naszym przypadku to

    vmware-hostShared Foldersshare-VM

Można kopiować pliki do maszyny wirtualnej z hosta oraz do hosta z maszyny wirtualnej. W naszym przykładzie skopiowaliśmy Test01.txt z hosta z systemem Windows do gościa z systemem Windows, korzystając z funkcji udziału plików VMware w stacji roboczej VMware Workstation.

VMware transfer files from a VMware VM using a shared folder

W przypadku gości z systemem Linux można zamontować wszystkie foldery współdzielone VMware za pomocą polecenia pokazanego poniżej:

  • W systemie Linux z jądrem starszym niż 4.0:

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

  • W systemie Linux z jądrem 4.0 lub nowszym:

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

Jeśli chcesz, aby folder współdzielony pozostał zamontowany po ponownym uruchomieniu maszyny wirtualnej, dodaj odpowiednie wiersze wraz z komentarzem i konfiguracją z /etc/fstab , na przykład:

#

Folder współdzielony VMware do przesyłania plików między systemem-gościem VMware a hostem

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

Zanim przejdziemy do następnej sekcji, należy pamiętać, że funkcja folderów współdzielonych jest dostępna tylko w VMware Workstation (oraz VMware Fusion w systemie macOS), a nie jest dostępna dla maszyn wirtualnych działających na hostach ESXi. W przypadku hostów ESXi można ręcznie udostępnić folder i korzystać z sieci do kopiowania plików między komputerami z systemem Windows. Aby skopiować pliki z maszyny wirtualnej na host ESXi, należy użyć dodatkowego narzędzia lub połączyć kopiowanie plików z ręcznie udostępnionego folderu z jedną z metod opisanych poniżej.

Istnieją inne metody dla udostępnianie folderu w systemie Windows 10 i Windows Server 2019. Można również dowiedzieć się więcej o protokole Udział plików w małych i średnich przedsiębiorstwach .

Jeśli posiadasz konto Windows z uprawnieniami administratora, a polityka bezpieczeństwa zezwala na dostęp do ukrytych udziałów administracyjnych dostępnych domyślnie, możesz uzyskać dostęp do plików na dyskach lokalnych komputera z systemem Windows, używając ścieżki do udziału w postaci:

IP-Addressc$

Gdzie:

IP-Address to adres IP lub nazwa hosta zdalnego komputera z systemem Windows.

C$ to litera dysku na zdalnym komputerze z systemem Windows, który jest ukrytym udziałem systemowym.

Korzystanie ze wspólnego schowka do przesyłania plików do maszyn wirtualnych z komputera hosta

Wspólny schowek to funkcja, która pozwala kopiować i wklejać zawartość, taką jak tekst i całe pliki, z maszyny wirtualnej na komputer hosta, na którym zainstalowano program VMware Workstation. Proces ten jest podobny do kopiowania i wklejania treści między różnymi oknami aplikacji w systemie Windows lub Linux za pomocą interfejsu graficznego.

Pełen zakres funkcji jest dostępny w VMware Workstation, co pozwala na przesyłanie plików do maszyn wirtualnych z hosta oraz do hosta z maszyny wirtualnej. Alternatywą dla kopiowania i wklejania jest przeciąganie i upuszczanie plików.

Wspólny schowek w VMware Workstation

Przyjrzyjmy się, jak przesyłać pliki do maszyn wirtualnych VMware Workstation przy użyciu wspólnego schowka i funkcji „przeciągnij i upuść”. & W naszym przykładzie VMware Workstation jest zainstalowany na hoście z systemem Windows.

  1. Wybierz swoją maszynę wirtualną w lewym panelu, gdzie wyświetlone są maszyny wirtualne.
  2. Kliknij Edit virtual machine settings (VM > Settings).

    Opening virtual machine settings

  3. Wybierz kartę Options i kliknij Guest Isolation.

    Zaznacz dwa pola wyboru:

    • Enable drag and drop
    • Enable copy and paste

    Kliknij OK , aby zapisać ustawienia i zamknąć okno.

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

Wspólny schowek w VMware ESXi

W przypadku maszyn wirtualnych działających w środowisku VMware ESXi nie można kopiować żadnych plików metodą „przeciągnij i upuść” & ani za pomocą wspólnego schowka między maszyną wirtualną na hoście ESXi a dowolnym innym komputerem. Jedyną opcją jest kopiowanie i wklejanie tekstu między maszyną wirtualną działającą w środowisku ESXi a komputerem lokalnym (na którym zainstalowano program VMware Stacja robocza lub Konsola zdalna VMware ). Nie ma wsparcia dla funkcji kopiowania i wklejania oraz „przeciągnij i upuść” & dla plików ze względów bezpieczeństwa. Jeśli jednak nie możesz skopiować pliku konfiguracyjnego, możesz skopiować zawartość tekstową tego pliku za pomocą wspólnego schowka. Domyślnie wspólny schowek jest wyłączony w konfiguracji maszyny wirtualnej ESXi. Aby włączyć wspólny schowek w celu kopiowania i wklejania danych tekstowych, wykonaj następujące czynności na hoście ESXi:

  1. Podczas edycji konfiguracji maszyny wirtualnej musi ona być wyłączona. Wyłącz maszynę wirtualną, jeśli jest uruchomiona.
  2. Otwórz VM settings. Możesz użyć VMware Host Client i VMware vSphere Client. Wybierz maszynę wirtualną, kliknij Edit VM settings i wybierz kartę VM options .

    Rozwiń sekcję Advanced Settings i kliknij Edit Configuration.

    Advanced VM configuration to enable shared clipboard in ESXi

  3. Musisz dodać trzy parametry konfiguracyjne do konfiguracji maszyny wirtualnej (zapisane w pliku konfiguracyjnym VMX maszyny wirtualnej). Kliknij Add parameter.

    Enabling shared clipboard for a VM on VMware ESXi

  4. Dodaj te trzy parametry:

    isolation.tools.copy.disable FALSE

    isolation.tools.paste.disable FALSE

    isolation.tools.setGUIOptions.enable TRUE

  5. Kliknij OK i zapisz ustawienia.

    Configuration parameters to enable shared clipboard are added

Alternatywnie możesz ręcznie edytować plik VMX z konfiguracją maszyny wirtualnej znajdujący się w magazynie danych ESXi w katalogu maszyn wirtualnych.

  1. Zaloguj się do powłoki ESXi lokalnie lub przez SSH.
  2. Przejdź do katalogu maszyn wirtualnych (katalogu, w którym pliki maszyn wirtualnych są przechowywane w magazynie danych). W naszym przypadku przechodzimy do tego katalogu:

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

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

  3. Edytuj plik konfiguracyjny VMX. W naszym przypadku plik ten to Windows-VM.vmx

    vi Windows-VM.vmx

  4. Dodaj trzy parametry pokazane powyżej na końcu tego pliku konfiguracyjnego.
  5. Zapisz zmiany i zamknij plik (wyjdź z edytora tekstu).

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

Teraz możemy kopiować i wklejać tekst między naszym komputerem lokalnym a zdalną maszyną wirtualną działającą na hoście ESXi, używając konsoli zdalnej VMware i stacji roboczej VMware Workstation do połączenia się z maszyną wirtualną.

Korzystanie z urządzenia pamięci masowej USB

VMware ESXi i VMware Workstation obsługują funkcję passthrough USB, która pozwala podłączyć urządzenie USB do komputera hosta i połączyć to urządzenie USB z maszyną wirtualną działającą na tym hoście. Można podłączyć urządzenie pamięci masowej USB kolejno do komputera hosta i maszyny wirtualnej, aby kopiować pliki między tymi maszynami w dowolnym kierunku.

Uwaga: Aby korzystać z funkcji passthrough USB, w systemie operacyjnym (OS) gościa maszyny wirtualnej muszą być zainstalowane narzędzia VMware Tools.

Kopiowanie plików między maszynami wirtualnymi VMware Workstation a komputerem hosta

Aby przenieść pliki z maszyny wirtualnej na komputer hosta w programie VMware Workstation zainstalowanym na komputerach hosta z systemem Windows i Linux (interfejs jest ten sam), wykonaj następujące czynności:

  1. Włącz maszynę wirtualną.
  2. Podłącz nośnik pamięci USB, taki jak dysk twardy USB (HDD) lub pamięć USB, do fizycznego komputera pełniącego rolę komputera hosta.
  3. W programie VMware Workstation otworzy się okno New USB Device Detected . Wybierz miejsce, w którym chcesz podłączyć urządzenie USB:
    • Podłącz do hosta
    • Podłącz do maszyny wirtualnej

    Wybierzmy drugą opcję i podłączmy naszą pamięć USB do maszyny wirtualnej. W tym przykładzie uruchomiliśmy maszynę wirtualną z systemem Windows. Jeśli w programie VMware stacja robocza działa wiele maszyn wirtualnych, należy wybrać potrzebną maszynę z listy. Urządzenie USB można podłączyć tylko do jednej maszyny wirtualnej naraz. Kliknij OK , aby kontynuować.

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

    Jeśli urządzenie pamięci USB zostało już podłączone do portu USB fizycznego komputera hosta, na którym zainstalowano VMware Workstation, wyskakujące okienko z opcjami passthrough USB nie zostanie wyświetlone automatycznie. Urządzenie USB można podłączyć do maszyny wirtualnej (odłączając je od hosta) w menu:

    Przejdź do VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from host).

    W naszym przykładzie nazwa pamięci USB to Kingston DataTraveler 2.0.

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

  4. Teraz widzimy pamięć USB podłączoną do maszyny wirtualnej z systemem Windows 7 na liście dysków w oknie „Mój komputer” (Eksplorator Windows). Aby sprawdzić urządzenie pamięci USB:
    • Kliknij prawym przyciskiem myszy My Computer i wybierz Manage.
    • Przejdź do Computer Management > Device Manager and Computer Management > Disk Management w odpowiednim module po kliknięciu prawym przyciskiem myszy.

    Jeśli litera dysku nie została przypisana automatycznie, przypisz ją ręcznie w module Disk Management .

    Procedura dla systemów gościnnych Linux jest identyczna. W niektórych dystrybucjach Linux może być konieczne ręczne zamontowanie podłączonego urządzenia pamięci USB, takiego jak pamięć flash, w systemie operacyjnym Linux.

  5. Po zamontowaniu urządzenia pamięci USB w maszynie wirtualnej i rozpoznaniu go przez system operacyjny gościa skopiuj potrzebne pliki z maszyny wirtualnej na urządzenie pamięci USB. Kopiowanie plików z urządzenia pamięci USB do maszyny wirtualnej również działa.

    A USB flash drive is connected to a VM

  6. Po skopiowaniu wszystkich potrzebnych plików z maszyny wirtualnej na pamięć USB odłącz ją od maszyny wirtualnej i podłącz to urządzenie USB do hosta:

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

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

  7. Urządzenie pamięci USB jest teraz podłączone do komputera hosta (w naszym przypadku jest to komputer z systemem Windows, na którym działa VMware Workstation). Możemy przenieść pliki skopiowane z maszyny wirtualnej na pamięć USB do komputera hosta.

Przepuszczanie USB z VMware Stacją Roboczą do maszyn wirtualnych ESXi

Możesz użyć pamięci USB podłączonej do serwera ESXi i podłączonej do lokalnego komputera z systemem Windows lub Linux (z zainstalowanym VMware Workstation lub VMware Remote Console (VMRC)), którego używasz do zdalnego zarządzania hostem ESXi, aby podłączyć tę pamięć USB do maszyny wirtualnej ESXi. W pierwszym przypadku wykorzystywane jest przekierowanie USB połączone z hostem , a w drugim przypadku wykorzystywane jest przekierowanie USB połączone z klientem .

Podłączmy pamięć USB włożoną do naszego lokalnego fizycznego komputera z systemem Windows 10 do maszyny wirtualnej z systemem Windows XP działającej na hoście ESXi v7.0 (wykorzystując funkcję przekierowania USB połączonego z klientem). VMware Workstation jest zainstalowany na naszym fizycznym komputerze z systemem Windows i podłączony do hosta ESXi przez sieć (192.168.101.0/24).

Aby to zrobić:

  1. Maszyna wirtualna musi być wyłączona, aby można było edytować jej ustawienia.
  2. Upewnij się, że USB controller znajduje się na liście wirtualnego sprzętu maszyny wirtualnej. Możesz sprawdzić konfigurację maszyny wirtualnej w VMware Host Client. Wybierz swoją maszynę wirtualną (w naszym przypadkuWindows-VM ), kliknij Edit Settings i wybierz zakładkę Virtual Hardware .

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

  3. Wróćmy do stacji roboczej VMware Workstation zainstalowanej na naszym lokalnym (fizycznym) komputerze z systemem Windows 10. Kliknij File > Connect to a server w stacji roboczej VMware Workstation, aby połączyć się ze zdalnym hostem ESXi.

    Connecting to a remote ESXi server

  4. Wprowadź nazwę serwera ESXi lub adres IP, nazwę użytkownika i hasło. Kliknij Connect.

    Connecting to a remote ESXi host – entering credentials

  5. Rozwiń host ESXi w lewym panelu stacji roboczej VMware, gdzie wyświetlane są hosty zdalne, zdalne maszyny wirtualne na tych hostach oraz lokalne maszyny wirtualne VMware stacji roboczej.
  6. Wybierz maszynę wirtualną działającą na zdalnym hoście ESXi. Wybieramy Windows-VM działającą na 192.168.101.201 . Następnie widzimy interfejs użytkownika systemu operacyjnego gościa wybranej maszyny wirtualnej.
  7. Kliknij VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from Host).

    Zwróć uwagę, że wybieramy urządzenie USB podłączone do naszego fizycznego komputera z systemem Windows, na którym zainstalowano VMware Station. To urządzenie USB nie jest podłączone do fizycznego hosta ESXi, z którym nawiązaliśmy połączenie zdalne.

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

  8. Teraz widzimy nasz pendrive USB podłączony do maszyny wirtualnej z systemem Windows XP działającej na zdalnym hoście ESXi: Start > CMD > compmgmt.msc > Device Manager.

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

  9. Przypisz literę dysku do partycji podłączonego pendrive’a USB, jeśli nie została ona jeszcze przypisana. Skopiuj potrzebne pliki między maszyną wirtualną a pendrive’em USB. Możesz przesyłać pliki zarówno do maszyny wirtualnej, jak i z niej.

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

  10. Po skopiowaniu plików można odłączyć urządzenie pamięci USB od maszyny wirtualnej i podłączyć je z powrotem do lokalnego komputera z systemem Windows 10, na którym działa VMware Workstation. W interfejsie graficznym VMware Workstation kliknij VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

Podłączanie pamięci USB w systemie ESXi

Ta metoda jest niezwykle przydatna w niektórych przypadkach, na przykład gdy trzeba zaktualizować sterownik sieciowy na hoście ESXi, a nie ma dostępu do sieci. Podłączenie pamięci USB do ESXi jest bardziej skomplikowane niż podłączenie do komputera hosta z uruchomioną stacją roboczą VMware Workstation.

W systemie ESXi istnieją ograniczenia dotyczące obsługiwanych systemów plików, które można zamontować w ESXi. Pamięci USB lub dyski twarde USB z systemami plików FAT32 i NTFS nie są obsługiwane. Z tego powodu musimy utworzyć partycję na naszej pamięci USB i sformatować ją w systemie plików VFAT (który w systemie Windows jest rozpoznawany jako FAT12). VFAT ma pewne ograniczenia, takie jak maksymalny rozmiar partycji i maksymalny rozmiar pliku. Dlatego ta metoda nie ma zastosowania w przypadku dużych plików, takich jak dyski wirtualne lub obrazy ISO większe niż 4 GB. Jednak te limity są wystarczające do przeniesienia plików konfiguracyjnych, sterowników itp.

Tworzenie partycji na pendrive’ie

Przede wszystkim utwórzmy nową partycję na naszym pendrive’ie i sformatujmy ją w systemie plików VFAT. Możemy to zrobić, podłączając pamięć USB włożoną do serwera ESXi do maszyny wirtualnej (używając funkcji passthrough USB podłączonego do hosta). Alternatywnie możemy włożyć pamięć USB do fizycznej maszyny z systemem Windows lub Linux.

W tym przykładzie używamy maszyny z systemem Windows 7 do przygotowania pamięci USB dla ESXi. Polecenia dla Windows Server 2008R2, Windows 10 i innych nowszych wersji Windows są takie same.

  1. Aby upewnić się, że pamięć USB jest podłączona do komputera z systemem Windows, kliknij prawym przyciskiem myszy My Computer lub This PC (lub uruchom diskmgmt.msc z wiersza poleceń CMD), aby otworzyć Disk Management.
  2. Otwórz wiersz poleceń systemu Windows:

    Start > Run > cmd

  3. Wpisz diskpart w wierszu poleceń i naciśnij Enter.

    Pojawi się wiersz poleceń programu diskpart:

    Diskpart

  4. Wyświetl listę dysków podłączonych do komputera z systemem Windows:

    list disk

    Znajdź swoją pamięć USB na wyświetlonej liście i zapamiętaj numer dysku. W naszym przypadku Disk 1 to numer naszej pamięci USB (zobacz zrzut ekranu poniżej).

  5. Wybierz swoją pamięć USB, podając odpowiedni numer dysku uzyskany z wyników powyższego polecenia (w naszym przypadkudisk 1 ).

    select disk 1

  6. Wyświetl listę partycji na wybranej pamięci USB:

    list partition

    Na naszej pamięci USB mamy jedną partycję (Partition 1) (patrz zrzut ekranu poniżej). Posiadanie jednej partycji na pamięci USB jest najczęstszym przypadkiem.

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

    Następnie musimy usunąć partycje z pamięci USB.

    Ważne: Wszystkie dane na pamięci USB zostaną usunięte. W razie potrzeby możesz skopiować dane z pamięci USB przed przejściem do kolejnych kroków.

  7. Wybierz partycję na pendrive’ie, która ma zostać usunięta:

    select partition 1

  8. Uruchom polecenie, aby usunąć wybraną partycję:

    delete partition

  9. Ponownie wybierz dysk, którym jest Twój pendrive:

    select disk 1

    Selecting the first partition on a USB flash drive in Diskpart

  10. Utwórz nową partycję z systemem plików VFAT. W tym przykładzie tworzymy partycję o rozmiarze 4 GB na naszym pendrive’ie. Pamiętaj, że na systemie plików VFAT nie można przechowywać plików większych niż 4 GB. Należy pamiętać, że system plików VFAT oferuje tylko format nazw plików 8.3.

    create partition primary size=4000 id=6

  11. Sformatuj utworzoną partycję w ten sposób, aby zapewnić zgodność z systemem ESXi:

    format fs=fat quick

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

  12. Wyjdź z narzędzia diskpart (uruchom polecenie exit ).

Pendrive jest gotowy do rozpoznania przez system ESXi i kopiowania plików. Po wykonaniu kilku dodatkowych czynności konfiguracyjnych w systemie ESXi można podłączyć pendrive do maszyny wirtualnej i skopiować na niego potrzebne pliki.

Załóżmy, że musimy skopiować archiwum ZIP ze sterownikami. W naszym przykładzie skopiowaliśmy plik net-tulip.zip na pamięć USB. Następnie musimy zamontować partycję pamięci USB podłączonej do serwera ESXi w wierszu poleceń ESXi.

Konfiguracja hosta ESXi do korzystania z pamięci USB

Załóżmy, że musimy skopiować archiwum ZIP zawierające sterownik z pamięci USB do magazynu danych ESXi, a następnie skopiować plik konfiguracyjny maszyny wirtualnej z magazynu danych ESXi na pamięć USB. W naszym przykładzie nazwy plików to: net-tulip.zip Aby przenieść pliki z pamięci USB do VMware ESXi i odwrotnie, wykonaj następujące czynności na hoście ESXi:

  1. Konfiguracja odbywa się w interfejs wiersza poleceń. Z tego powodu należy włączyć dostęp SSH na Host ESXi.
    • Aby włączyć zdalny dostęp SSH w DCUI, przejdź do Troubleshooting options > Enable SSH.
    • Aby włączyć zdalny dostęp SSH i serwer SSH na ESXi w VMware Host Client, przejdź do Host > Manage i wybierz kartę Services . Kliknij prawym przyciskiem myszy TSM-SSH i kliknij Start , aby uruchomić usługę. Możesz włączyć tę usługę na stałe.

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

  2. Połącz się z hostem ESXi przez SSH, aby korzystać z wiersza poleceń. Możesz użyć swojego ulubionego klienta SSH.
  3. Zatrzymaj usługę arbitra USB:

    /etc/init.d/usbarbitrator stop

    Arbiter USB automatycznie włącza funkcję passthrough USB dla maszyn wirtualnych znajdujących się na hoście ESXi (aby skorzystać z tej funkcji, wystarczy wybrać pamięć USB w ustawieniach odpowiedniej maszyny wirtualnej).

  • Jeśli chcesz wyłączyć usługę USB arbitrator po ponownym uruchomieniu ESXi (na stałe), możesz użyć polecenia:

    chkconfig usbarbitrator off

    Aby włączyć usługę USB arbitrator, użyj odpowiedniego polecenia:

    /etc/init.d/usbarbitrator start

    chkconfig usbarbitrator on

  1. Opcjonalne polecenia do sprawdzania urządzeń USB podłączonych do hosta ESXi:

    lsusb

    esxcli storage core device list | grep -i usb

    esxcli storage filesystem list

    Możesz przejść do /var/log/usb.log , aby sprawdzić stan urządzenia USB.

  2. Po zatrzymaniu usługi USB arbitrator może być konieczne odłączenie i ponowne podłączenie urządzenia pamięci masowej USB.
  3. Wyświetl listę urządzeń dyskowych, aby znaleźć/zidentyfikować podłączoną pamięć USB (lub dysk twardy USB).

    ls -ltrh /vmfs/devices/disks/

    Nasza pamięć USB to mpx.vmhba32:C0:T0:L0: (patrz zrzut ekranu poniżej).

    Zatem pełny adres/lokalizacja dysku to:

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

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

  4. Sprawdź numer partycji urządzenia USB, aby upewnić się, że zidentyfikowałeś właściwe urządzenie dyskowe:

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

    Zgodnie z wyświetlonym wynikiem pełny identyfikator urządzenia, uwzględniający w naszym przypadku numer partycji, to:

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

  5. Znajdź katalog główny pamięci USB, aby określić ścieżkę źródłową/docelową do kopiowania plików. Uruchom następujące polecenie i naciśnij Tab , aby wyświetlić elementy dostępne w katalogu woluminów. Katalog /volumes/ w systemie plików ESXi to katalog, do którego montowane są partycje z systemami plików.

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

    Wolumin na pendrive’ie USB nosi nazwę NO NAME

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

  6. Sprawdź zawartość katalogu głównego pendrive’a USB

    ls -al /vmfs/volumes/NO NAME/

    Nasze archiwum ZIP znajduje się na woluminie pendrive’a USB.

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

  7. Utworzyliśmy folder install w magazynie danych ESXi (datastore10a) za pomocą poleceń:

    cd /vmfs/volumes/datastore10a

    mkdir install

    Na poniższym zrzucie ekranu widać również katalog maszyny wirtualnej, której plik konfiguracyjny zamierzamy później skopiować z magazynu danych ESXi na pendrive’a USB.

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

  8. Skopiuj archiwum ZIP z pamięci USB do folderu install na naszym hoście ESXi (na datastore10a).

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

  9. Sprawdź, czy plik został skopiowany:

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

    Plik został pomyślnie skopiowany.

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

Podobnie możesz kopiować pliki w odwrotnym kierunku – skopiuj pliki z ESXi na pamięć USB, a następnie skopiuj potrzebny plik do maszyny wirtualnej lub na inną maszynę z tej pamięci USB.

  1. Sprawdź zawartość folderu VM:

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

  2. Skopiuj plik konfiguracyjny Windows-VM.vmx z magazynu danych ESXi na pamięć USB:

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

  3. Sprawdź, czy plik został skopiowany na pamięć USB:

    ls -al /vmfs/volumes/NO NAME/

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

Po zakończeniu kopiowania plików na hoście ESXi możesz wysunąć pamięć USB i uruchomić usługę arbitra USB na hoście ESXi. Następnie można włożyć pamięć USB i użyć funkcji passthrough USB podłączonego do hosta, aby podłączyć pamięć USB do maszyny wirtualnej.

Dowiedz się więcej o Przepust USB dla ESXi oraz podłączaniu urządzenia pamięci masowej USB włożonego do hosta ESXi do maszyny wirtualnej znajdującej się na tym hoście.

Przesyłanie plików do maszyn wirtualnych VMware za pomocą PowerCLI

Inną metodą przesyłania plików z maszyny wirtualnej do hosta jest użycie PowerCLI poleceń (cmdletów). W systemie operacyjnym gościa wewnątrz maszyny wirtualnej muszą być zainstalowane narzędzia VMware Tools. Te polecenia cmdlet języka PowerShell wykorzystują narzędzia VMware Tools do kopiowania plików do/z maszyn wirtualnych znajdujących się na hoście ESXi. W związku z tym nie jest wymagane połączenie sieciowe, jeśli polecenia są uruchamiane wewnątrz maszyny wirtualnej znajdującej się na hoście ESXi będącego źródłem lub miejscem docelowym.

Aby kopiować pliki między maszynami wirtualnymi, można użyć polecenia cmdlet Copy-VMGuestFile oraz innych poleceń cmdlet w vSphere PowerCLI.

  1. Połącz się z hostem ESXi lub vCenter Server. W tym przykładzie łączymy się z hostem ESXi.

    Connect-VIServer 192.168.101.201

    Connecting to an ESXi host in VMware PowerCLI

  • Aby uniknąć ostrzeżenia o certyfikacie, uruchom polecenie:

    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

    How to disable a certificate warning in VMware vSphere PowerCLI

Copy-VMGuestFile (Lokalna > maszyna wirtualna ESXi)

Użyj następującego polecenia, aby skopiować plik z komputera lokalnego (komputera, na którym działa PowerCLI) do zdalnej maszyny wirtualnej na hoście ESXi:

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

Gdzie:

c:temptest.txt to plik źródłowy, który chcemy skopiować z komputera lokalnego

-LocalToGuest to kierunek (z komputera lokalnego do systemu operacyjnego gościa na docelowej maszynie wirtualnej działającej na ESXi)

-VM Windows-VM to nazwa docelowej maszyny wirtualnej

c:temp-VM to folder docelowy na docelowej maszynie wirtualnej (gdzie chcemy zapisać kopię pliku)

user1 to nazwa użytkownika w systemie operacyjnym gościa na docelowej maszynie wirtualnej. Użytkownik ten musi mieć dostęp do zdefiniowanego folderu docelowego.

Password to hasło tego użytkownika.

Ignorujemy ostrzeżenie dotyczące wersji VMware Tools i sprawdzamy, czy nasz plik text.txt został skopiowany.

How to copy file to virtual machine in PowerCLI

Widzimy, że nasz plik test.txt , którego rozmiar wynosi 29 bajtów, został pomyślnie skopiowany do maszyny wirtualnej z systemem Windows XP działającej na hoście ESXi.

A file has been copied to a VMware VM

Copy-VMGuestFile (ESXi VM > Local)

Teraz skopiujmy plik z systemu operacyjnego gościa maszyny wirtualnej do lokalnego katalogu komputera, na którym wykonywane jest polecenie:

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

Gdzie:

-Source "c:temp-VMtest2.txt" to ścieżka do pliku źródłowego na maszynie wirtualnej działającej na ESXi

-GuestToLocal to kierunek (z systemu operacyjnego gościa maszyny wirtualnej ESXi do lokalnego komputera, na którym wykonywane jest polecenie)

"c:temp" to ścieżka do folderu docelowego na komputerze lokalnym

user1 to nazwa użytkownika w systemie operacyjnym gościa na docelowej maszynie wirtualnej. Użytkownik ten musi mieć dostęp do zdefiniowanego folderu docelowego.

Password to hasło tego użytkownika w systemie operacyjnym gościa

How to copy a file from a virtual machine in PowerCLI

Przykłady użycia polecenia cmdlet Copy-VMGuestFile można znaleźć w poleceniu:

get-help Copy-VMGuestFile -examples

Korzystanie z polecenia cmdlet Copy-DatastoreItem

Polecenie cmdlet PowerShell Copy-DatastoreItem służy do kopiowania plików do/z magazynu danych ESXi. Istnieją dwa sposoby wykorzystania tego polecenia cmdlet do skopiowania pliku do magazynu danych VMware ESXi:

  • Jeśli PowerCLI jest zainstalowane na systemie Windows działającym w maszynie wirtualnej, można uruchomić polecenie, aby skopiować plik bezpośrednio z magazynu danych ESXi do maszyny wirtualnej i odwrotnie.
  • Jeśli nie można zainstalować PowerCLI na maszynie wirtualnej znajdującej się na hoście ESXi, można uruchomić polecenia PowerCLI z lokalnego komputera z systemem Windows, skopiować pliki z magazynu danych ESXi na komputer lokalny za pomocą polecenia Copy-VMGuestFile , a następnie skopiować te pliki z komputera lokalnego do maszyny wirtualnej za pomocą polecenia Copy-VMGuestFile.

Należy połączyć się z serwerem ESXi lub vCenter Server. Można to zrobić za pomocą polecenia:

ViConnect

Jesteśmy połączeni bezpośrednio z hostem ESXi.

Skopiujmy plik konfiguracyjny maszyny wirtualnej z magazynu danych na bieżącą maszynę z systemem Windows (maszynę, na której uruchamiamy te polecenia – może to być również maszyna wirtualna na hoście ESXi):

  1. Pobierz informacje o magazynie danych:

    Get-Datastore "datastore10a"

  2. Pobierz obiekt magazynu danych ESXi:

    $datastore = Get-Datastore "datastore10a"

  3. Utwórz nowy dysk PowerShell o nazwie ds: mapowany na $datastore:

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

  4. Ustaw swój magazyn danych jako bieżącą lokalizację:

    Set-Location ds:

  5. Aby wyświetlić listę plików i katalogów w wybranym katalogu, użyj polecenia:

    Get-ChildItem

    Preparing to copy files from an ESXi host

  6. Możesz ustawić katalog maszyny wirtualnej jako nową lokalizację. W naszym przypadku jest to katalog Windows-VM

    Set-Location "Windows-VM"

  7. Polecenie służące do skopiowania pliku maszyny wirtualnej, czyli pliku konfiguracyjnego VMX, z zdefiniowanego magazynu danych ESXi do folderu tymczasowego na bieżącej maszynie:

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

    Gdzie:

    ds:Windows-VMWindows-VM.vmx to ścieżka do pliku, który ma zostać skopiowany, a ds: to zdefiniowany skrót do magazynu danych (w tym przypadkudatstore10a ).

    Copying a file from an ESXi datastore in PowerCLI

  • Jeśli nawiązałeś połączenie z vCenter (a nie z konkretnym hostem ESXi, jak w tym przykładzie), możesz użyć następującego polecenia, definiując magazyn danych w centrum danych vCenter, aby skopiować plik z magazynu danych ESXi do folderu na komputerze lokalnym:

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

  • Aby skopiować plik w odwrotnym kierunku (łącząc się z hostem ESXi), użyj polecenia:

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

    Kopiujemy plik darwin.iso (czyli obraz z narzędziami VMware Tools dla macOS) z komputera z systemem Windows do katalogu instalacyjnego na magazynie danych ESXi.

    Copy file to VMware ESXi datastore in PowerCLI

  • Jeśli masz połączenie z vCenter, możesz użyć tego polecenia, aby skopiować plik z lokalnego komputera z systemem Windows do magazynu danych na zdalnym hoście ESXi:

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

Możesz skorzystać z tych poleceń PowerCLI i tworzyć skrypty PowerShell do przesyłania plików z maszyny wirtualnej na host i odwrotnie.

Polecenia do kopiowania plików z maszyny wirtualnej na host w VMware Workstation

Jeśli korzystasz z VMware Workstation (który jest hiperwizorem typu 2) na hoście z systemem Windows lub Linux (lub VMware Fusion na macOS), możesz również użyć interfejsu wiersza poleceń do kopiowania plików z maszyny wirtualnej na host i odwrotnie. Do obsługi maszyn wirtualnych można użyć narzędzia wiersza poleceń vmrun . Składnia poleceń jest taka sama dla systemów Windows, Linux i macOS (VMware Fusion). W tym samouczku używamy programu VMware Workstation 15 w systemie Windows 10.

  1. Przejdź do katalogu VMware Workstation:

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

  2. Użyj poniższego polecenia, aby skopiować plik z systemu operacyjnego gościa wewnątrz maszyny wirtualnej na lokalny host z systemem Windows:

    CopyFileFromHostToGuest

    W naszym przypadku dokładne polecenie brzmi:

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

  3. Po wyświetleniu monitu wprowadź nazwę użytkownika i hasło dla tego użytkownika (użytkownik musi mieć wystarczające uprawnienia, aby uzyskać dostęp do określonego pliku).

    Gdzie:

    d:virtualWinServer2019WinServer2019.vmx to dysk wirtualny maszyny wirtualnej, z której kopiujemy plik.

    c:temptest.txt to plik przechowywany na dysku wirtualnym maszyny wirtualnej; jest to plik, który kopiujemy.

    c:tempcopied to katalog, w którym ma zostać zapisana kopia pliku na komputerze hosta.

    Pamiętaj, aby podczas ustawiania ścieżki używać znaku odwrotnego ukośnika . Skopiowaliśmy test.txt , czyli plik tekstowy z maszyny wirtualnej na komputer hosta.

    Alternatywnie możesz uruchomić polecenie, definiując poświadczenia w poleceniu:

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

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

Aby skopiować plik w odwrotnym kierunku (z komputera hosta na maszynę wirtualną), użyj polecenia w następujący sposób:

CopyFileFromHostToGuest

Nasze konkretne polecenie w tym przykładzie to:

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

How to copy files to virtual machine by using vmrun

Jak przesyłać pliki za pomocą SSH i SCP

SSH (Secure Shell) to powszechnie stosowany protokół do bezpiecznego zarządzania zdalnymi hostami oparty na szyfrowaniu. SCP to protokół oparty na SSH, służący do bezpiecznego kopiowania plików przez sieć. Można używać SCP do przesyłania plików z maszyny wirtualnej na host, zwłaszcza jeśli na maszynie wirtualnej działa system Linux. Serwer SCP i SSH można włączyć na komputerach z systemem Linux oraz w środowisku ESXi w kilku prostych krokach.

Jak włączyć serwer SSH w ESXi

Aby skorzystać z tej metody i przesyłać pliki do oraz z VMware ESXi, na hoście ESXi musi być włączona usługa serwera SSH.

  1. Aby włączyć serwer SSH w VMware Host Client, przejdź do Host > Manage > Services i uruchom usługę TSM-SSH .
  2. SSH musi być dozwolone w zaporze sieciowej ESXi, aby umożliwić ruch SCP w celu przesyłania plików z hosta ESXi, a także łączenia się z innymi maszynami przy użyciu SCP z tego hosta ESXi:
    • Przejdź do Networking w panelu Navigator , wybierz kartę Firewall rules i wybierz SSH Client.
    • Kliknij Actions > Enable , aby włączyć regułę zapory.

    Enabling SSH access in the ESXi firewall

  3. Aby sprawdzić połączenie SSH między hostami, możesz uruchomić to polecenie na hoście ESXi:

    nc -z 192.168.101.202 22

    Gdzie:

    192.168.101.202 to adres IP hosta zdalnego.

    22 to numer portu dla połączenia SSH (22 to domyślny numer portu).

Ogólna składnia polecenia scp do kopiowania plików przez sieć za pomocą SCP:

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

[user]@[SRC_HOST]:path_to_file1 – plik źródłowy

[user]@[DEST_HOST]:path_to_file2 – plik docelowy

-P określa numer portu dla połączenia SSH (użyj tej flagi, jeśli numer portu nie wynosi 22).

Poniżej wyjaśniamy konkretne przykłady w praktyce.

Jak skopiować plik lokalny na maszynę zdalną za pomocą SCP

Aby skopiować plik lokalny na maszynę zdalną za pomocą SCP, użyj polecenia w stylu:

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

Z systemu Linux

Skopiujmy plik LinuxDir.txt z lokalnej maszyny z systemem Ubuntu Linux (która może być również maszyną wirtualną) na host ESXi przez sieć przy użyciu SCP. Miejscem docelowym na zdalnym hoście ESXi jest katalog install w magazynie danych datastore10a . Adres IP zdalnego hosta ESXi to 192.168.101.201 .

W naszym przypadku polecenie do skopiowania pliku z lokalnej maszyny z systemem Linux na zdalny host ESXi brzmi:

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

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

Skopiowany plik można zapisać na komputerze docelowym pod nową nazwą:

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

Użyj flagi -r , aby skopiować katalog wraz ze wszystkimi zawartymi w nim plikami:

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

Z ESXi

Na hoście ESXi można używać poleceń scp . Składnia scp w wierszu poleceń jest taka sama dla systemów Linux i ESXi. Na komputerze zdalnym musi być skonfigurowany serwer SSH. Zalogujmy się do hosta ESXi ( 192.168.101.201 ) i skopiujmy katalog install wraz ze wszystkimi zawartymi w nim plikami do katalogu domowego user1 na zdalnej maszynie z systemem Linux ( 192.168.101.210 ).

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

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

Jeśli serwer SSH nasłuchuje na porcie innym niż 22, użyj parametru -P ; na przykład, jeśli numer portu SSH to 8022, polecenie będzie wyglądało następująco:

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

Jak skopiować plik z komputera zdalnego na lokalny za pomocą SCP

SCP jest wygodnym narzędziem do kopiowania plików z komputera zdalnego na lokalny, co pozwala również na przesyłanie plików z maszyny wirtualnej na host. Poniżej wyjaśniamy, jak uruchomić odpowiednie polecenia w systemie Linux i ESXi.

Kopiowanie plików na lokalny komputer z systemem Linux

Zamierzamy skopiować plik ze zdalnego hosta ESXi na bieżący komputer z systemem Linux przy użyciu SCP. Aby to zrobić, użyj polecenia w postaci:

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

Skopiujmy plik darwin.iso ze zdalnego serwera ESXi do zdefiniowanego katalogu domowego na komputerze z systemem Linux:

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

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

Kopiowanie plików na lokalny host ESXi

Jeśli zalogujemy się na host ESXi, możemy uruchomić polecenie, aby skopiować plik maszyny wirtualnej ze zdalnej maszyny z systemem Linux do magazynu danych na lokalnym hoście ESXi. Skopiujmy VM_file.txt z maszyny z systemem Linux do katalogu magazynu danych ESXi przez sieć za pomocą SCP:

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

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

Jak kopiować pliki między dwoma zdalnymi maszynami

Istnieją polecenia SCP do kopiowania plików z jednej zdalnej maszyny na inną zdalną maszynę z kopiowaniem danych przez bieżącą maszynę lokalną lub bez. Składnia polecenia jest następująca:

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

Za pomocą powyższego polecenia dane są przesyłane bezpośrednio z jednego zdalnego hosta na drugi (bez kopiowania na bieżącą maszynę lokalną). Jeśli chcesz przekierować ruch przez maszynę lokalną, na której uruchamiasz polecenie, użyj flagi -3 .

Uwaga: Użyj tego polecenia, jeśli poświadczenia na obu hostach zdalnych są takie same.

Przykład polecenia do uruchomienia na lokalnym komputerze z systemem Linux w celu skopiowania pliku (vim.v00) ze zdalnego hosta ESXi (192.168.101.202) na lokalny host ESXi (192.168.101.201):

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

Jeśli pojawi się błąd „ Host key verification failed ”, oznacza to, że klucz hosta nie jest zapisany na jednym z hostów. Jeśli błąd wynika ze zmiany klucza hosta na serwerze zdalnym, usuń stary klucz hosta dla bieżącego hosta zdalnego zapisany w ~/.ssh/known_hosts

Polecenie do usunięcia starego klucza hosta to: ssh-keygen -R hostname_or_IP_address

Na przykład, uruchom polecenie na adresie 192.168.101.202, aby usunąć stary klucz hosta dla zdalnego hosta 192.168.101.201:

ssh-keygen -R 192.168.101.201

Przykład użycia -3 w poleceniu do kopiowania plików przez komputer lokalny:

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

Alternatywnym poleceniem do tego celu jest:

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

Jak kopiować pliki przez SCP z systemu Windows

W systemie Windows można również kopiować pliki do maszyn wirtualnych lub hostów ESXi. W tym celu należy użyć klienta SCP, takiego jak WinSCP, który jest przyjaznym dla użytkownika i wygodnym interfejsem graficznym. Można go Pobierz WinSCP za darmo.

  1. Uruchom WinSCP.
    • Wybierz protokół, na przykład SFTP.
    • Wprowadź nazwę hosta i numer portu hosta zdalnego, takiego jak host ESXi lub komputer z systemem Linux.
    • Wprowadź nazwę użytkownika i hasło komputera zdalnego.
    • Kliknij Login.

    W tym przykładzie łączymy się ze zdalnym hostem ESXi.

    Connecting to an ESXi host in WinSCP to copy files

  2. Wyświetli się komunikat:

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

    Kliknij Yes , aby kontynuować.

  3. Po nawiązaniu połączenia zobaczysz okno w stylu Commander z dwoma panelami. Jeden panel przedstawia katalog na komputerze lokalnym, a drugi panel przedstawia katalog na komputerze zdalnym. Możesz kopiować pliki między hostem lokalnym a hostem zdalnym, kopiując pliki między tymi dwoma panelami.

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

Można kopiować pliki z magazynu danych zdalnego hosta ESXi, z którym nawiązano połączenie w WinSCP, do zdalnej maszyny wirtualnej z systemem Windows lub komputera fizycznego, korzystając z udziału SMB na tym komputerze z systemem Windows.

Nie można jednak wprowadzić bezpośredniej ścieżki udziału w panelu WinSCP (na przykład 192.168.101.117c$). Można jedynie wybrać literę dysku. Aby ominąć to ograniczenie, należy połączyć się z udziałem plików w Eksploratorze Windows i zamapować ten udział jako dysk sieciowy. Przypisz literę dysku, na przykład S: tak jak w tym przykładzie, aby połączyć folder udostępniony na 192.168.101.211 .

Teraz możemy wybrać S: jako dysk sieciowy w menu rozwijanym w lewym panelu WinSCP, zaznaczyć potrzebne pliki lub katalogi w magazynie danych zdalnego serwera ESXi i kopiować pliki w obu kierunkach.

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

Korzystanie z udziału NFS

Można użyć udziału NFS do przesyłania plików do maszyn wirtualnych z magazynu danych ESXi i w drugą stronę. ESXi nie obsługuje udziałów SMB (natywnych dla systemu Windows). Obsługuje udziały NFS (natywne dla systemu Linux) oraz dołączanie udziału NFS jako magazynu danych. Korzystając z tej funkcji, możesz skorzystać z jednej z poniższych metod przesyłania plików między maszynami ESXi a Linux:

Metoda 1 :

  • Skonfiguruj serwer NFS i udział NFS na maszynie wirtualnej z systemem Linux
  • Podłącz udział NFS jako magazyn danych w środowisku ESXi
  • Skopiuj pliki z maszyny wirtualnej do magazynu danych ESXi i odwrotnie

Metoda 2 :

  • Skonfiguruj serwer NFS na fizycznej maszynie z systemem Linux lub NAS
  • Podłącz udział NFS jako magazyn danych w ESXi
  • Połącz się z udziałem NFS na maszynie wirtualnej z systemem Linux
  • Skopiuj pliki z maszyny wirtualnej z systemem Linux do udziału NFS, a następnie skopiuj te pliki na host ESXi. Skopiuj pliki z hosta ESXi do udziału NFS, a następnie skopiuj te pliki z udziału NFS na maszynę wirtualną z systemem Linux.

Zapoznaj się z NFS kontra SMB porównaniem, aby dowiedzieć się więcej o tych protokołach udostępniania plików.

Konfiguracja udziału NFS w systemie Linux

W tym samouczku używamy systemu Linux Ubuntu 20.04. Zalogowaliśmy się do systemu Linux jako zwykły użytkownik i używamy sudo gdy do uruchomienia polecenia potrzebne są uprawnienia użytkownika głównego. Wykonaj następujące kroki, aby zainstalować serwer NFS i skonfigurować udział plików NFS.

  1. Zaktualizuj drzewo repozytorium w systemie Linux:

    sudo apt-get update

  2. Zainstaluj pakiet serwera NFS w systemie Linux:

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

  3. Utwórz katalog (katalog eksportu), który będzie udostępniony na serwerze NFS:

    sudo mkdir -p /srv/nfs/share1/

  4. Ustaw właściciela i uprawnienia dla utworzonego katalogu:

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

    sudo chmod 0777 /srv/nfs/share1/

    nobody to pseudoużytkownik reprezentujący użytkownika z najmniejszymi uprawnieniami, bez dostępu do powłoki. Cel grupy nogroup jest podobny do użytkownika nobody .

    Creating a directory for an NFS share

  5. Skonfiguruj plik eksportów, aby udostępnić utworzony katalog.

    sudo nano /etc/exports

    lub

    sudo vim /etc/exports

  6. Dodaj wiersz na końcu pliku konfiguracyjnego:

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

    W naszym przypadku wiersz z dozwolonym adresem IP naszego hosta ESXi wygląda następująco:

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

    Możesz zezwolić na dostęp dla wszystkich hostów w podsieci, dodając wiersz:

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

    Możesz dodać kolejny wiersz, aby zezwolić na dostęp dla innego hosta (adresu IP).

    Zapisz zmiany w pliku konfiguracyjnym i zamknij edytor tekstu.

  7. Aby sprawdzić, czy dane zostały zapisane w pliku, możesz użyć polecenia:

    cat /etc/exports

  8. Zastosuj nową konfigurację za pomocą polecenia:

    sudo exportfs -a

  9. Upewnij się, że zapora sieciowa na komputerze z systemem Linux, na którym działa serwer NFS, zezwala na dostęp. Dostęp dla konkretnego adresu IP można przyznać za pomocą polecenia w postaci:

    sudo ufw allow from IP to any port nfs

    W naszym przypadku:

    sudo ufw allow from 192.168.101.201 to any port nfs

    Aby zezwolić na dostęp dla hostów z całej podsieci:

    sudo ufw allow from SUBNET to any port nfs

    W naszym przypadku polecenie brzmiałoby:

    sudo ufw allow from 192.168.101.0/24 to any port nfs

  10. Stan zapory sieciowej można sprawdzić za pomocą polecenia:

    sudo ufw status

  11. Uruchom ponownie serwer NFS, aby zmiany w konfiguracji zaczęły obowiązywać:

    sudo systemctl restart nfs-kernel-server

  12. Udostępnienie NFS zostało skonfigurowane w systemie Linux.
  13. Skopiuj plik z dowolnego katalogu na komputerze z systemem Linux do katalogu udostępnionego przez NFS. Kopiujemy VM_file.txt do naszego udostępnienia NFS, a następnie sprawdzamy zawartość katalogu:

    cp VM_file.txt /srv/nfs/share1/

    ls -al /srv/nfs/share1/

    Copying a file to a directory configured as an NFS share

Montowanie magazynu danych NFS w ESXi

Po skonfigurowaniu udostępnienia NFS należy dodać magazyn danych NFS w ESXi. W tym przykładzie używamy do tego programu VMware Host Client.

Przejdź do Storage > Datastores i kliknij New datastore.

Creating a new datastore to mount the NFS as a datastore

Otworzy się kreator New datastore .

  1. Wybierz Mount NFS datastore. Kliknij Next , aby kontynuować.

    How to mount an NFS datastore in ESXi

  2. Podaj szczegóły montowania NFS:
    • Nazwa: NFS-share (nazwa, która będzie wyświetlana jako nazwa magazynu danych)
    • Serwer NFS: 192.168.101.210
    • Udostępnienie NFS: /srv/nfs/share1/
    • Wersja NFS: NFS4

    Nazwa użytkownika i hasło są opcjonalne dla NFS4. Pozostawiamy te dwa pola puste.

    Entering the details to mount an NFS datastore in ESXi

  3. Gotowe do zakończenia. Sprawdź konfigurację i kliknij Finish jeśli wszystko jest poprawne.

Kopiowanie plików z maszyny wirtualnej na host

Magazyn danych NFS został pomyślnie zamontowany. Można to sprawdzić w Storage > Datastores.

Teraz możemy skopiować pliki z maszyny wirtualnej przechowywane w udziale NFS do lokalnego magazynu danych ESXi (przesłać pliki z maszyny wirtualnej na host).

  1. Kliknij Datastore Browser.

    Browsing the NFS datastore to copy a VM file

  2. Wybierz swój magazyn danych NFS w przeglądarce magazynów danych (w naszym przypadkuNFS-share ). Znajdź potrzebny plik w magazynie danych NFS. Wybierz potrzebny plik i kliknij Copy.

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

  3. Wybierz miejsce docelowe. Wybierz odpowiednią lokalizację w docelowym magazynie danych, w której chcesz zapisać skopiowany plik (w naszym przypadkudatastore10b ). Kliknij Copy.

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

    . Alternatywnie możesz skopiować potrzebny plik za pomocą wiersza poleceń na serwerze ESXi:

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

. Pobieranie i wysyłanie plików za pomocą interfejsu internetowego VMware

. Możesz użyć interfejsu internetowego VMware Host Client lub Klient VMware vSphere do wysyłania/pobierania plików do/z magazynu danych ESXi. Interfejs internetowy jest dostępny z dowolnej maszyny fizycznej lub wirtualnej, na której zainstalowana jest przeglądarka internetowa i dostępne jest połączenie sieciowe z hostem ESXi. Dzięki temu można otworzyć ten interfejs internetowy bezpośrednio z maszyny wirtualnej, jeśli system operacyjny gościa posiada GUI, lub użyć dowolnej maszyny lokalnej jako maszyny pośredniczącej do przesyłania plików z maszyny wirtualnej do hosta i odwrotnie.

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

Istnieje alternatywny, ale bardziej złożony sposób przesyłania plików do VMware ESXi z maszyn wirtualnych:

  1. Pobierz dysk wirtualny maszyny wirtualnej na swój komputer lokalny lub inny komputer.
  2. Wyodrębnij potrzebne pliki z tego dysku wirtualnego maszyny wirtualnej (.vmdk i -flat.vmdk) na komputer lokalny. Alternatywnie możesz zamontować dysk wirtualny na dysku wirtualnym, jeśli zainstalowano VMware stację roboczą.
  3. Prześlij wyodrębnione pliki lub pliki z zamontowanego dysku wirtualnego do magazynu danych hosta ESXi, korzystając z jednej z metod opisanych powyżej (w VMware Host Client, vSphere Client, kliencie SCP itp.).

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

Przeczytaj szczegółowy wpis na blogu dotyczący jak wyodrębnić pliki z dysków wirtualnych VMDK.

Korzystanie z plików ISO do przesyłania danych do maszyny wirtualnej

Jeśli połączenie sieciowe jest niedostępne dla maszyny wirtualnej, możesz przesyłać pliki do maszyn wirtualnych VMware przy użyciu plików obrazów ISO:

  1. Utwórz obraz ISO za pomocą oprogramowania takiego jak Ultra ISO dla systemu Windows.
  2. Zapisz potrzebne pliki do obrazu ISO na komputerze lokalnym lub innym komputerze. Możesz skopiować pliki z ESXi przy użyciu jednej z powyższych metod i zapisać je do obrazu ISO.
  3. Zamontuj plik obrazu ISO na maszynie wirtualnej za pomocą wirtualnego napędu CD/DVD tej maszyny (możesz zamontować plik ISO bezpośrednio z komputera lokalnego lub przed wykonaniem tej czynności przesłać plik ISO do magazynu danych ESXi). Użyj VMware Host Client, VMware vSphere Client, VMware stacja robocza lub VMware Remote Console, aby zamontować plik ISO w maszynie wirtualnej ESXi.

Metody tej nie można użyć do przesyłania plików z maszyny wirtualnej na host, ponieważ maszyna wirtualna korzysta z wirtualnego dysku CD/DVD w trybie tylko do odczytu.

Podsumowanie

Istnieje wiele metod kopiowania plików z hosta do maszyn wirtualnych i odwrotnie. Niektóre z nich wymagają połączenia sieciowego, a inne działają nawet w przypadku braku dostępu do sieci. Możesz wybrać metodę najlepiej odpowiadającą Twoim potrzebom i łączyć różne metody. Pamiętaj o wykonywaniu kopii zapasowych maszyn wirtualnych, aby uniknąć utraty danych. Dzięki rozwiązaniu NAKIVO Backup & Replication możesz zabezpieczyć swoje maszyny wirtualne w środowisku VMware vSphere oraz przywrócić poszczególne pliki bezpośrednio z kopii zapasowej maszyny wirtualnej.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read