而微软的Hyper-V,作为其中的佼佼者,凭借其强大的性能和灵活的功能,赢得了众多企业的青睐
特别是在2016年发布的Windows Server 2016中,Hyper-V更是迎来了诸多显著的改进和新增特性,使得虚拟化技术的应用变得更加高效和安全
Hyper-V技术概述 Hyper-V是微软推出的虚拟化解决方案,它允许用户在Windows系统上部署并使用虚拟机(VMs)
传统的Windows操作系统分为应用层和内核层,应用程序运行在Ring 3,而操作系统则运行在Ring 0
然而,在安装了Hyper-V之后,Hypervisor会运行在比传统模式更高特权级的Ring -1
这个特权级由CPU提供支持,能够捕获虚拟机的特权操作并对其进行模拟
同时,原来的宿主操作系统(也被称为管理操作系统)与虚拟机操作系统运行在相同特权级,但虚拟机被称为客户机操作系统
管理操作系统中运行着一系列的组件,用于管理虚拟机,这些组件统称为虚拟化堆栈(Virtualization Stack)
虚拟化堆栈包括: 1.VSP(Virtualization Service Provider):用于控制虚拟机的I/O请求
2.VMBus(Virtual Machine Bus):用于实现管理操作系统和客户操作系统之间的数据通信,即用于实现VSP和虚拟机中的VSC(Virtualization Service Client)通信
3.VMMS(Virtual Machine Management Service):与管理操作系统中的工作线程(每个虚拟机对应一个工作线程)一起提供对虚拟机生命周期的管理,包括创建、开启、停止、保存和删除虚拟机
4.VID(Virtual Infrastructure Driver):协调VMMS与工作线程,管理客户操作系统和管理操作系统之间的通信
Hyper-V需要依赖于硬件虚拟化技术,如Intel的VT-X技术,同时还需要硬件提供二级地址转换功能,如Intel的EPT(Extended Page Tables)技术
若要使用RemoteFX技术,还需要显卡具有支持DX 11.0以及WDDM 1.2兼容的驱动程序
Windows Server 2016中的Hyper-V Windows Server 2016的发布为Hyper-V带来了诸多新特性和改进,使得虚拟化技术的应用变得更加高效和灵活
Windows Server 2016有三个版本:Essentials、Standard和Datacenter
其中,Essentials版本只提供基础IT服务,难以提供对Hyper-V的支持;Standard版本能够提供更多的Windows特性和虚拟化特性,但支持的虚拟机数量受限(通常两个);而Datacenter版本则提供所有特性且虚拟机数量不受限制
部署与安装 在Windows Server 2016上部署Hyper-V相对简单
首先,需要从微软官网下载相应的评估版或正式版
对于试用测试,可以通过微软评估中心(https://www.microsoft.com/zh-cn/evalcenter/evaluate-Hyper-V-server-2016)申请下载Windows Server 2016的180天评估版
获取评估版后,在安装操作系统时选择Windows Server 2016 Datacenter Evaluation(桌面体验)版本
系统安装完成后,打开“服务器管理器”,添加Hyper-V角色
通过“添加角色与功能”按钮,在“安装类型”上选择“基于角色或基于功能的安装”,在“服务器角色”上勾选“Hyper-V”并安装
在“虚拟交换机”界面选择虚拟机链接网络的物理网卡,系统将对应创建一个虚拟交换机
配置完成后开始安装,Hyper-V安装完成后,服务器需要重新启动
新特性与改进 1.虚拟机隔离: 虚拟机隔离背后的基本概念是创建一个虚拟机所有者的结构,因此这个虚拟机不可以被移动到其他的结构中去或者在其他结构中运行
隔离的虚拟机被加密以防止非授权访问VM内容
加密可以通过使用BitLocker来实现
在新版本的Hyper-V中会支持虚拟TPM,它允许虚拟机通过BitLocker加密
2.存储弹性: 在之前的版本中,存储的短暂性失去连接可能会导致虚拟机失效
即使管理员可以使用故障转移技术将一个失效的虚拟机转移到另一个集群的节点中去,这也需要存储的连通性
有时故障转移是致命的,例如,在Hyper-V部署环境中有一些集群节点是连接到iSCSI目标的,这些iSCSI目标会在高峰期时遭遇低带宽和间歇性的连接失效
虚拟机可能会因为超过一分钟的连接失效而被摧毁
存储弹性功能是设计来检查虚拟机存储连接的间歇性中断,并在存储连接恢复之前暂停虚拟机
此外,使用集群等级的故障转移技术也是一个有效的解决方案
3.PowerShell Direct: PowerShell可以通过多种方法在远程Windows Servers上执行脚本或cmdlets
在Windows Server 2016中,PowerShell Direct特性允许管理员远程在虚拟机上运行PowerShell cmdl