Hyper-V, Дифференциальный диск, Изменение пути - это решение проблем перекрестков - как это остановить?

Дает мне головную боль.

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

Пример: VM X имеет VHDX с именем "System.vhdx", и это отличается от...\masters\x64-2012std.vhdx"

Чтобы стандартизировать пути к дифференциальным дискам, я бы хотел, чтобы они были в каталоге c:\Hyper-V\Masters....

Теперь в C не всегда достаточно места, поэтому я подумал, что \Masters\ in - это переход к реальному пути.

Работает, КРОМЕ:

PowerShell set-vhd...... \ system.vhdx -ParentPath c: \ Hyper-V \ Master..... идет on.vhdx

работает, ВМ запускается, НО...

получить-VHD

заставляет меня видеть, что vhdx напрямую связан с файлом - так или иначе, Hyper-V посчитал целесообразным РАЗРЕШИТЬ соединение и заменить его "реальным" путем к файлу.

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

Теперь, есть ли способ обойти это? Я хотел бы, чтобы ParentPath был ParentPath, КАК Я УСТАНОВИЛ, а не что-то изменилось, или чтобы получить ошибку.

1 ответ

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

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

Вы можете попытаться общаться напрямую со слоем WMI, а не использовать командлеты PowerShell. Вы можете найти множество примеров в блоге Бена Армстронга "Virtual PC Guy".

Другие вопросы по тегам