Диагностика сбоев динамической миграции (часть 1)

Опубликовано: 19 Апреля, 2023

  • Диагностика сбоев динамической миграции (часть 2)
  • Диагностика сбоев динамической миграции (часть 3)

Введение

В большинстве случаев динамическая миграция Hyper-V проходит относительно безболезненно. Тем не менее, что-то может пойти не так, а иногда и происходит. Удивительно, но на TechNet не так много информации, предназначенной для того, чтобы помочь администраторам справляться с ошибками динамической миграции. В связи с этим я решил написать эту статью, чтобы дать администраторам информацию, на которую следует обращать внимание.

Прежде чем я начну

Причины проблем динамической миграции Hyper-V обычно делятся на три категории: проблемы со связью, проблемы с конфигурацией и проблемы с ресурсами. Работая над этой статьей, я попытаюсь продемонстрировать примеры всех трех типов проблем. Некоторые из решений будут относительно простыми, в то время как другие потребуют немного больше размышлений.

Произошла ошибка при попытке связаться со службой управления виртуальными машинами на целевом компьютере

Одной из наиболее распространенных ошибок динамической миграции Hyper-V, с которой вы, вероятно, столкнетесь, является печально известная ошибка о том, что произошла ошибка при попытке связаться со службой управления виртуальными машинами на целевом компьютере. Вы можете увидеть пример этой ошибки на рисунке A.

Изображение 15298
Рисунок A. Это одна из наиболее распространенных ошибок динамической миграции Hyper-V.

Это, казалось бы, простое сообщение об ошибке может оказаться на удивление сложным для устранения неполадок, поскольку существует ряд различных условий, которые могут вызвать ошибку. Сообщение об ошибке появляется, когда Hyper-V не может установить сеанс RPC с узлом назначения в течение определенного промежутка времени. В этом случае вам следует подходить к процессу устранения неполадок с точки зрения выяснения того, что может вызвать сбой связи.

Хотя это может звучать глупо, первое, что я рекомендую проверить, это убедиться, что конечный хост-компьютер все еще находится в сети. В конце концов, я вызвал сообщение об ошибке, показанное на снимке экрана выше, просто отключив хост-сервер назначения перед попыткой динамической миграции.

Если вы можете подтвердить, что целевой хост находится в сети, рекомендуется проверить, работает ли несколько важных системных служб. Одной из таких служб является служба управления виртуальными машинами Hyper-V. Чтобы проверить состояние этой службы, введите команду Services.msc в строке запуска целевого хоста, чтобы открыть диспетчер управления службами. После этого убедитесь, что служба управления виртуальными машинами Hyper-V запущена и что для ее типа запуска задано значение «Автоматически», как показано на рисунке B.

Изображение 15299
Рисунок B. Служба управления виртуальными машинами Hyper-V должна быть запущена на целевом хосте.

Пока у вас открыт диспетчер управления службами, также рекомендуется убедиться, что служба удаленного вызова процедур (RPC) также запущена и что для ее типа запуска задано значение «Автоматически». Между прочим, служба локатора удаленного вызова процедур (RPC) не требуется для процесса динамической миграции, и эта служба обычно останавливается, как показано на рисунке C.

Изображение 15300
Рисунок C. Служба удаленного вызова процедур (RPC) должна быть запущена, но служба локатора удаленного вызова процедур (RPC) не требуется.

Если вам все еще не удалось исправить сообщение об ошибке, показанное на рис. A, рекомендуется убедиться, что ваш брандмауэр не препятствует выполнению динамической миграции. Общие живые миграции выполняются с использованием TCP через порт 6600. Если вы используете брандмауэр Windows, исключения должны быть включены для Hyper-V и для клиентов управления Hyper-V, как показано на рисунке D.

Изображение 15301
Рисунок D. Убедитесь, что брандмауэр Windows настроен на разрешение Hyper-V и клиентов управления Hyper-V проходить через брандмауэр.

