2

Hyper-V имеет максимум 50 снимков на виртуальной машине, мне интересно, почему.

Требования и ограничения для виртуальных машин и Hyper-V в Windows Server 2012R2

Снимки 50 - Фактическое число может быть меньше, в зависимости от доступного хранилища. Каждый снимок сохраняется в виде файла AVHD, который использует физическое хранилище.

Я никогда не набирал это число (и я не буду), но я любопытен, если есть причина для этого числа.

1 ответ1

0

Вы начинаете с виртуального жесткого диска (VHD), и этот первый VHD является новой установкой операционной системы. Когда вы создаете моментальный снимок, он создает на виртуальном жестком диске несколько вещей: копию конфигурации виртуальной машины в XML-файле, любые файлы состояния сохранения и разностный диск (.AVHD). AVHD становится новым рабочим диском для всех операций записи, и этот AVHD является дочерним по отношению к рабочему диску до моментального снимка (в случае вашего первого моментального снимка родительский диск - это VHD).

Когда ВМ создается в каталоге, создаются два подкаталога - \Snapshots и \Virtual Machines. Снимок изначально пуст, а виртуальные машины содержат исходный файл конфигурации XML, сохраненный с уникальным GUID (глобально уникальным идентификатором) для имени файла. Каталог для создания файлов состояния сохранения (.VSV) и файлы памяти (.bin). Каталог также использует тот же GUID, что и его имя.

Напишите несколько файлов, сделайте новый снимок, процесс повторяется. Теперь у вас есть второй снимок, давайте назовем его.AVHD(2) Для ссылки на последние изменения в оригинале.VHD, ваш AVHD(2) просматривает VHD(1) (AVHD(1) is now known as VHD(1) that is Read-Only, parent to the current AVHD, and this process continues) и считывает эти изменения. Однако, чтобы прочитать изменения старше, чем VHD(1), ваш текущий AVHD должен вернуться к исходному VHD.

Давайте внесем изменения, сделаем снимок и сделаем еще одно изменение. Мы сейчас на нашем 50-м снимке, ура! Это означает, что для ссылки на изменение в файловой системе нам нужно оглянуться назад на VHD(49). Является ли изменение VHD(49)? Нет. Давайте оглянемся снова ... 48, 47, 46 ..? Нет. Чтобы посмотреть изменение на старом диске, скажем, VHD(7), вам нужно сначала просмотреть остальные 43 снимка, потому что он не знает точно, где это изменение. Это ОЧЕНЬ ресурсоемкое и может сделать что-то столь же простое, как чтение с большим объемом диска - следовательно, снимки не предназначены для использования на рабочих машинах (и по многим другим причинам).

TL; DR При создании нескольких моментальных снимков виртуальная машина должна сначала просмотреть каждый моментальный снимок, пока не найдет тот, который ищет. Если у вас 50-й снимок, он должен сначала просмотреть 49 других снимков, чтобы перейти к исходному VHD. Это становится очень неэффективным, очень быстрым и замедляет скорость диска до сканирования. Я не смог найти документированный источник для 50 снимков, так что, похоже, это было произвольное число для эффективности. Источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .