Назад | Перейти на главную страницу

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

У меня болит голова.

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

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

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

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

Работает, ИСКЛЮЧАЯ:

PowerShell set-vhd ...... \ system.vhdx -ParentPath c: \ Hyper-V \ Master ..... goon.vhdx

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

Get-VHD

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

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

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

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

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

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