系统极客一直在努力
专注于操作系统及软件使用教程

Microsoft Loves Linux—探讨Hyper-V的核心技术

Microsoft Loves Linux—探讨Hyper-V的核心技术

Hyper-V提供Linux与FreeBSD相关功能

对于运行在 Hyper-V 上的 Linux 与 FreeBSD Guest 操作系统,在 Hyper-V 对其 Guest 操作系统所能提供功能有两个种类。 第一种为在 Guest OS 之外的机能(functionality outside the guest ),而第二种为需要与 Guest OS 交互的功能(functionality requiring guest cooperation),接下来让我们简要的来介绍这两个种类。

所谓 Hyper-V 在 Guest OS 之外的机能,意思是不需要与在 Guest OS 虚拟机内的操作系统有所关系,因此这类的机能能够直接运行在 Windows、Linux、FreeBSD 等 Guest OS 操作系统。 在这个种类为微软主要研发的部分,提供 Guest OS 虚拟机有良好的性能表现。 这一种类的机能是能够让 Linux 与 FreeBSD 的虚拟机能够使用此机能如 Windows 虚拟机一样完备。 举例来说,这一种类的机能包括下列几种:

  • 可以使用 RDMA 技术提供超快速的将虚拟机在不关机的情况下转移至另外一台 Hyper-V 主机上。
  • 储存 QoS 管控
  • 软件定义网络(SDN)

以上是几个这一种类功能中的其中几项,当然还包括其他类型的功能,皆能提供给 Linux 与 FreeBSD 使用,不单单局限于 Windows 的 Guest OS。 这个部分在此系列文章其它文章内将会提到,此处就暂时不提细节。

而第二种类型,为需要与 Guest OS 交互的功能(functionality requiring guest cooperation),包含:

  • 增强 Guest OS 操作体验
  • Host OS 与 Guest OS 间的直接沟通
  • 易失存储器配置
  • 实时备份

Guest OS 交互功能是透过 Linux 与 FreeBSD 的系统整合服务达成的,而这个服务在前一篇文章有提及详述过。 而这个机能在 Linux 与 FreeBSD 皆有各自特别的功能在其中,这篇文章主要将会在讲述解说此机能。

增强Guest OS操作体验

在操作 Linux 与 FreeBSD Guest OS 时,运用着与操作 Windows Guest OS 一样的工具,而这些工具包括:

  • Hyper-V:通过基本的图形用户接口来管理 Hyper-V Host 上的 Guest OS 虚拟机。
  • PowerShell:通过接口的方式在 Windows 上对虚拟机做一些基本的操作。 即使 PowerShell 目前仅能运作于 Windows 上,但他仍可对在虚拟机内执行 Linux 或 FreeBSD 进行像对 Windows 一般的操作。
  • System Center:图形化的用户界面能够完整的调整私有云的使用规模。 VMM 对于操作 Linux 虚拟机群集就像对 Windows 虚拟机群集一样。 (FreeBSD 虚拟机群集无法使用 VMM 管理)

如您所想,对于 Guest OS 的操作包含着启动以及停止 Guest OS 虚拟机,以及提供睡眠及恢复虚拟机的功能。 而停止的操作又包含两种行为:”关闭 (Turn off)”以及”关机 (Shutdown)”。 在 VM 外部,能够简单快速的通过 Hyper-V 直接关闭 VM,就像直接对实体计算机断电一般。 但这将会造成一个不正常的关机过程,可能会导致系统档案回写不一致 (inconsistency) 等异常。 因此 Hyper-V 提供了”关机”功能,通过 LIS/BIS 的帮忙,让 Guest OS 操作系统能够接收到正常的 Linux 关机命令而进行正常的关机程序。 Hyper-V 实作关机功能亦不需先登录到 Linux 与 FreeBSD Guest OS虚拟机内,因此具有操作管理 Hyper-V 的人员就可以执行关机的动作。

时间同步及维持

