xywuyiba7 发表于 2015-4-2 18:35:23

Hyper-V虚拟化的若干问题

本帖最后由 wuyvzhang 于 2016-8-2 17:26 编辑 <br /><br />  1 Hyper-V简介
  Hyper-V是微软的一款虚拟化产品,是微软第一个采用类似Vmware和Citrix开源Xen一样的基于hypervisor的技术。这也意味着微软会更加直接地与市场先行者VMware展开竞争,但竞争的方式会有所不同。
  Hyper-V设计的目的是为广泛的用户提供更为熟悉以及成本效益更高的虚拟化基础设施软件,这样可以降低运作成本、提高硬件利用率、优化基础设施并提高服务器的可用性。
  Hyper-V采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V底层的Hypervisor运行在最高的特权级别下,微软将其称为ring -1(而Intel则将其称为root mode),而虚拟机的OS内核和驱动运行在ring 0,应用程序运行在ring 3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。
  由于Hyper-V底层的Hypervisor代码量很小,不包含任何第三方的驱动,非常精简,所以安全性更高。Hyper-V采用基于VMbus的高速内存总线架构,来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。
  这种架构效率很高,不再像以前的Virtual Server,每个硬件请求,都需要经过用户模式、内核模式的多次切换转移。更何况Hyper-V现在可以支持Virtual SMP,Windows Server 2008虚机最多可以支持4个虚拟CPU;而Windows Server 2003最多可以支持2个虚拟CPU。每个虚机最多可以使用64GB内存,而且还可以支持X64操作系统。(转帖自百度百科)
  2. Hyper-V中的网络模式
  在采用硬件虚拟化以后,在实际应用环境中,虚拟计算机将和物理计算机无差别,也就是说,在网络上,用户感觉不到计算机是虚拟机还是物理机,虚拟计算机其所有的应用都跟物理机没有区别,至少在应用层级开发的时候是这样。
  在原来使用VMare和Virtual Box的时候,我们常常已经注意到软件提供了虚拟机的多种网络配置方式,一般来说就是以下三种:
  1. NAT模式,远程路由方式,虚拟机由物理机为其分配IP,然后通过NAT实现网络的访问;
  2. Virtual Network模式,这种模式下,虚拟机可以实现相互之间的访问,物理机也同样可以访问虚拟机,但是虚拟机不能直接访问物理连接;
  3. 内部模式,这种模式下虚拟机只能相互访问,不能访问物理机。
  关于网络的基本类型,在Microsoft的相关文档中已经做了详细的说明,同时在softice的文章《Hyper-V的内部网络类型》中也对其配置进行了阐述。
  通过这篇文章,可以基本理解Hyper-V的虚拟网络原理就是利用虚拟总线上的设备来进行数据交换,因此当你进入注册表时,可以在硬件列表中找到VMBUS的键值。
  在理解了Hyper-V网络机制后,我们需要解决的第一个问题就是如何使虚拟上的资源在外部能够访问。
  当涉及到虚拟机内部网络Web发布的时候,会有通过配置NAT实现端口映射来发布服务,这时候主要参考mwt666的文章《Hyper-V结合远程路由访问实现一个公网IP内部多个虚拟服务器的发布》来进行设置。
  在这里,我比较喜欢作者使用了Loopback适配器的方法,这样使得网络结构更加清晰。
  使用Loopback适配器,并且配置为外部网络时候的示意图:
  图1 使用Loopback适配器时的网络拓扑图
  从上面两张图可以看出,当使用Loopback适配器后,Hyper-V使用该适配器作为外部网络连接,这时候该适配器将会演变成为一个虚拟交换机,而物理机将会完全地成为网关。这样远程桌面就不会因为没有选择共享适配器而掉线了。
  3 Hyper-V应用
  在实际应用中,问题往往是更加的复杂的。
  3.1 环境和需求
  我自己的应用环境是非常受限的。
  1. 我只有一个电信提供的IP作为Internet连接;
  2. 我需要应用分离,即每个应用都是在单一的虚拟机上的;
  3. 需要外部网络能够访问到虚拟机的资源;
  4. 虚拟机内部网络情况要能够有效管理,在访问内部资源的时候,不应该出现端口号,只能而只能通过域名直接访问;
  5. 物理机应该基本作为完整的虚拟化容器,尽量不与任何虚拟机发生直接的联系。
  对于1、2两个问题,是很容易实现和解决的;对于第3个问题,在物理机上添加远程路由和访问协议就可以实现通过端口号映射内部网络;对于第4个问题,就需要在添加网管软件了,把所有的端口映射到网关上,然后通过网关实现对请求的重定向,在Web访问中,主要是实现URL解析的重定向;对于第5个问题,需要在物理机上虚拟一个网关服务器来解决,从而尽量在物理机上不装任何软件。
  3.2 网络规划
  在这样一种要求下,我做了下面的规划:
  1. 物理机一个Internet连接,手动添加Microsoft Loopback网卡;
  2. 物理机使用Hyper-V网络管理器添加两个网络,一个是使用Microsoft Loopback网卡的外部网络,一个选择虚拟机内部专用网络,这样物理机实际上就有了三块网卡,如图2所示,设置如下:
  物理网卡:设置为ISP提供的IP
  虚拟机第一级虚拟网络:设置为192.168.0.1;
  3. 创建一台gw虚拟机,也就是网关服务器,为其添加两个网卡,一个是使用Loopback适配器的虚拟机内部第一级网络,一个是使用虚拟机内部专用网络的内部第二级虚拟网络。两块网卡设置如下:内部第一级虚拟网络网卡与物理机网卡在一个网段上,通过虚拟交换机互联,IP设置为192.168.0.2;内部第二级虚拟网络网卡与其他虚拟机在一个网段上,通过虚拟交换机互联,IP设置为193.168.0.1;
  4. 创建应用服务器虚拟机,连接的网络是虚拟机专用网络,即内部第二级虚拟网络,IP设置为193.168.0.*;
  下图是我的具体应用网络配置。
  图2 网络配置
  下面显示的则是物理计算机上Hyper-V虚拟机的配置,如图3所示。
