Содержание
Добрый день, читатели.
Был установлен Windows server 2012r2 недавно, так же на этом сервере есть виртуальные машины в hyper-v на которых установлен windows server 2008r2. Недавно вылезла ошибка:
Службе запросов на теневое копирование томов Hyper-V не удалось подключиться к виртуальной машине «mashina», так как ее версия не соответствует версии, ожидаемой Hyper-V (ИД виртуальной машины: 65CE7BAF-D2BD-470E-A29E-B867B4535667). Версия платформы: Negotiated (0.0) — Expected (3.0); версия сообщения: Negotiated (0.0) — Expected (5.0). Чтобы исправить проблему, обновите службы интеграции. Для этого подключитесь к виртуальной машине и выберите в меню «Действие» пункт «Вставьте установочный диск служб интеграции».
Делаем то, что требуется в сообщении
Как старший программный менеджер в группе Product Quality and Online (PQO), я особое внимание уделяю технологиям виртуализации, то есть продуктам Microsoft Hyper-V Server, System Center Virtual Machine Manager (SCVMM), Microsoft Application Virtualization (App-V), Microsoft Enterprise Desktop Virtualization (MED-V) и Windows Virtual PC. Совместно с командами разработчиков я работаю над решением проблем, о которых пользователи сообщают в службу поддержки Microsoft. Данные проблемы следует учитывать всем, кто планирует устанавливать Hyper-V или уже работает с ним
Исключения в антивирусе
Если на сервере Hyper-V установлено антивирусное программное обеспечение и файлы виртуальной машины Hyper-V не добавлены в список исключений компонента сканирования в реальном времени, то вы можете столкнуться со множеством трудностей. Наиболее распространенная проблема — администратор открывает консоль управления Hyper-V и обнаруживает, что виртуальные машины исчезли. Другие симптомы:
- проблемы с производительностью виртуальных машин;
- создание или запуск виртуальной машины заканчивается неудачей, при этом появляется одно из следующих сообщений:
- The requested operation cannot be performed on a file with a user-mapped section open. (0x800704C8);
- VMName’ Microsoft Synthetic Ethernet Port (Instance ID<7E0DA81A-A7B4-4DFD-869F-37002C36D816>): Failed to Power On with Error ‘The specified network resource or device is no longer available.’ (0x80070037);
- The I/O operation has been aborted because of either a thread exit or an application request. (0x800703E3).
Чтобы избежать этих проблем, добавьте в список исключений компонента сканирования в реальном времени в своем антивирусе перечисленные ниже папки и файлы.
- Папка, в которой по умолчанию хранятся настройки виртуальных машин (C:ProgramDataMicrosoftWindowsHyper-V).
- Другие папки конфигураций виртуальных машин.
- Папка, в которой по умолчанию хранятся VHD-файлы (C:UsersPublicDocumentsHyper-VVirtual Hard Disks).
- Другие папки, в которых хранятся VHD-файлы.
- Папки, в которых хранятся снимки.
- Vmms.exe (возможно, придется настроить как процесс-исключение в антивирусной программе).
- Vmwp.exe (возможно, придется настроить как процесс-исключение в антивирусной программе).
Рекомендуемые исключения, необходимые для работы Hyper-V, а также известные проблемы, связанные с антивирусным программным обеспечением, описаны в статье Microsoft «Virtual machines are missing in the Hyper-V Manager Console or when you create or start a virtual machine, you receive one of the following error codes: ‘0x800704C8’, ‘0x80070037’ or ‘0x800703E3’» (support.microsoft.com/kb/961804).
Снимки и нехватка места на диске
Если снимки не могут быть объединены из-за нехватки места на диске (то есть error0x80070070), не удаляйте файлы с расширением. avhd (файлы снимков). В результате удаления файлов. avhd произойдет потеря данных, которая приведет к тому, что виртуальная машина перестанет запускаться. Если у вас нет возможности освободить необходимое дисковое пространство на томе, где хранятся файлы. avhd, требуется сделать следующее:
- Экспортировать виртуальную машину на том, где достаточно свободного места на диске.
- После завершения экспорта откройте консоль управления Hyper-V и удалите виртуальную машину, которую экспортировали.
- Импортируйте виртуальную машину из нового места хранения. Если версия Hyper-V ниже Windows Server 2008 R2, включите виртуальную машину, а затем выключите ее, чтобы запустить процесс объединения в новом месте хранения.
Полный список наработанных методов использования снимков можно найти в статье TechNet «Hyper-V Virtual Machine Snapshots: FAQ» по ссылке technet.microsoft.com/en-us/library/dd560637(WS.10).aspx.
Компоненты интеграции не обновлены
После того как исправление или обновление для Hyper-V установлено на сервер (Windows 2008 R2, Server 2008 или Microsoft Hyper-V Server), просмотрите документацию, связанную с исправлением, чтобы узнать, требует ли это исправление обновления компонентов интеграции виртуальной машины. Вы также можете просмотреть список обновлений Hyper-V на сайте TechNet, чтобы выяснить, включает ли обновление усовершенствованные компоненты интеграции.
Пример проблемы, которая может возникнуть из-за устаревших компонентов интеграции, можно найти в статье Microsoft «The network connection is lost on a Hyper-V virtual machine» (support.microsoft.com/kb/2223005), где говорится об исправлении для Hyper-V, которое решает проблему сетевого подключения к виртуальной машине. Для этого исправления требуется обновить компоненты интеграции виртуальных машин с системами Windows XP и Windows Server 2003. Если исправление установить на сервер Hyper-V, но не обновить компоненты интеграции виртуальной машины, то, вероятно, сетевая проблема, которую должно было устранить исправление, останется.
Чтобы определить, какие виртуальные машины имеют устаревшие компоненты интеграции, можно просмотреть журнал событий Microsoft-Windows-Hyper-V-Integration/Admin. Если виртуальная машина использует устаревшие компоненты интеграции, то при ее запуске в журнал будет записано следующее событие:
Log Name: Microsoft-Windows-Hyper-VIntegration-Admin
Description: Hyper-V Heartbeat connected to virtual machine ‘vmname’, but the version does not match the version expected by Hyper-V (Virtual machine ID A5C22E8D-5F58-4186-832F-E7C2AE0B4804). This is an unsupported configuration. This means that technical support will not be provided until this problem is resolved. To fix this problem, upgrade the integration services. To upgrade, connect to the virtual machine and select Insert Integration Services Setup Disk from the Action menu.
Событие с идентификатором 4010 будет записано для каждой устаревшей службы интеграционного компонента виртуальной машины (экран 1).
Экран 1. Событие 4010 в журнале |
Вы также можете задействовать инструмент Hyper-V Best Practices Analyzer (BPA) или сценарии PowerShell, чтобы определить, какие виртуальные машины имеют устаревшие компоненты интеграции. Узнать, как получить инструмент Hyper-V BPA, можно из статьи Microsoft «Hyper-V BPA for Windows Server 2008 R2 is now available» (support.microsoft.com/kb/977238). Команда разработчиков Hyper-V разместила сценарий PowerShell в хранилище сценариев TechNet по ссылке gallery.technet.microsoft.com/scriptcenter/251337c5-ab97-40b3-a888-80b68102d1d5.
Функция Refresh virtual machine configuration и кластер
Консоль управления Hyper-V не поддерживает кластеры, и это означает, что изменения настроек виртуальных сетей или виртуальных машин в данной консоли должны быть продублированы на другие узлы кластеров с помощью функции Refresh virtual machine configuration в консоли диспетчера отказоустойчивых кластеров.
Если не воспользоваться этой функцией, то виртуальная машина либо вообще не сможет перемещаться между узлами кластера, либо ее параметры (например, VLAN ID), которые были изменены, будут потеряны при перемещении виртуальной машины на другой узел кластера Hyper-V. Чтобы обновить настройки виртуальной машины, выполните следующие шаги.
- В консоли диспетчера отказоустойчивых кластеров откройте раздел Services and Applications, а затем щелкните по виртуальной машине, для которой хотите обновить настройки.
- В окне Actions прокрутите список вниз, щелкните мышью на кнопке More Actions, затем выберите функцию Refresh virtual machine configuration, как показано на экране 2.
Экран 2. Функция Refresh virtual machine configuration |
В системе Server 2008 R2 функцией Refresh virtual machine configuration можно не пользоваться, если вы меняете параметры виртуальной машины с помощью консоли диспетчера отказоустойчивых кластеров. Для изменения параметров виртуальной машины в этой консоли сделайте следующее:
- в консоли диспетчера отказоустойчивых кластеров откройте раздел Services and Applications, затем щелкните по виртуальной машине, для которой хотите изменить параметры;
- в окне Actions щелкните мышью на кнопке Settings, чтобы изменить параметры виртуальной машины.
Сбои в работе Hyper-V
Чтобы посмотреть полный список распространенных проблем в настройке Hyper-V, обратитесь к статье TechNet «Hyper-V: Gotchas» по ссылке social.technet.microsoft.com/wiki/contents/articles/hyper-v-gotchas.aspx. Этот список обновляется раз в квартал при выявлении новых проблем.
Джефф Паттерсон (jeffpatt@microsoft.com) — старший менеджер в команде Product Quality and Online в Microsoft
Поделитесь материалом с коллегами и друзьями
Службы интеграции Hyper-V отвечают за эффективное взаимодействие виртуальных машин и гипервизора посредством установки дополнительных сервисов в гостевую ОС. Для понимания степени важности, предлагаем кратко рассмотреть каждую из них, а также ключевые изменения в Windows Server 2016.
По умолчанию, не все службы включены. Guest Services, как правило, включается по мере необходимости. Остальные отвечают за более важную функциональность.
Operating System Shutdown – включает возможность завершения работы ВМ (аналогия привычного shutdown из гостевой ОС), используя Hyper-V Manager или PowerShell/WMI.
Time Synchronization – отвечает за предоставление синхронизации времени между хостом и виртуальной машины.
Data Exchange или KVP (key-value pairs) – предоставляет функционал обмена значениями формата key + value типа strings, расположенных в ветке реестра HKLMSoftwareMicrosoftVirtual Machine или в файлах kvp_pool_x (для ОС Linux) через VMbus. На стороне хоста WMI-запросами занимается VMMS.exe (функции AddKvpItems, ModifyKvpItems и RemoveKvpItems). В свою очередь, на ВМ должна быть запущена служба Hyper-V Data Exchange Service.
HKLMSoftwareMicrosoftVirtual MachineAuto содержит информацию о ВМ, которая генерируется во время первого запуска службы Hyper-V Data Exchange Service.
HKLMSoftwareMicrosoftVirtual MachineExternal содержит данные, отправленные пользователем со стороны хоста. По умолчанию данный раздел пуст и не содержит никаких объектов KVP.
HKLMSoftwareMicrosoftVirtual MachineGuest презентует данные, которые необходимо отправить узлу виртуализации из данной ВМ. К примеру, сведения о AVMA-активации или кастомные параметры, которые вашему приложению необходимо передать на уровень выше (да, в целом, мы можем добавлять собственные пары key + value и работать с ними через KVP и WMI без предоставления credentials. Новая аналогия – PowerShell Direct, но со своими плюсами и минусами).
HKLMSoftwareMicrosoftVirtual MachineGuestParameters содержит информацию об узле виртуализации (наименование, FQDN, VMID и так далее). Запомните эту ветку – она далее нам пригодится.
Heartbeat отвечает за проверку состояния ВМ через hearbeats, выполняемые в определенный интервал, между ВМ и узлом.
Backup (volume snapshot) включает возможность использования задач резервного копирования ВМ на уровне хоста для обеспечения консистентности резервных копий.
Guest Services обеспечивают передачу файлов в ВМ через WMI или PowerShell (Copy-VMFile). По умолчанию, не включена. Более подробно можно почитать здесь.
Что нужно учитывать в Windows Server 2016?
Все помнят, что для установки служб интеграции приходилось монтировать ISO-образ (%systemroot%system32vmguest.iso) через опцию «Insert Integration Services Setup Disk» в консоли ВМ и запускать процесс установки внутри ВМ. Затем проверять версию IS время от времени для её актуализации (vmguest.iso, так же как и узел, тоже обновлялся через Windows Update). Данный процесс существенно поменялся в Windows Server 2016. Опции в консоли теперь нет, как и самого vmguest.iso. Теперь распространением IS на ВМ занимается сам Windows Update. Но есть особенности, которые мы рассмотрим ниже.
Автоматическая доставка IS через Windows Update доступна для новых ОС внутри ВМ (начиная с Windows Server 2012 R2/Windows 8.1 и новее). Дополнительных действий от вас не требуется.
Если гостевые ОС на базе Windows Server 2012/Windows 8 и старше, то требуется наличие рабочей службы Data Exchange Service (рассмотренная выше). DES предоставляет доступ к параметрам /values HostSystemOSMajor и HostSystemOSMinor, располагающимся в ветке HKLMSOFTWAREMicrosoftVirtual MachineGuestParameters, для определения необходимости обновления IS на ВМ. Данные параметры должны присутствовать и иметь значения. В противном случае (к примеру, если DES не включен для ВМ или служба не выполняется), IS не будут предоставляться через WU.
TIP: мы можем вручную создать или изменить данные значения реестра для подачи «фальш»-сигнала, но данное действие официально не поддерживается.
Предположим, что в рамках ВМ выполняется Windows Server 2012 R2, а на хосте – Windows Server 2016. DES получает сведения о ВМ, сверяет значения между имеющимися на узле и полученные от ВМ и они оказываются различными, таким образом IS на ВМ не актуальны и их обновление будет выполнено через WU.
В случае с ОС на базе Linux, как правило, IS идут встроенными. В ряде случаев требуется пакет Linux Integration Services или FreeBSD Integration Services. Получить подробные сведения о требованиях к различным дистрибутивам и функциональности можно из статьи «Supported Linux and FreeBSD virtual machines for Hyper-V on Windows».
Если у Вас всё ещё есть виртуализированный Windows Server 2003, который уже не поддерживается, то, как минимум, рекомендуется устанавливать IS, используя vmguest.iso из Windows Server 2012 R2, к примеру. Надежность и производительность не гарантируется, но 2003-й год был уже 14 лет назад. Конечно, миграция на более новые версии ОС будет предпочтительна в данном случае.
Как установить IS вручную?
Если DES не выполняется или Windows Update недоступен из ВМ, то есть специальный KB для самостоятельной загрузки IS «Hyper-V integration components update for Windows virtual machines that are running on a Windows 10 or Windows Server 2016-based host» (доступная в KB версия IS: 6.3.9600.17903) + IS Update для устранения проблем с Windows Server Guest OSes (IS ver.6.3.9600.18080, применим и для Windows 7/8.1).
IS из KB доступен в виде cab-файла, который можно применить через PowerShell: Add-WindowsPackage -PackagePath
-Online. Если нужно применить обновление IS на выключенной ВМ (offline vm servicing), то рекомендуем обратиться к данному руководству.