- •Включение Hyper-V с помощью CMD и DISM
- •Запуск и завершение работы виртуальных машин
- •Создание контрольной точки виртуальной машины
- •Создание новой виртуальной машины
- •Подведение итогов и справочные материалы
- •Общий доступ к дискам и устройствам
- •Общий доступ к хранилищу и USB-устройствам
- •Совместное использование звуковых устройств (динамиков и микрофона)
- •Повторный запуск параметров подключения
- •Проверка типа сеанса
- •Предварительные условия
- •Настройка вложенной виртуализации
- •Отключение вложенной виртуализации
- •Изменение размера динамической памяти и памяти для среды выполнения
- •Параметры сетей
- •Спуфинг MAC-адресов
- •Преобразование сетевых адресов (NAT)
- •Принцип работы вложенной виртуализации
- •Архитектура коллекции
- •Создание виртуальных машин, совместимых с коллекцией
- •Проверка нового образа виртуальной машины
- •Создание нового источника коллекции
- •Подключение коллекции к пользовательскому интерфейсу коллекции виртуальных машин
- •Поиск и устранение неисправностей
- •Проверка наличия ошибок при загрузке коллекции
- •Ресурсы
- •Сторонние приложения виртуализации
- •Обзор NAT
- •Создание виртуальной сети NAT
- •Соединение с виртуальной машиной
- •Пример конфигурации: подключение виртуальных машин и контейнеров к сети NAT
- •Docker для Windows (для виртуальных машин Linux) и компонент контейнеров Windows
- •Несколько приложений, использующих одну систему NAT
- •Диагностика
- •Несколько сетей NAT не поддерживается.
- •Начало работы
- •Регистрация нового приложения
- •Создание сокета Hyper-V
- •Привязка к сокету Hyper-V
- •Подстановочные знаки для идентификатора виртуальной машины
- •Поддерживаемые команды сокета
- •Полезные ссылки
- •Примеры MSDN
- •Примеры в блогах
- •Высокоуровневый обзор того, что мы делаем и почему
- •Создание узла
- •Создание второго сетевого интерфейса
- •Настройка Hyper-V
- •Создание виртуального коммутатора
- •Установка и настройка DHCP
- •Установка удаленного доступа
- •Настройка удаленного доступа
- •Создание таблицы маршрутов в Azure
- •Настройка таблицы маршрутов
- •Справочник по конфигурации конечного состояния
- •Заключение
- •Требования к операционной системе
- •Требования к оборудованию
- •Проверка совместимости оборудования
Примечание. Ядро поддерживаемой гостевой ОС Linux должно поддерживать следующее: Пример :bash
CONFIG_VSOCKET=y
CONFIG_HYPERV_VSOCKETS=y
Возможности и ограничения
•Поддержка режима ядра или действий в режиме пользователя
•Только поток данных
•Нет блочной памяти (не подходит для резервного копирования и видео)
>
Начало работы
Требования:
•компилятор C/C++ (если у вас его нет, перейдите в сообщество Visual Studio);
•пакет SDK для Windows10 — устанавливается вместе с Visual Studio 2015 с обновлением 3 и более поздними версиями;
•компьютер под управлением одной из операционной систем сервера виртуальных машин, указанных выше, по крайней мере с одной виртуальной машиной (необходимо для тестирования приложения).
Примечание. API-интерфейс для сокетов Hyper-V стал общедоступным в обновлении годовщины Windows 10. Приложения, использующие Хвсоккет, будут работать на любом узле Windows 10 и на гостевом компьютере, но его можно разработать только с помощью Windows SDK более поздней версии, чем сборка
14290.
Регистрация нового приложения
Чтобы использовать сокеты Hyper-V, необходимо зарегистрировать приложение в реестре узла Hyper-V.
Зарегистрировав службу в реестре, вы получите:
•Управление WMI для включения, отключения и отображения списка доступных служб
•Разрешение на прямую связь с виртуальными машинами
Следующая команда PowerShell регистрирует новое приложение с именем HV Socket Demo. Ее необходимо выполнять от имени администратора. Инструкции по регистрации вручную приведены ниже.
Пример :PowerShell
$friendlyName = "HV Socket Demo"
# Create a new random GUID. Add it to the services list $service = New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Virtualization\GuestCommunicationServices" -Name ((New-Guid).Guid)
# Set a friendly name $service.SetValue("ElementName", $friendlyName)
# Copy GUID to clipboard for later use $service.PSChildName | clip.exe
Расположение и данные реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\GuestCommunicationServices\
В этом разделе реестра есть несколько кодов GUID. Это и есть службы, поставляемые с Windows.
Сведения в реестре для каждой службы:
•Service GUID
o ElementName (REG_SZ) — понятное имя службы
Чтобы зарегистрировать свою службу, создайте раздел реестра, используя свой код GUID и понятное имя.
Понятное имя будет связано с новым приложением. Оно будет отображаться в счетчиках производительности и других местах, где невозможно использовать код GUID.
Запись реестра будет выглядеть следующим образом:
Пример :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Virtualization\GuestCommunicationServices\
999E53D4-3D5C-4C3E-8779-BED06EC056E1\
ElementName REG_SZ VM Session Service
YourGUID\
ElementName REG_SZ Your Service Friendly Name
Примечание. Идентификатор GUID службы для гостевой ОС Linux использует протокол VSOCK, который отправляет запросы через svm_cid и svm_port, а не через идентификатор GUID. Для компенсации этого несоответствия в Windows хорошо известный идентификатор GUID используется в качестве шаблона службы на узле, который преобразуется в порт в гостевой ОС. Для настройки идентификатора GUID службы измените первое значение "00000000" на необходимый номер порта. Пример: "00000ac9" обозначает порт 2761.
Пример : C++
// Hyper-V Socket Linux guest VSOCK template GUID
struct __declspec(uuid("00000000-facb-11e6-bd58-64006a7986d3")) VSockTemplate{};
/*
*GUID example = __uuidof(VSockTemplate);
*example.Data1 = 2761; // 0x00000AC9
*/
Совет. Чтобы создать GUID в PowerShell и скопировать его в буфер обмена, используйте следующую команду:
Пример PowerShell : (New-Guid).Guid | clip.exe