图3 物理计算机上Hyper-V配置
  3.3 发布应用
  通过以上的工作,虚拟网络配置已经完成了,我们已经完成了三级网络的规划:
  第一级为Internet网络,这一级的网络下只有物理计算机;
  第二级为内部第一级虚拟网络,这一级网络下有物理计算机和虚拟网关服务器;
  第三季为内部第二级虚拟网络,这一级网络下有虚拟网关服务器和各应用虚拟服务器。
  下面的要做的,就是如何把应用服务器上的资源发布到Internet上。
  这时候需要用到Microsoft的Forefront TMG 2010产品。
  3.3.1 Forefront TMG的规划和配置
  微软于2008年4月8日发布了ISA Server 新一代版本 forefront-Threat Management Gateway。一般称为forefront tmg。Forefront TMG是一个高级状态检测以及应用层检测防火墙,同时还包括VPN以及Web缓存,使您能够最大化利用现有投资,提升信息安全和性能。它是微软安全战略架构Forefront中的新成员,替换原来的Microsoft Internet Security and Acceleration (ISA),成为下一代网络边缘防护产品。基于状态检测是TMG的一个亮点,由此Forefront网络边缘防护覆盖了OSI 7层模型中的上5层,即网络层、传输层、会话层、表示层、应用层,让网络安全防护更加安全。
  在这里,Forefront TMG的基本作用是将外部访问重定向到不同的虚拟服务器。
  因此选择在虚拟网关服务器上安装Forefront TMG。
  1. Forefront TMG安装
  在本环境下,Forefront TMG选择配置为单服务器模式,包括服务和管理;
  2. Forefront TMG配置
  在安装完成Forefront TMG后,选择设置向导对其进行配置。
  (1)网络配置
  图4 Forefront TMG网络设置
  这里我们选择边缘防火墙进行配置,网络如图4所示。
  在配置完成网络后,就需要将应用服务器发布到外部网络了,实际是发布到192.168.0.2这个网络上。
  (2)防火墙配置
  图5 Forefront TMG防火墙配置
  选择发布网站,之后填入实际应用服务器的IP地址,这里是193.168.0.*,并需要配置网站的URL解析,如图6所示。
  图6 URL解析配置
  在配置URL解析后,只有当输入域名正确的时候,才会返回相应的资源,否则会被Forefront TMG拦截。
  在经过以上两项的配置后,我们在物理机上,访问虚拟网关服务器,即192.168.0.2,就可以访问到相应的资源了。
  3.3.2 网组路由配置
  在配置好网关服务器后,这时候我们在物理计算机上,已经可以访问到网关服务器后的应用服务器资源,但是这些资源对Internet用户来说还是不可见的,因此还需要在物理计算机上添加远程路由服务,并开启NAT服务,具体配置可以参见mwt666的文章《Hyper-V结合远程路由访问实现一个公网IP内部多个虚拟服务器的发布》来配置,有区别的是,在配置NAT时,我只需要将所有的Http协议80端口的请求路由到我的虚拟网关服务器上,即192.168.0.2上即可,剩下的都由虚拟网关服务器来解决。
  4 结语
  上面我们详细分析了在Hyper-V环境下,如何实现服务器虚拟化以及如何实现路由重定向的问题,这对于发布Internet服务来说,是非常有用的,而在内部Intranet环境下,这样做似乎作用并不太大。
  在上面的应用环境中,为了使物理计算机尽量少安装不必要的软件,选择了将Forefront TMG安装在虚拟服务器上,并采用了两级网络实现了整个网络环境,但是从本质上来讲,Forefront TMG似乎安装在物理计算机上似乎更为合适,这样物理计算机就演变成了一个网关服务器,似乎网络结构更加清晰,大家可以探讨。

www.138295.com SO娱乐城:真_人.足球.彩票齐全| 开户送10元.首存送58元.手机可投в注任何游戏顶级信用в提现即时到账SO.CC
页: [1]
查看完整版本: Hyper-V虚拟化的若干问题