Конечный компьютер не настроен для отправки или получения динамических миграций виртуальных машин

Другой распространенной проблемой динамической миграции является сообщение об ошибке, в котором говорится, что конечный компьютер не настроен для отправки или получения динамических миграций виртуальных машин. Вы можете увидеть, как выглядит эта конкретная ошибка на рисунке E.

Изображение 15302
Рисунок E: Конечный компьютер не настроен для отправки или получения динамических миграций виртуальных машин.

Это особенно легко исправить. В Windows Server 2012 и Windows Server 2012 R2 необходимо предоставить Hyper-V разрешение на прием входящих динамических миграций. Это способ Microsoft предотвратить появление мошеннических виртуальных машин на вашем хосте Hyper-V.

Чтобы устранить эту проблему, откройте диспетчер Hyper-V на целевом хосте. Затем щелкните правой кнопкой мыши контейнер, представляющий хост-сервер, и выберите команду «Настройки Hyper-V» в появившемся контекстном меню. Когда появится диалоговое окно настроек Hyper-V, выберите параметр Live Migration. Как вы можете видеть на рисунке F, есть флажок, который вы должны установить, чтобы разрешить входящие и исходящие живые миграции на хосте.

Изображение 15303
Рисунок F. Флажок Enable Incoming and Outgoing Live Migration должен быть установлен как на исходном, так и на целевом хостах.

Произошла ошибка во время операции перемещения

Другой распространенной проблемой динамической миграции является общее сообщение, указывающее, что во время операции перемещения произошла ошибка. Однако, как правило, это сообщение об ошибке будет содержать дополнительный текст, который расскажет вам больше о конкретном условии, вызвавшем проблему. Например, если вы посмотрите на рисунок G, вы увидите пояснительный текст, указывающий на то, что в системе недостаточно памяти для запуска виртуальной машины.

Изображение 15304
Рисунок G. Динамическая миграция может завершиться ошибкой из-за нехватки памяти.

Не позволяйте термину «шлюз виртуальной машины» в сообщении об ошибке сбить вас с толку. В данном случае Gateway — это имя виртуальной машины.

Таким образом, очевидно, что эта проблема возникла в результате нехватки памяти на целевом хосте. Но здесь все становится сложнее. Хост назначения, который я использую, имеет 32 ГБ памяти. Если вы посмотрите на рисунок H, вы увидите, что работающие виртуальные машины потребляют всего около 22 ГБ памяти.

Изображение 15305
Рисунок H: Хост-сервер оснащен 32 ГБ памяти, но работающие виртуальные машины потребляют только 22 ГБ.

Быстрый просмотр монитора ресурсов целевого хоста, кажется, подтверждает эти оценки, как показано на рисунке I.

Изображение 15306
Рисунок I. На целевом хосте свободно почти 10 ГБ.

Так почему же нельзя перенести виртуальную машину? Проблема связана с тем, как операционная система хоста управляет памятью сервера. Я сделал снимки экрана выше вскоре после загрузки сервера. В это время было много всплесков спроса. На самом деле, если вы снова посмотрите на рисунок G, вы заметите, что три виртуальные машины не запущены. Причина, по которой эти виртуальные машины не работали, заключается в том, что Hyper-V указал, что для запуска этих виртуальных машин недостаточно памяти. Однако, немного подождав, пока система стабилизируется, я вернул часть памяти (как показано на снимке экрана монитора ресурсов, показанном выше) и смог запустить оставшиеся виртуальные машины, как показано на рисунке J.

Изображение 15307
Рисунок J. В конце концов система освободила немного памяти, и я смог загрузить оставшиеся виртуальные машины.

Вывод

Как видите, использование памяти на хостах Hyper-V далеко не линейно. В следующей статье этой серии я расскажу больше о том, как использование памяти хоста может повлиять на живую миграцию.

  • Диагностика сбоев динамической миграции (часть 2)
  • Диагностика сбоев динамической миграции (часть 3)