Как передавать файлы между виртуальной машиной и хостом в Hyper-V

Windows 10 по умолчанию включает Hyper-V. Вы можете включить его в «Включение или отключение функций Windows». Последняя версия Hyper-V не позволяет передавать файлы между хостом и виртуальной машиной напрямую. В этой статье мы обсудим способы простой передачи файлов между виртуальной машиной и хостом.

Активация компонента на Windows8/1/10

Если вы используете серверную операционную систему Windows Server, тогда в панели управления вам необходимо активировать роль Hyper-V

В пользовательской ОС Windows Hyper-V представляет собой компонент, который изначально не активирован. Для активации данного компонента вы можете вы можете воспользоваться 2-мя способами.

Активация компонента на Windows8/1/10
  1. Активация с помощью команды в PowerShell. Для этого в поиске введите PowerShell и в открывшемся терминале введите следующую команду: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All
  2. С помощью графического интерфейса Windows. Для этого вызовите строку «Выполнить» с помощью сочетания клавиш Win+R и введите следующую команду «OptionalFeatures». После этого перед вами откроется окно «Включение или отключение компонентов Windows», тут вам необходимо отметить пункт «Hyper-V» и нажать «ОК».

После прохождения любого из способов необходимо перезагрузить систему, что бы Windows установила всё, что нужно для нового компонента гипервизора.

Выявление «узких мест» в хранении данных

Для сценария, который мы рассмотрим, давайте предположим, что у нас есть 4-х узловой Windows Server 2012 R2 Hyper-V хост-кластер с CSV, на котором размещается десяток виртуальных машин, работающих в качестве интерфейсных веб-серверов для «тяжелых» веб-приложений. Также давайте предположим, что эти виртуальные машины используют функцию Virtual Fibre Channel в Windows Server 2012 R2 Hyper-V, которая позволяет подключаться к Fibre Channel SAN внутри виртуальной машины с помощью Fibre Channel адаптеров главной шины (HBA) на хост-узлах кластера.   Пользователи вашего веб-приложения жалуются на медленную работу приложения. Но понятие «медленный» с точки зрения конечного пользователя является довольно субъективным, так что же может быть более точным способом измерения производительности приложений? Одним из показателей, на который вы могли бы посмотреть, это время отклика диска, то есть, среднее время отклика томов CSV вашего узла кластера. В следующей таблице приведена связь уровня производительности приложений с временем ответа диска.

Читайте также:  Код ошибки 0x80070570 при обновлении Windows 10
Производительность Среднее время ответа диска Комментарий
Очень хорошо <5 мс Уровень аналогичен уровню, предусмотренному для диска SAS
Хорошо 5-10 мс Уровень аналогичен уровню, предусмотренному для диска SATA
Удовлетворительно 10-20 мс Этот уровень, как правило, не приемлем для ввода / вывода данных  при интенсивных рабочих нагрузках, таких как работа базы данных
Слабо, требует внимания 20-50 мс Этот уровень производительности может привести к тому, что пользователю может показаться, что приложение работает «медленно»
Серьезная проблема >50 мс Этот уровень производительности однозначно приведет к жалобам со стороны пользователя

  Таблица 1: Связь уровня производительности приложений со временем ответа диска

Если среднее время ответа на диске составляет более 20 мс, то вам нужно провести тесты производительности вашей системы, чтобы попытаться определить причину проблемы. Вот счетчики, при помощи которых вам следует собирать данные для мониторинга производительности дисков на вашем Hyper-V сервере: \Logical Disk(*)\Avg. sec/Read \Logical Disk(*)\Avg. sec/Write   Обычно, лучше всего сосредоточиться на счетчиках логических дисков вместо счетчиков физических дисков, так как приложения и службы, работающие на Windows Server, используют логические диски, представленные в виде букв дисков, тогда как реальный физический диск (LUN) может состоять из нескольких физических дисков, расположенных в дисковом массиве.

Создание частной сети между хостом и гостевой виртуальной машиной

В этой статье мы возьмем третий подход, но с изюминкой. Мы создадим частную сеть между хостом и ВМ и передадим файлы (или даже поделимся дисками хоста с ВМ). Просто выполните следующие шаги, чтобы это произошло:

Создание частной сети между хостом и гостевой виртуальной машиной
  1. Откройте Hyper-V (Выполнить -> )
  2. В правом меню выберите Virtual Switch Manager.
  3. Выберите New Virtual network switch и выберите Internal в качестве его типа. Нажмите кнопку « Создать виртуальный коммутатор», чтобы создать новый список коммутаторов.
  4. Теперь откройте настройки виртуальной машины. В разделе «Сетевой адаптер» выберите имя только что созданного коммутатора.
  5. Далее мы должны назначить статические IP-адреса двум сетевым адаптерам. Сначала зайдите в виртуальную машину и назначьте статический IP-адрес сетевому адаптеру.
  6. После этого мы должны сделать то же самое для нашего сетевого адаптера. Не волнуйтесь. Эти настройки не будут мешать вашим текущим сетевым настройкам. Если вы перейдете в Панель управления -> Сетевые подключения, вы увидите новый сетевой адаптер с именем коммутатора, созданного на шаге 3.
  7. Назначьте IP на сетевой адаптер.
Создание частной сети между хостом и гостевой виртуальной машиной

После выполнения этих шагов ваши операционная система хоста и гостя будут связаны друг с другом через частную сеть. Вы можете использовать удаленный рабочий стол («Выполнить» -> mstsc), чтобы войти в свою виртуальную машину и даже изменить настройки подключения к удаленному рабочему столу, чтобы отображать диски хоста внутри виртуальной машины.

Создание частной сети между хостом и гостевой виртуальной машиной

Надеемся, что это решит проблему совместного использования файлов между хостом и гостевыми машинами навсегда. Существуют и другие методы, такие как включение гостевых служб интеграции, а затем передача файлов через командную строку PowerShell, но я не предпочитаю, чтобы этими методами было сложнее управлять, если у нас есть большое количество файлов для передачи. Какие методы вы используете для передачи файлов между виртуальными машинами и хостом?

Создание частной сети между хостом и гостевой виртуальной машиной

Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD

Очень удобно, когда есть возможность освободить физический сервер или рабочую станцию, перенеся ее содержимое в целости и сохранности в виртуальную среду. Данная операция называется Physical-to-Virtual, P2V. Таким образом, повысится отказоустойчивость, гибкость развертывания и обслуживания сервисов.

Читайте также:  Bootmgr is missing Windows 7 как исправить?

Используя Disk2VHD, мы создаем образ работающей системы (без ее остановки), записанный в виртуальный жесткий диск формата VHD. Подключив его к гипервизору, в нашем случае Hyper-V, мы получим полную копию работающей физической системы (со всеми установленными приложениями, настройками и ролями) в виртуальной среде.

Стоит отметить – программа Disk2VHD бесплатна, проста в использовании, не требует установки, поддерживает запуск из командной строки и обслуживает большинство современных ОС MS Windows.

Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD

Создание образа происходит следующим образом:

Сейчас лучше выбирать формат .VHDX, т.к. он в полной мере поддерживается всеми версиями Hyper-V. Если на системном диске есть скрытый раздел – его нужно обязательно скопировать.

Работа данной утилиты в командной строке:

disk2vhd C: C:\Distr\

Выполнится конвертация диска С, а таким образом – все диска на сервере:

Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD

disk2vhd * C:\Distr\

Подключение образа, как было сказано, ранее доступно в Hyper-V. Выполняется следующим образом – подключаемся в Hyper-V Manager, создаем новую виртуальную машину, указываем нужные характеристики (CPU, RAM, LAN), а в качестве жесткого диска – созданный нами диск в формате .VHDX.

Далее запускаем виртуальную машину. Необходимо выполнить установку драйверов. В Windows Server 2012 это выполняется автоматически. В нашем случае используется более ранняя версия серверной ОС (Win SRV 2003), поэтому необходимо запустить вручную интеграцию драйверов:

По завершению которой мы получим полноценный работающий сервер. Единственное, что потребуется сделать (в некоторых случаях) – настройка сетевых адаптеров.

Как видим, процесс миграции физических серверов в виртуальную среду с помощью Disk2VHD не вызывает никаких трудностей и рекомендован к использованию.

Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD

Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter

Шаг Создаем новый виртуальный сервер в среде Hyper-V

После успешного завершения конвертирования, создаём новый виртуальный сервер с VHDX диском из прошлого шага.

Читайте также:  Оптимизация браузера Mozilla Firefox для быстрой работы

Выбираем название для виртуального сервера:

Указываем поколение виртуальной машины. (Выбираем 1-ое поколение, со вторым не работает после конвертации, только для новых ВМ)

В меню жесткого диска выбираем “использовать имеющийся виртуальный жесткий диск” и указываем путь до него.

Запускаем виртуальный сервер и проверяем.

Для сжатия образа можете воспользоваться утилитой SDelete. Руководство по очистке свободного места на диске при помощи утилиты SDelete.