Hyper-V 3.0中的存储迁移可以被描述为”复制虚拟机后删除”,而不是“移动虚拟机”,所以在复制后还未删除的时候会存在两份VHD文件。存储迁移的目的是为了在不同存储位置间进行迁移,当在一个磁盘上进行这个操作时候必须考虑到两份VHD需要的足够可用空间,否则操作无法完成。

Hyper-V 3.0中的存储迁移还可以指定可并发的存储迁移数量。默认值为2。在设定为更高值时候应先考虑存储是否有足够的I/O负载能力。


Hyper-V 3.0中存储迁移的性能也经常被人问到。存储迁移的本质内容是在一个VHD文件进行复制的时候(从源位置到目的位置),将外部对这个VHD文件的写入操作合并到这个VHD文件中。这也就意味着,存储迁移的时间受VHD文件活动的影响,在迁移过程中,越多的写入操作将导致越长的迁移时间。
而在虚拟机空闲的时候,存储迁移的时间将与同样的文件在非缓存(unbuffered)方式下的复制一个副本的时间近似。

需要注意的是,如果在Windows资源管理器中进行文件复制,则进行的是缓存方式复制。这种方式能使复制速度更快,但需要更多的资源,在复制很大的文件时候并不建议这样做。如果希望进行非缓存方式文件复制,可以在命令行中输入XCOPY /J,这样就可以大致了解对一个虚拟机文件进行存储迁移时需要的时间。

在存储迁移进行过程中,将在源虚拟机执行读取操作,而向源虚拟机和目的虚拟机同时进行写入操作。所以,如果源虚拟机和目的虚拟机位于不同磁盘上,则存储迁移的性能影响很小(对目的虚拟机的写入发生在另一块磁盘上)。而如果源虚拟机和目的虚拟机在一块磁盘上,则写入操作将翻倍。

由此,即使想去做测试了解存储迁移的性能,也不应该在同一块磁盘上进行,而是将源虚拟机和目的虚拟机分开在不同的磁盘上。