Гипервизор Hyper-V работает на Windows и может быть управляем как непосредственно на установленной машине, так и удаленно. Часто требуется копирование файлов на сервер Hyper-V и с сервера на виртуальные машины. Нельзя просто перетащить файлы на виртуальные машины Hyper-V, для этого следует использовать другие методы.
Например, при создании новой виртуальной машины в Hyper-V требуется установка ОС на эту ВМ. Обычно это делается путем монтирования образа установки ISO средства операционной системы. Для передачи медиафайлов на хост Hyper-V необходимо скопировать файл ISO на хост и установить гостевую операционную систему на новой ВМ.
Этот пост блога предоставляет 6 методов для копирования файлов на виртуальные машины Hyper-V и на сервер Hyper-V. Обратите внимание, что эти методы для копирования файлов на сервер Hyper-V также могут использоваться в других сценариях, таких как копирование файлов с хоста Hyper-V на ВМ.
Метод 1: Как скопировать файлы, используя общий доступ к файлам на хосте Hyper-V
Этот метод включает создание общего доступа к файлам на хосте Hyper-V и копирование образа ISO или других файлов на этот SMB-ресурс. Протокол SMB является встроенным протоколом обмена в Windows, но также поддерживается в Linux и других операционных системах.
Этот метод также можно использовать для копирования файлов на сервер Hyper-V с любой физической или виртуальной машины при наличии сетевого соединения.
- Включите правило брандмауэра для разрешения входящих соединений по протоколу SMB на машине с установленным Hyper-V. Чтобы включить совместное использование файлов и принтеров в брандмауэре, выполните следующую команду на хосте Hyper-V:
netsh advfirewall firewall set rule group=”Файлы и общие принтеры” new enable=Yes
Примечание: Вы можете настроить общий ресурс SMB для файлов с соответствующими разрешениями для нужных пользователей и делиться только нужным каталогом.
- Если у вас есть графический интерфейс пользователя (GUI) на вашем компьютере с Windows, подключитесь к удаленному общему ресурсу файлов на хосте Hyper-V, введя путь к общему ресурсу в адресной строке окна проводника Windows. В этом примере мы используем скрытый системный общий ресурс C$, который по умолчанию включен на всех компьютерах с Windows для целей администрирования. Аналогичным образом вы можете подключиться к другим разделам, таким как D$, E$ и т. д.
\\10.10.10.31\c$\
Примечание: Файлы хранятся на диске C: для демонстрации. Рекомендуется использовать другой специально выделенный раздел для файлов виртуальных машин, образов ISO, общих ресурсов и других данных, не относящихся к системе.
- Перейдите в каталог, где вы хотите хранить свои образы ISO или где находятся другие файлы, которые вам нужно скопировать. Вы можете создать этот каталог сейчас, если он еще не создан. В нашем случае файлы ISO находятся в C:\ISO_1\ на нашем хосте Hyper-V, а сетевой путь – \\10.10.10.31\c$\ISO_1\
Если вам нужно использовать интерфейс командной строки, вы можете сопоставить общий ресурс SMB как сетевой диск с помощью команды:
Net use * \\〈ваш хост Hyper-V〉\d$
Например,
net use S: \\10.10.10.31\d$
Примечание: Вы можете выполнить эту команду в CMD или PowerShell на клиенте или сервере, на котором находятся данные, которые вы хотите передать в Hyper-V.
- Скопируйте необходимый файл ISO (или другие файлы) с вашего локального компьютера (C:\data\shared01\ в нашем случае) на хост Hyper-V, используя этот сетевой путь.
- После копирования образа ISO на сервер, мы можем указать привод DVD на файл образа и перейти в папку, которую мы создали на корне диска (C:).
- После того как вы закончите копировать все необходимые файлы на ваш хост Hyper-V, вы можете отключить входящие соединения в брандмауэре Windows на хосте Hyper-V в целях безопасности. Мы можем отключить правила брандмауэра для обмена файлами и принтерами, которые мы разрешили выше, если мы решим это сделать, просто изменив Да на Нет в команде PowerShell.
netsh advfirewall firewall set rule group=”Обмен файлами и принтерами” new enable=No
Метод 2: Как скопировать файлы на серверы Hyper-V, используя одну общую файловую долю
Когда у вас есть несколько хостов Hyper-V в вашей среде, неудобно настраивать общую файловую долю на каждом хосте Hyper-V и копировать образы ISO на все эти хосты Hyper-V. Более того, использование места на хранение на нескольких хостах для одних и тех же образов ISO может быть не рациональным.
Можно настроить общий ресурс файлов на другом сервере, например, на файловом сервере или NAS и хранить все нужные образы ISO там. Настройте общий ресурс один раз, настройте доступ для узлов Hyper-V и используйте нужные образы ISO, хранящиеся в одном месте для всех узлов.
Этот метод удобен, если все используемые машины являются членами домена Active Directory.
Если вы хотите использовать этот метод для передачи файлов между узлом Hyper-V и гостевой операционной системой виртуальной машины, вам нужно настроить виртуальный коммутатор в настройках Hyper-V и установить нужный режим сети.
Если вам нужно скопировать файлы на виртуальную машину с гостевой ОС Linux, у вас есть еще один вариант, кроме использования протокола SMB. Вы можете использовать SSH для безопасной передачи файлов Hyper V через сеть.
Метод 3: Передача файлов Hyper-V через RDP
Если ваш сервер Hyper-V работает на машине Windows с GUI, вы можете подключиться к этому узлу через RDP (Протокол удаленного рабочего стола) и подключить локальные диски вашей локальной машины для копирования нужных файлов. Для этого вам нужно включить удаленные подключения рабочего стола на целевом сервере.
Вы можете использовать этот метод для копирования файлов на сервер Hyper-V с другой физической или виртуальной машины, работающей под управлением Windows.
- Чтобы включить удаленные подключения рабочего стола, перейдите к Пуск > Настройки > Система > Удаленный рабочий стол и включите Удаленный рабочий стол.
- Запустите клиент удаленного рабочего стола Windows, расположенный в %windir%\system32\mstsc.exe
Введите mstsc в командной строке или диалоговом окне Run и нажмите Enter.
- Введите IP-адрес или имя хоста удаленного компьютера (в нашем примере это хост Hyper-V с IP-адресом 10.10.10.31) и имя пользователя. Вы можете ввести имя пользователя в полном формате (домен\пользователь или компьютер\пользователь).
- Перейдите на вкладку Локальные ресурсы и нажмите Еще.
- Выберите локальные ресурсы, которые вы хотите отобразить с вашего компьютера на удаленный хост (в нашем примере удаленный хост – хост Hyper-V). Разверните Диски и выберите нужный дисковод. Необходимые файлы находятся на диске E:\ на нашем компьютере, поэтому мы выбираем диск E: для отображения в нашем соединении RDP.
- Нажмите OK, чтобы сохранить настройки, а затем нажмите Подключить.
После установления сеанса удаленного рабочего стола откройте Мой компьютер или Этот ПК в Проводнике Windows на удаленной машине. Вы должны увидеть отображенный дисковод с вашего локального компьютера, отображенный на удаленной машине (E на SERVER01-DC на скриншоте ниже). Перейдите к нужным файлам на этом отображенном диске и скопируйте их на ваш хост Hyper-V.
Этот метод также работает для виртуальных машин, если они подключены к сети.
Метод 4: Передача файлов Hyper-V с помощью командлета PowerShell
PowerShell 4.0 и выше имеет полезный cmdlet, который позволяет копировать файлы с хоста Hyper-V на виртуальную машину без наличия сетевого подключения между хостом и гостевой ВМ и без необходимости настройки брандмауэра.
Давайте посмотрим, как скопировать файлы на виртуальную машину Hyper-V в PowerShell без использования сети.
- Включите Службы гостя на виртуальной машине. Интеграционные службы должны быть установлены в гостевой ОС ВМ.
Службы гостя являются частью Интеграционных служб Hyper-V, но они не включены по умолчанию. Чтобы включить Службы гостя, откройте настройки ВМ, выберите Интеграционные службы в левой панели окна настроек ВМ и установите флажок Службы гостя.
Включите Службы гостя для ВМ в PowerShell:
Enable-VMIntegrationService -VMName VM1 -Name ‘Интерфейс службы гостя’
- Вы можете проверить, включена ли функция Служб гостя в PowerShell:
Get-VMIntegrationService -name Guest* -VMName VM1,VM2
Где VM1,VM2 – это имена ВМ
- Если статус Нет контакта, вам нужно обновить ВМ и установить Службы интеграции в гостевой ОС.
- Если статус False, вы можете включить необходимый интерфейс гостевых служб:
Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru
- Используйте команду, приведенную ниже, для передачи файлов Hyper-V с хоста Hyper-V на гостевую ВМ, установив исходный путь на хосте Hyper-V и путь назначения на ВМ:
Copy-VMFile “VMName” -SourcePath “F:\Test.txt” -DestinationPath “C:\Temp\Test.txt” -CreateFullPath -FileSource Host
Где:
- Имя ВМ – это имя ВМ, на которую вы копируете файл (вы можете увидеть имя ВМ в Менеджере Hyper-V; это не имя хоста ВМ, отображаемое в гостевой ОС).
- Исходный путь – это путь к исходному файлу на хосте Hyper-V (файл, который вам нужно скопировать).
- Путь назначения – это путь к файлу назначения на ВМ (куда скопировать нужный файл).
- Команда -CreateFullPath используется для создания полного пути со всеми необходимыми папками, если они не существуют.
В нашем примере точная команда PowerShell для передачи файла Hyper-V с хоста на гостевую ВМ выглядит следующим образом:
Copy-VMFile “VM2” -SourcePath “C:\temp\file01.txt” -DestinationPath “C:\Temp1\file01.txt” -CreateFullPath -FileSource Host
Примечание: команда Copy-VMFile работает только в направлении от хоста Hyper-V к ВМ.
Метод 5: Подключение VHDX к хосту и гостевой системе
Идея этого метода заключается в создании виртуального диска VHDX, который можно подключить как к хосту Hyper-V, так и к виртуальной машине. Вы можете скопировать необходимые файлы на этот виртуальный диск, подключить диск к нужной машине и копировать файлы на/с виртуального диска.
Мы используем Windows Server 2019 в нашем примере. Создание виртуального диска VHDX доступно в Управлении компьютером, а не только в Менеджере Hyper-V при настройке виртуальных машин.
- Откройте окно Управление компьютером. Вы можете сделать это, нажав Win+R, чтобы открыть диалоговое окно Выполнить и запустив команду compmgmt.msc.
- Перейдите в Хранилище > Управление дисками в окне Управление компьютером.
- Щелкните правой кнопкой мыши по Управление дисками и в контекстном меню выберите Создать VHD.
- A new window opens to create a virtual disk.
- Укажите местоположение виртуального жесткого диска на хосте Hyper-V, например, C:\Hyper-V\data-temp\
- Установите размер виртуального жесткого диска. Мы создаем виртуальный жесткий диск размером 8 ГБ для демонстрационных целей.
- Выберите формат виртуального жесткого диска. Мы выбираем формат VHDX> как более новый. Прочтите о VHD против VHDX, чтобы узнать больше о различиях.
- Выберите тип виртуального жесткого диска. Мы выбираем Динамическое расширение, чтобы экономить место на диске, пока он не будет заполнен данными.
- Нажмите OK, чтобы сохранить настройки и закрыть окно.
Вот пример команды для создания виртуального диска VHDX в PowerShell:
New-VHD -Path C:\Hyper-V\data-temp.vhdx -SizeBytes 8GB -Dynamic -BlockSizeBytes 1MB
Команда для монтирования виртуального диска VHD в PowerShell:
mount-VHD -path C:\Hyper-V\data-temp.vhdx
A virtual hard disk has been created on our Hyper-V host.
- Щелкните правой кнопкой мыши по этому виртуальному жесткому диску VHDX в snap-ине Disk Management и выберите Initialize Disk.
Альтернативно, если вы предпочитаете использовать PowerShell, перечислите все смонтированные диски, чтобы определить номер нужного виртуального диска перед инициализацией:
Get-Disk
- Ваш диск автоматически выбран. Выберите стиль раздела. Мы используем MBR (Master Boot Record) для лучшей совместимости. Нажмите OK.
Альтернативно, команда для тех, кто использует PowerShell, включает номер виртуального диска и стиль раздела:
Initialize-Disk 1 -PartitionStyle MBR
- Создайте новый том (раздел) на виртуальном диске, который был инициализирован на хосте Hyper-V. Этот раздел также будет виден в Windows VM (или Linux, который может работать с файловыми системами NTFS).
Щелкните правой кнопкой мыши по объему 8 ГБ и выберите New Simple Volume в контекстном меню.
- Мастер Создания нового простого тома открывается. Нажмите Далее.
- Укажите размер тома. Используйте весь размер диска для этого тома.
- Назначьте букву диска, например, H:
- Форматируйте раздел. Выберите файловую систему NTFS, оставьте размер выделения по умолчанию и введите метку тома (например, Копирование-Файлов). Выберите флажок Выполнить быструю форматирование.
Кроме того, можно использовать эти команды PowerShell для создания и форматирования тома:
New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter
Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force
- После завершения мастера вы увидите примонтированный виртуальный диск в Проводнике Windows на компьютере-хосте Hyper-V.
- Скопируйте необходимые файлы на раздел, находящийся на виртуальном диске. Мы копируем file01.txt, как показано на скриншоте ниже.
- После копирования всех необходимых файлов на виртуальный диск необходимо отмонтировать виртуальный диск с нашего компьютера-хоста Hyper-V.
Щелкните правой кнопкой мыши на соответствующем разделе, примонтированном с виртуального диска VHDX, и выберите пункт Извлечь в контекстном меню.
Также команда для отмонтирования виртуального диска с компьютера-хоста в PowerShell:
dismount-VHD -path C:\Hyper-V\data-temp.vhdx
- Вы можете примонтировать этот виртуальный диск, созданный для передачи файлов Hyper-V, с компьютера-хоста на гостевую машину и наоборот. Давайте примонтируем виртуальный диск с записанными файлами на виртуальную машину.
- Выберите необходимую виртуальную машину и откройте Настройки ВМ в Менеджере Hyper-V.
- Выберите необходимый виртуальный дисковый контроллер в левой панели окна настроек ВМ.
- Выберите Жесткий диск и нажмите Добавить.
- Выберите Виртуальный жесткий диск и нажмите Обзор, чтобы добавить существующий виртуальный жесткий диск к ВМ.
- Укажите путь к VHDX. В нашем случае путь – C:\Hyper-V\data-temp.vhdx
- Нажмите ОК, чтобы сохранить настройки.
Кроме того, это команда PowerShell для добавления существующего виртуального жесткого диска к конфигурации ВМ Hyper-V:
Add-VMHardDiskDrive -VMName VM2 -Path C:\Hyper-V\data-temp.vhdx
- Запустите виртуальную машину с подключенным виртуальным диском на вашем хосте Hyper-V.
- Войдите в гостевую операционную систему и проверьте, был ли том, расположенный на виртуальном диске, автоматически смонтирован. В противном случае перейдите к Управлению Компьютером> Управлению Дисками и назначьте букву диска тому тому с файлами, которые вам нужно передать с хоста Hyper-V на ВМ.
- Скопируйте необходимые файлы с подключенного виртуального диска на виртуальную машину.
Метод 6: VMConnect с Режимом Улучшенной Сессии
VMConnect, или Virtual Machine Connection, является встроенным инструментом Hyper-V для управления виртуальными машинами. Экран, работающий в качестве монитора для виртуальной машины, на котором вы можете видеть, как вы перемещаетесь с помощью клавиатуры и мыши, является частью инструмента VMConnect. Использование VMConnect с режимом улучшенной сессии более удобно и предоставляет больше функций.
Режим улучшенной сессии позволяет настраивать разрешение экрана при подключении к виртуальной машине и присоединять локальные ресурсы хоста, на котором запущен Hyper-V Manager, для управления виртуальными машинами. Локальные ресурсы присоединяются аналогично, как при использовании подключения к удаленному рабочему столу для доступа к удаленному хосту или виртуальной машине.
Чтобы включить режим улучшенной сессии:
- Щелкните правой кнопкой мыши имя вашего хоста Hyper-V в Hyper-V Manager и в контекстном меню выберите Настройки Hyper-V.
- Щелкните режим улучшенной сессии в левой панели
- Выберите флажок Использовать режим улучшенной сессии
В качестве альтернативы включите режим улучшенной сессии в PowerShell:
Set-VMHost -EnableEnhancedSessionMode $True
Как только режим улучшенной сессии включен и все настроено для этого в гостевой виртуальной машине и сервере Hyper-V, вы можете запустить виртуальную машину и подключиться к ней с помощью VMConnect.
Если включен режим улучшенной сессии, вы должны увидеть окно выбора разрешения экрана. Щелкните Показать параметры в этом окне.
Выберите вкладку Локальные ресурсы. Щелкните Дополнительно в разделе Локальные устройства и ресурсы.
Выберите диски, доступные на вашем хосте Hyper-V, которые вы хотите подключить к виртуальной машине.
Метод 7: Передача файлов Hyper-V с использованием образов ISO
Другой метод копирования файлов на виртуальную машину Hyper-V похож на использование виртуального диска VHDX. Однако этот метод работает только в одном направлении (копирование файлов Hyper-V на VM), и доступ к файлам с VM только для чтения.
Если у вас есть приложение, которое может редактировать и записывать ISO-файлы, являющиеся образами CD/DVD, вы можете записать необходимые файлы на ваш хост Hyper-V в образ ISO и вставить этот образ ISO в качестве виртуального DVD-носителя в VM.
Если вам нужно скопировать загрузочный образ ISO на вашу виртуальную машину (например, при тестировании вложенной виртуализации), вам следует создать новый пустой не загружаемый файл образа ISO и добавить в него загружаемый файл образа ISO. Затем вы можете скопировать загружаемый образ ISO из внешнего образа ISO, вставленного в виртуальный DVD-привод VM.
Заключение
Какой бы метод копирования файлов на сервер Hyper-V вы ни использовали, не рекомендуется использовать его в качестве резервного копирования. Эти методы не так эффективны и надежны, как профессиональные решения для резервного копирования Hyper-V. Современные решения для резервного копирования виртуальных машин Hyper-V, такие как NAKIVO Backup & Replication, создают резервные копии на уровне хоста, которые являются компактными, быстрыми и легкими для восстановления данных из них.
Source:
https://www.nakivo.com/blog/copy-files-to-hyper-v-server/