当 Linux 与 FreeBSD 虚拟机启动或者恢复时期内的时间与日期将会自动的与 Hyper-V Host 同步。 但要持续保持 Guest OS 虚拟机的时间准确是个艰难的挑战,有些时钟不可避免的会产生偏移,除非加入外部的时间同步机制。 在 Windows Guest OS 环境下,通常是加入域通过Active Directory 域控制器或者外部的同步站点进行同步。 而对 Linux 以及 FreeBSD Guest OS 来说,我们建议还是使用其中的 NTP 校时服务来通过外部的来源进行校时以确保时间偏移不会逐渐累积。

Host OS与Guest OS的直接沟通

Hyper-V 提供两种技术让 Host OS 能够与其 Hyper-V 内的 Gues VM 做沟通。 在这里提到的”直接”是代表这两者之间的沟通不需要通过网络联机。 在某些情况如安全因素的考虑下,Guest OS 有可能是没有网络联机的,这时仍然能够做到两者间的沟通。

第一种技术为数据交换,也称作 Key/Valu e配对(简称 KVP ),KVP 包含着”Key”以及”Value”,Key 与 Value 皆为字符串型态,Value 最多可以储存至 1024 个字符长。 当 KVP 被建立或者改变,在 Guest OS 及 Host OS 皆能够同步变化,而这篇文章提供了详细如何在 Hyper-V 内与 Linux 或 FreeBSD 通过 KVP 达成沟通的说明。

有一些 KVP 会自动的在 Guest OS 及 Host OS 建立起来并且传送一些基本的信息。 举例来说 KVP 会储存像是 Host OS 自己本身的主机名与相关讯息,而 Guest OS 可以知道目前是运行在什么样的 Host OS 上。 换个角色来讲类似的事情,Guest OS会通过 KVP 传送 Guest OS 本身的 IP 位置让 Host OS 知道这个 Guest O S的 IP 位置。

第二种技术为”档案复制”。 从 Hyper-V Host要复制进 Guest OS 操作系统中,在这种大量数据传输时,将会比 KVP 的方式还要有效率。 而在档案复制传输时是目前为单向传输,意味着只能从 Host 传送于 Guest OS,而文件传输的功能在 Windows 客端上是通过 Copy-VMFile PowerShell 来达到,而在 Linux 端则为 hv_fcopy_deamon 这个程序(包含于 LIS 中)所达到。

其他功能

在最近的 Linux 发行版中(单不包含 FreeBSD),已经开始支持由 UEFI 开机,且在 Hyper-V 第二代的虚拟机中也支持其 UEFI 开机的环境。 而在第二代的虚拟机,屏除掉了传统的 PC 开机方式。 加入了能够通虚拟网络卡进行 PXE 开机的功能。 而若要在 Hyper-V 2012 R2 上运行 Linux,“Secure Boot”在第二代虚拟机中必须要关闭,但在 Windows Server 2016 技术预览版 2 以及其后的版本,Linux 发行版将可以运作在Secure Boot 启动的情况,并提供完整个微软 UEFI 授权认证以及 Hyper-V 管理员接口、 PowerShell 或 System Center VMM 接口。

Hyper-V 也在虚拟磁盘(VHD 或 VHDX )中做了一些功能性的改变,就算 Guest OS 虚拟机正在运行,您能直接地更改设定或调整而不需要将任何环境下线。 而在 Linux 与 FreeBSD Guest OS中,对于新增或者调整虚拟硬盘后的改变是立即能够生效的,通过 df –k 指令即可立刻看到结果。 您可以通过分割区工具来进一步在Guest OS系统内调整并挂载使用这些空间。

结论

Hyper-V 提供了数个重要的核心功能,让 Linux 以及 FreeBSD 能够更简易的运行在 Hyper-V 上。 Hyper-V 最重要的功能为独立于 Guest OS 操作系统的机能,能够直接运作在 Linux 与 FreeBSD 上。 但第二种为需要与 Guest OS 交互的功能,必须通过 Linux 或 FreeBSD 操作系统整合服务方能正常运行。

在下一篇文章,将会提及两项重要的功能:动态内存配置,通过此技术能够达到更高的虚拟机使用密度。 以及在线实时备份,通过此技术能够减少因为备份服务器而造成的下线时间。

分享到:更多 ()