解锁 Hyper-V,轻松管理开发环境

文摘   科技   2024-03-12 11:09   浙江  


Hyper-V


Wins

硬件虚拟化平台

高效


Hyper-V是 Windows 自带的一个硬件虚拟化平台,可以在x86-64位的 Windows 上创建虚拟机。在本地开发的流程中,我们可以使用 Hyper-V 进行开发环境的管理。





一、Hyper-V 的优势



开箱即用

受支持的Windows版本上可以直接开启功能,无需额外安装与授权。


虚拟机带来的环境隔离

开发环境中的系统设置不会影响宿主机系统的正常使用。


虚拟机的启动与挂起速度快

一般虚拟机的启动与挂起仅需数秒即可完成。


虚拟磁盘与 Windows 集成紧密

虚拟磁盘采用 vhd/vhdx 格式,可直接在Windows的磁盘管理中进行挂载,在资源管理器中直接访问,甚至可作为系统盘独立启动。


支持动态调度

内存和 CPU 都可弹性分配,减少对宿主机的性能影响。


支持快照(检查点)且创建效率高

在虚拟机中的开发环境可快速回滚到某个状态,节省重复配置环境的时间。


支持导出与迁移

同一套开发环境只需配置一次,可以在多个开发机上使用。





二、创建 Hyper-V 虚拟机



我们可以在 Window 的可选功能中打开 Hyper-V 功能。在开始-运行中输入OptionalFeatures.exe,勾选 Hyper-V,即可开启:


重启后即可在管理界面中进行虚拟机的创建与管理。


如果要全新创建虚拟机,我们可以在操作菜单中的 New-Virtual Machine 配置新虚拟机的各项设置,或者使用操作菜单中的 Quick Create 功能中选择一些常用的系统进行安装。后者会由向导负责下载对应的操作系统镜像。


一旦新虚拟机创建完成,选择虚拟机,在右键菜单中选择 Connect,即可连接到虚拟机的图形界面中,体验与 Windows 的远程桌面类似。安装 Guest Integration Service 后,宿主机与虚拟机间的文件复制、时间同步、自动调整分辨率等功能也将可用。





三、配置虚拟机网络



默认情况下,虚拟机会使用 Default Switch 访问外部网络。这种方式使用 NAT 将主从两个网络环境进行映射。


如果我们需要将虚拟机中的服务暴露给局域网内的其他客户端,则需要手动创建桥接网络,将虚拟机作为一台独立的设备连接到外部的局域网中。方法是在操作菜单的 Virtual Switch Manager...中,创建一个新的 External Switch,选择宿主机的网卡。之后回到虚拟机的设置界面中,将 Network Adapter 切换到新建的 External Switch 即可。


此外,对于一些特殊场景,我们可能需要创建一个仅连接虚拟机与宿主机的网络。在 Virtual Switch Manager 中我们可以创建一个 Internal Switch,之后的流程与前面相同。





四、创建虚拟机检查点



Hyper-V 的检查点是一种差分虚拟磁盘,扩展名为 avhd/avhdx,附带有 GUID 名称的 xml 配置文件。此外,对于运行状态的虚拟机,创建检查点时的内存也会保存为 .bin 文件,设备状态则会保存为 vsv 文件,一并保存在硬盘中。


在 Hyper-V 中,快照(检查点)的创建非常简单。在管理界面中选择对应的虚拟机,点击右侧面板的 Checkpoint 按钮,很快就会创建新的检查点。在 Checkpoints 视图中,检查点的时间关系会以树的方式进行展示,右键某个检查点即可将虚拟机回滚到该状态。我们还可以删除中间的某些不需要的检查点,减少磁盘空间的占用。






五、虚拟机的备份与迁移



虽然快照在一定程度上可以提供“后悔药”的功能,让我们灵活地在开发环境的不同时间状态间切换,但如果宿主机磁盘出现了硬件错误,整个开发环境还是可能付之一炬。因此,我们除了定期快照外,还需要做好虚拟机的备份。


在 Hyper-V 中,我们可以利用导出功能备份虚拟机。选择虚拟机,在右键菜单中选择 Export,将虚拟机导出到移动硬盘或网络存储等外部存储设备上。选择目标目录,即可开始导出。在这个过程中 Hyper-V 还会进行磁盘压缩等操作,减少导出后虚拟机的总大小。


导出完成后,我们还可以在其他开启了 Hyper-V 功能的 Windows 设备上导入该虚拟机。通过这种方式,虚拟机中的开发环境可以实现无痛复制和迁移。





六、使用 Hyper-V 作为

虚拟开发环境的局限性



虽然 Hyper-V 具有上述优点,但它也还是有其局限性。对于硬件开发,Hyper-V 缺少 USB 直连等支持,可能无法正常与硬件进行通信;Hyper-V 的虚拟机 GPU 也可能造成一些游戏或应用程序无法正常运行。最后,一些高实时性的程序在虚拟机中也可能出现错误。此外,Hyper-V 作为 Type 1 的虚拟化框架,在启用后,宿主机系统也会以半虚拟化的形式运行,虽然宿主机依然可以直接访问所有硬件,但性能比起开启前也会有一部分损失。


作为开发人员,我们需要权衡利弊,灵活选择适合自己场景的方案。如果日常开发的工作流不受上述因素的影响,那么安全、便利与灵活的 Hyper-V 将会是管理开发环境的一个不错的选择。


微策略 商业智能
微策略 MicroStrategy (Nasdaq: MSTR) 是企业级分析和移动应用软件行业的佼佼者。关注我们了解行业资讯、技术干货和程序员日常。
 最新文章