Управление моментальными снимками Hyper-V (часть 1)

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

  • Управление моментальными снимками Hyper-V (часть 2)
  • Управление моментальными снимками Hyper-V (часть 3)

Введение

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

Несколько слов предостережения

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

Проблемы с производительностью

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

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

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

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

Снапшоты не заменяют резервную копию

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

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

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

Снимки в первую очередь предназначены для удобства. Они упрощают откат виртуальной машины, когда что-то идет не так. Например, многие администраторы создают моментальный снимок перед применением пакета обновлений к виртуальной машине. Таким образом, если новый пакет обновления вызывает какие-либо проблемы, существует простой способ вернуть виртуальную машину в рабочее состояние.

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

Проблемы с целостностью данных

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

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

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

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

Для тех, кто не знаком с Exchange Server, это решение Microsoft для сервера электронной почты. В некоторых версиях Exchange Server для маршрутизации сообщений используется роль сервера, называемая Hubcap transport. Когда вы создаете снимок транспортного сервера-концентратора, вы фиксируете состояние этого сервера в том виде, в каком он существовал в определенный момент времени.

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

Вывод

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

  • Управление моментальными снимками Hyper-V (часть 2)
  • Управление моментальными снимками Hyper-V (часть 3)