我们已经build立了一个Hyper-V服务器,由于它是由几个人build立的,文件的布局是不一致的。 以下是使用的两个不同“模板”:
模板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
FOR模板1的参数是,当您执行VM的导出时,导出会创build一个包含机器名称的文件夹,为磁盘和VM分别放置文件夹。 您可以在运行导入时简单地指向机器目录。
反对这种模板风格的观点是,如果只有一个文件,那么存在一个名为虚拟机的目录是没有意义的。 另一个反对意见是,似乎Hyper-V服务器本身似乎预计所有的硬盘都在一个文件夹中,而所有的虚拟机都在不同的文件夹中。 即它不会为每个虚拟机创build单独的文件夹(不包括虚拟机目录中由GUID命名的文件夹)
模板2
For Template 2的论点是,看起来这是Hyper-V期望的布局。
AGAINST模板2的观点是,除非您查看xml文件,否则您无法确定哪些虚拟机文件与特定的计算机关联。
我很想知道任何布局的缺陷。
你真的很想知道哪些文件属于哪个虚拟机。 即使您无法访问Hyper-V控制台。
尝试从备份中还原虚拟机时出现此问题。 或者当Hyper-V忘记你的所有虚拟机,你需要导入它们。 或者虚拟机configuration文件已损坏,您必须重新创build虚拟机并指向旧的硬盘驱动器文件(由于您的configuration文件已损坏,您现在无法识别该文件)。 或者你只是想快速检查每个虚拟机占用多less磁盘空间。 或者您需要从可以看到文件名的备份中进行恢复,但是不要先通过整个恢复过程轻松读取XML文件。
鉴于此,我会去寻找类似于模板1的东西,在那里每个虚拟机都有一个文件夹 – 但是不包括“虚拟机”和“虚拟机硬盘”的子文件夹 – 只要把与虚拟机相关的所有文件一个包含虚拟机名称的文件夹。
您也不需要Hyper-V \虚拟机 – select其中一个标签,您不需要两个标签。
所以:
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
这里最主要的是组织文件,通过只查看文件结构,可以知道每个文件属于哪个VM,以及该文件是用于什么目的。
我不喜欢。
因为在移动虚拟机的情况下,您的模板都不稳定。
我会 – 我自己做 – 使用与在主机之间创build虚拟机时获得的文件夹结构相同的文件夹结构。 这样,当你在主机之间移动一个虚拟机时,没有任何变化。
您需要执行模板2以将虚拟机部件的耦合与存储问题分开。 也就是说,一个虚拟机的VHDX可能需要一个性能容量,另一个虚拟机容量对于同一个虚拟机来说更关心容量 – 而且所有的容量都可能有不同的弹性。
因此,除非您在文件结构布局中引入将不同存储位置映射到虚拟机文件部分的耦合的复杂性,否则您将无法执行模板1。
从而:
模板2
模板2 – 这里的存储pipe理优先于命名空间布局(同时,在UI中处理命名空间布局以pipe理VM …即,VM的某些部分可能甚至不是本地的,而是在云中等,例如使用存储总线)
…pipe理存储pipe理中的不同顾虑:
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中执行此映射 – 在文件系统中的名称空间关注(也称为伪置备的ui)优先 – 在维护存储问题的同时:
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-系统-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-数据-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-数据-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-恢复-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