Устранение неполадок виртуализированных приложений с помощью клонирования

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

Что такое клонирование?

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

Клон является точной копией исходной виртуальной машины, что означает, что он имеет тот же идентификатор безопасности (SID) и имя компьютера. Он также может иметь тот же IP-адрес и/или MAC-адрес, в зависимости от того, как работает операция клонирования. Если это так, и исходная виртуальная машина и клон работают в одной сети, возникнут проблемы из-за дублирования сетевых адресов. Если сеть является частью леса Active Directory, исходная виртуальная машина и клон будут использовать одну и ту же учетную запись компьютера в Active Directory, что также может вызвать проблемы. По этим соображениям клонированные виртуальные машины обычно не следует использовать в производственных сетях.

Поскольку клонирование виртуальной машины может вызвать проблемы, если вы случайно поместите клон в ту же сеть, где находится исходная ВМ, термин «клонирование» иногда используется для обозначения двухэтапного процесса запуска Sysprep на виртуальной машине и последующего создания новая виртуальная машина из образа sysprepped. После того как виртуальная машина клонирована таким образом, ее можно использовать в качестве шаблона для создания новых виртуальных машин, которые во многих отношениях идентичны исходной виртуальной машине, но каждая из которых имеет свой уникальный идентификатор SID и имя компьютера, чтобы они могли сосуществовать на одной и той же машине. сеть. Однако, если не указано иное, для целей этой статьи я буду использовать термин «клон» для обозначения точной копии существующей виртуальной машины.

Преимущества клонирования

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

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

Однако, если бы вы могли создать точную копию (клон) виртуальной машины во время возникновения проблемы, вы могли бы скопировать клонированную виртуальную машину в тестовую сеть, чтобы вы могли безопасно поиграть с ней, чтобы попытаться определить, что пошло не так с заявление. Конечно, если приложение является многоуровневым, то оно усложняется, поскольку вам потребуется клонировать всю среду приложения, состоящую из виртуальных машин, виртуальных сетей и хранилища. Но теоретически вы можете использовать подобное живое клонирование для безопасного устранения неполадок, связанных с приложениями и службами, работающими на виртуальных машинах.

Клонирование с помощью VMware

Администраторы, работающие с платформой виртуализации VMware, уже знакомы с тем, как клонировать живые (работающие) виртуальные машины, поскольку эта возможность уже некоторое время существует в VMware vCenter Server, который предоставляет централизованную платформу для управления средами VMware vSphere. Действия по клонированию виртуальной машины, работающей на хосте VMware ESXi, просты и кратко изложены в базе знаний VMware в статье под названием «Клонирование виртуальных машин в vCenter Server (1027865)». Обратите внимание на заявление здесь о том, что живые клоны, как ожидается, будут немного устаревшими по сравнению с исходной виртуальной машиной, из которой они клонированы. Поскольку клонирование не является мгновенной операцией, а незафиксированные транзакции могут находиться в состоянии ожидания в дисковом хранилище виртуальной машины, процесс клонирования не идеален. Более подробное объяснение шагов, связанных с клонированием ВМ с помощью клиента VMware vSphere, см. в статье «Клонирование виртуальной машины в клиенте vSphere» в Центре документации по vSphere 5.

Клонирование с помощью Hyper-V

Microsoft System Center Virtual Machine Manager (VMM) поддерживает клонирование виртуальных машин, начиная с выпуска платформы 2008 года. В документации VMM тщательно указано, что перед клонированием виртуальной машины необходимо выполнить sysprep, чтобы можно было создавать новые виртуальные машины из клонированной виртуальной машины. На рис. 1 показана работающая (действующая) виртуальная машина, клонируемая и выделяемая на хост Windows Server 2012 R2 Hyper-V с помощью административной консоли SCVMM VMM 2012 R2.

Изображение 15308
Рис. 1. Клонирование виртуальной машины в реальном времени с помощью System Center Virtual Machine Manager 2012 R2.

При динамическом клонировании в VMM 2012 R2 создается точная копия исходной виртуальной машины с тем же именем компьютера, SID, MAC-адресом и IP-адресом. В этом примере я развернул клон в логической сети, отличной от исходной виртуальной машины, поэтому конфликтов не будет.

Что делать, если в вашей среде не развернут System Center 2012 R2? Есть ли способ клонировать живые виртуальные машины, используя только Hyper-V? Если ваши узлы Hyper-V работают под управлением последней версии Windows Server 2012 R2, ответ — «Да», поскольку в этой версии появилась новая функция — возможность экспортировать виртуальную машину во время ее работы. Что особенно здорово, так это то, что вы также можете экспортировать контрольные точки (моментальные снимки) виртуальной машины.

Вот краткое пошаговое руководство о том, как можно выполнить живой экспорт виртуальной машины, работающей на Windows Server 2012 R2 Hyper-V, а затем импортировать ее на другой хост, чтобы создать клон исходной виртуальной машины. На рис. 2 показана консоль диспетчера Hyper-V, используемая для экспорта работающей виртуальной машины с именем DC150 (150):

Изображение 15309
Рис. 2. Шаг 1 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

Кончик:
Вы также можете выбрать несколько виртуальных машин в диспетчере Hyper-V, щелкнуть правой кнопкой мыши и выбрать «Экспорт», чтобы одновременно экспортировать несколько работающих виртуальных машин в Windows Server 2012 R2.

Мы экспортируем работающую виртуальную машину в общий ресурс на нашем целевом хосте:

Изображение 15310
Рис. 3. Шаг 2 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

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

Процесс экспорта начинается с временного объединения контрольных точек:

Изображение 15311
Рис. 4. Шаг 3 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

Затем файлы ВМ экспортируются в общую папку на целевом хосте, как показано, открыв File Explorer на целевом хосте:

Изображение 15312
Рис. 5. Шаг 4 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

Теперь мы можем использовать диспетчер Hyper-V на целевом хосте для импорта экспортированных файлов виртуальной машины:

Изображение 15313
Рис. 6. Шаг 5 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

В мастере импорта виртуальной машины мы решим восстановить виртуальную машину, используя ее существующий уникальный идентификатор, чтобы она была точной копией исходной виртуальной машины:

Изображение 15314
Рис. 7. Шаг 6 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

Единственный сбой, с которым мы столкнулись, вызван тем фактом, что виртуальная сеть на нашем тестовом сервере HOST40 имеет другое имя, чем виртуальная сеть на рабочем сервере HOST30, где находится исходная виртуальная машина:

Изображение 15315
Рис. 8. Шаг 7 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

Однако все, что нам нужно сделать, чтобы это исправить, — это выбрать виртуальную сеть на HOST40 для виртуальной машины и каждой из ее контрольных точек:

Изображение 15316
Рис. 9. Шаг 8 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

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

Изображение 15317
Рис. 10. Шаг 9 живого клонирования виртуальной машины с помощью Windows Server 2012 R2 Hyper-V.

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

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

Вывод

Живое клонирование — это мощный инструмент для устранения неполадок с приложениями и службами, работающими на виртуальной машине, без необходимости отключения виртуальной машины. Платформы виртуализации VMware и Microsoft теперь поддерживают эту возможность, поэтому полезно научиться ее использовать.