У нас установлен сервер Hyper-V, и макет файлов несовместим, потому что он был настроен несколькими людьми. Вот два разных «шаблона», которые использовались:
Шаблон 1
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1.xml
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Hard Disks\MACHINE_NAME_2.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2.xml
....
и
Шаблон 2
D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_2.vhdx
D:\Hyper-V\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\GUID_1.xml
D:\Hyper-V\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\GUID_2.xml
Шаблон 1
Аргумент, сделанный для шаблона 1, заключался в том, что при экспорте виртуальной машины экспорт создает папку с именем машины, помещает отдельные папки для дисков и виртуальных машин. Затем вы можете просто указать на каталог компьютера при запуске импорта.
Аргумент ПРОТИВ этого стиля шаблона состоит в том, что нет смысла создавать каталог с именем Virtual Machines, если есть только один файл. Другой аргумент против заключается в том, что, похоже, сам сервер Hyper-V ожидает, что все жесткие диски находятся в одной папке, а все виртуальные машины - в другой папке. т.е. он не создает отдельные папки для каждой виртуальной машины (кроме тех, которые имеют имя GUID в каталоге виртуальных машин)
Шаблон 2
Аргументом в пользу шаблона 2 является то, что, похоже, это то, что Hyper-V ожидает от макета.
Аргумент ПРОТИВ шаблона 2 состоит в том, что вы не можете определить, какие файлы виртуальной машины связаны с конкретной машиной, если не загляните внутрь файлов xml.
Я хотел бы услышать о любых подводных камнях в любом макете.
Вы действительно хотите иметь возможность легко определять, какие файлы принадлежат какой виртуальной машине. Даже если вы потеряете доступ к консоли Hyper-V.
Это возникает при попытке восстановить виртуальную машину из резервных копий. Или когда Hyper-V забывает обо всех ваших виртуальных машинах, и вам нужно их импортировать. Или файлы конфигурации виртуальной машины повреждены, и вам необходимо воссоздать виртуальную машину и указать на старые файлы жесткого диска (которые вы теперь не можете идентифицировать, поскольку ваш файл конфигурации поврежден). Или вы просто хотите быстро проверить, сколько места на диске занимает каждая виртуальная машина. Или вам нужно выполнить восстановление из резервных копий, где вы можете видеть имена файлов, но не можете легко прочитать файлы XML, не пройдя сначала весь процесс восстановления.
Учитывая это, я бы выбрал что-то похожее на шаблон 1, где есть папка для каждой виртуальной машины, но не включил подпапки «Виртуальные машины» и «Жесткие диски виртуальных машин» - просто поместите все файлы, связанные с виртуальной машиной, в папка с именем ВМ.
Вам также не нужны Hyper-V \ Virtual машины - выберите одну из этих меток, вам не нужны обе.
Так:
D:\Virtual Machines\MACHINE_A\GUID_1.xml D:\Virtual Machines\MACHINE_A\Machine_a_OS.vhdx D:\Virtual Machines\MACHINE_A\Machine_a_Data.vhdx D:\Virtual Machines\MACHINE_B\GUID_2.xml D:\Virtual Machines\MACHINE_B\Machine_b_OS.vhdx D:\Virtual Machines\MACHINE_B\Machine_b_Data.vhdx
и т.п.
Или вы можете решить, что вам не нужны имена файлов, соответствующие виртуальной машине - достаточно имени папки. Такое имя упростит клонирование виртуальной машины, не беспокоясь о переименовании ее файлов:
D:\VMs\Machine A\GUID_1.xml D:\VMs\Machine A\OS.vhdx D:\VMs\Machine A\Data.vhdx D:\VMs\Machine B\GUID_2.xml D:\VMs\Machine B\OS.vhdx D:\VMs\Machine B\SQLData.vhdx D:\VMs\Machine B\SQLLog.vhdx
Главный вывод здесь - организовать файлы так, чтобы, глядя только на файловую структуру, можно было определить, какой виртуальной машине принадлежит каждый файл и для чего этот файл.
Мне ничего не нравится.
Потому что ни один из ваших шаблонов не будет стабильным в случае перемещения виртуальной машины.
Я бы - и я делаю это сам - использовал бы структуру папок, идентичную той, которую вы получаете при перемещении виртуальной машины между хостами. Таким образом, при перемещении виртуальной машины между хостами ничего не меняется.
Вам нужно создать шаблон 2, чтобы отделить связывание частей виртуальной машины от проблем с хранением. Т.е. один VHDX для виртуальной машины может использоваться в качестве тома производительности, другой VHDX для той же виртуальной машины больше ориентирован на емкость - и все они могут иметь различия в устойчивости.
Таким образом, вы не сможете выполнить шаблон 1, если вы не добавите в структуру файловой структуры сложность сопоставления различных мест хранения в связке для частей файлов виртуальных машин.
Таким образом:
ШАБЛОН 2
Шаблон 2 - здесь управление хранилищем имеет приоритет над макетом пространств имен (между тем макет пространства имен обрабатывается в пользовательском интерфейсе для управления виртуальной машиной ... т.е. некоторые части виртуальной машины могут даже не быть локальными, но находиться в облаке и т. Д., Используя, например, хранилище автобус)
... управление различными проблемами в управлении хранилищем:
D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disks \ xxx-xx-xx-System-01-Prod.vhdx
D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disks \ xxx-xx-xx-Data-01-Prod.vhdx
D: \ Storage \ Pool2 \ Hyper-V \ Virtual Hard Disks \ xxx-xx-xx-Data-02-Prod.vhdx
D: \ Storage \ Pool3 \ Hyper-V \ Virtual Hard Disks \ xxx-xx-xx-Recovery-01-Prod.vhdx
D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1
D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1.xml
D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2
D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2.xml
ШАБЛОН 1
Чтобы сделать это сопоставление в шаблоне 1, где проблемы пространства имен в файловой системе (также известные как псевдо-подготовленный пользовательский интерфейс) имеют приоритет, при сохранении проблем с хранением:
D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-System-01-Prod.vhdx> (связано с) D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disks \ xxx- xx-xx-System-01-Prod.vhdx
D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-01-Prod.vhdx> D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disks \ xxx-xx-xx- Data-01-Prod.vhdx
D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-02-Prod.vhdx> D: \ Storage \ Pool2 \ Hyper-V \ Virtual Hard Disks \ xxx-xx-xx- Data-02-Prod.vhdx
D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Recovery-01-Prod.vhdx> D: \ Storage \ Pool3 \ Hyper-V \ Virtual Hard Disks \ xxx-xx-xx- Recovery-01-Prod.vhdx
D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1> D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1.xml > D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1.xml D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2> D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2.xml> D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2.xml