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

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

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

Введение

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

Не удалось установить соединение с хостом

Одно из наиболее распространенных сообщений об ошибках динамической миграции Hyper-V указывает на то, что Hyper-V не удалось установить соединение с хостом. Фактическое сообщение об ошибке:

Фактическое сообщение об ошибке вы можете увидеть на рисунке A.

Изображение 15284
Рисунок A: Так выглядит сообщение об ошибке.

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

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

Изображение 15285
Рисунок B. Hyper-V предлагает два разных варианта аутентификации для динамической миграции.

Как видно на рисунке выше, Hyper-V предлагает два разных типа аутентификации для динамической миграции. Серверы могут аутентифицироваться друг с другом с помощью Credential Security Support Provider (CredSSP) или Kerberos. Многие администраторы предпочитают использовать CredSSP, поскольку для этого не требуется дополнительная настройка. Даже в этом случае аутентификация CredSSP часто неадекватна.

Причина этого связана с ограничениями прыжков. Протокол CredSSP работает только через один переход. Это означает, что если вы хотите выполнить живую миграцию виртуальной машины с использованием аутентификации CredSSP, вам нужно будет войти непосредственно на хост-сервер, на котором в данный момент работает виртуальная машина. Если вы попытаетесь войти в систему и инициировать процесс миграции из другого места, динамическая миграция завершится ошибкой, и вы увидите сообщение об ошибке, показанное на рис. A. Сообщение об ошибке, показанное на рис. компьютер к хосту, который находится более чем в одном переходе, независимо от того, вошли ли вы непосредственно в хост или нет.

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

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

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

Чтобы настроить ограниченное делегирование, узлы Hyper-V должны быть членами домена. С учетом сказанного, продолжайте и войдите в контроллер домена или сервер, на котором установлены инструменты управления AD, а затем откройте диспетчер серверов. Теперь запустите консоль «Пользователи и компьютеры Active Directory», выбрав ее в меню «Инструменты» диспетчера серверов.

Когда откроется консоль «Пользователи и компьютеры Active Directory», выберите контейнер «Компьютеры». Теперь щелкните правой кнопкой мыши список вашего хост-сервера Hyper-V и выберите команду «Свойства» в контекстном меню. Когда появится лист свойств хоста, выберите вкладку Делегирование.

На этом этапе вы должны выбрать параметр «Доверять этому компьютеру только для делегирования указанным службам», как показано на рисунке C. Вы также должны убедиться, что выбран параметр «Использовать только Kerberos».

Изображение 15286
Рисунок C. Выберите параметр, позволяющий доверять компьютеру делегирование определенным службам.

Теперь нажмите кнопку «Добавить», и Windows откроет диалоговое окно «Добавить службы». Когда появится это диалоговое окно, нажмите кнопку «Пользователи или компьютеры». Это приведет к тому, что Windows отобразит диалоговое окно «Выбор пользователей компьютеров». Необходимо ввести имя сервера Hyper-V, на который вы хотите выполнить динамическую миграцию виртуальной машины, а затем нажать кнопку ОК. Теперь вы увидите список всех служб, доступных на целевом хосте, как показано на рисунке D.

Изображение 15287
Рисунок D: Windows отображает службы, доступные на целевом хосте.

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

Теперь нажмите кнопку «Добавить» и еще раз нажмите кнопку «Пользователи и компьютеры». Введите имя целевого хост-сервера и нажмите OK. Вы снова увидите список сервисов, доступных на целевом хосте. Выберите службу миграции виртуальной системы Microsoft и нажмите кнопку ОК. Теперь вы должны увидеть службу CIFS и службу миграции виртуальной системы Microsoft в списке для целевого хоста, как показано на рисунке E. Нажмите OK, чтобы завершить процесс.

Изображение 15288
Рисунок E: Вы должны увидеть службу CIFS и службу миграции виртуальной системы Microsoft в списке для целевого хоста.

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

Чтобы динамическая миграция работала для всех ваших хостов Hyper-V, на каждом хост-сервере должно быть включено ограниченное делегирование для всех остальных хостов Hyper-V. Предположим, например, что у меня есть три сервера с именами Lab1, Lab22 и Lab3. Lab1 потребуется разрешение для перехода на Lab2 и Lab3. Точно так же Lab2 потребуется разрешение на живую миграцию виртуальных машин в Lab1 и Lab3. Наконец, для Lab3 потребуются разрешения для динамической миграции виртуальных машин в Lab1 и Lab2. Излишне говорить, что процесс установки может быть довольно утомительным, если у вас много хост-серверов.

Вывод

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

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