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".