2、kvm网络篇---网络配置Bridge方式、NAT方式
NAT方式和Bridge方式。
Bridge方式的配置原理和步骤。
Bridge方式适用于服务器主机的虚拟化。
NAT方式适用于桌面主机的虚拟化。
选择:当需要外界能定位(找)到虚机时使用Bridge方式、当不需要外界定位到虚机时使用NET方式。
安装完kvm后默认网卡的工作方式为NET
适用范围:服务器主机虚拟化
原理:即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。
好处:可以使虚拟机成为网络中具有独立IP的主机。
上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。
下图,对应计算机上真实的route表。其中br0为桥接网卡。
网桥方式配置步骤:
一、命令模式
1、编辑修改网络设备脚本文件,增加网桥设备br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=19216812118
GATEWAY=192168121
DNS1=180767676
DNS2=114114114114
DEFROUTE=yes
备注:如不需要静态地址,可以使用如下配置
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp
2、编辑修改网络设备脚本文件,修改网卡设备eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System eth0"
HWADDR=44:37:E6:4A:62:AD
备注:NM_CONTROLLED这个属性值,根据 RedHat 公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。
3、重启网络服务
#service network restart
4、校验桥接接口
#brctl show
适用范围:不需要外网访问虚拟机情况、桌面主机虚拟化。
原理:NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
好处:无法从网络上定位和访问虚拟主
上图可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界。
下图,对应计算机上真实的route表。其中virbr0为虚拟网卡。
Bridge方式的影响
Bridge方式配置出来的接口对NAT方式没有影响,因为NAT方式并没有使用物理网卡。
但作为客户机,只能选择其中的一种。
实践经验:
当将虚拟机网卡方式更改为Briage后需要注意几点
1、关闭宿主机与虚机的NetworkManager服务并设置开机不自启。不然将会影响两者的网络功能,甚至出现虚机无法启动的情况。
2、虚机网卡已设置为启动开启,但实际情况为开机后宿主机网卡启动了,而虚拟机网卡不能启动,即使手动启动也将失败。这种情况为网卡的启动顺序造成,因为Briage桥接方式虚拟网卡需要在宿主机网卡启动之前启动。而在开机时Network服务启动顺序高于libvirtd服务,所以才会有该现象。解决方式有两个:1、更改服务启动顺序并重启。 2、停止br0网卡,启动虚拟网卡后再启动br0网卡。
3、配置正常并关闭冲突服务后依然无法使用Briage正常上网。此时可以从route表信息开始排查,一般第一次启动Briage方式之后默认的路由表会遭到更改,使得无法连接外网,而内网正常的情况。
1、http://wwwlinuxidccom/Linux/2012-05/61445p2htm
2、 http://blogcsdnnet/hzhsan/article/details/44098537/
网络虚拟化的内容一般指虚拟专用网络 (***)。*** 对网络连接的概念进行了抽象,允许远程用户访问组织的内部网络,就像物理上连接到该网络一样。网络虚拟化可以帮助保护 IT 环境,防止来自 Internet 的威胁,同时使用户能够快速安全的访问应用程序和数据。 基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:1 基于互联设备的虚拟化:基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上;如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,因为一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是分离的。 基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、Sun Solaris、Linux或供应商提供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势--易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要更高的硬件成本。但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的互操作性仍然是一个问题。 2 基于路由器的虚拟化:基于路由器的方法是在路由器固件上实现存储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。]
服务器虚拟化对网络存储有着重大影响,甚至成为了驱动某些IT机构实施网络存储源动力服务器虚拟化解决方案提供功能依赖,并要求具有基本网络存储器正如此在部署服务器虚拟化解决方案中,数据存储基础设施成为了个关键构建块 在网络存储器上,存储虚拟机映象使虚拟机能够在物理服务器的间移动从而维持负载平衡确保高效益和最大资源利用率存储虚拟机,映象还能创建虚拟机多个拷贝为复制和灾难恢复作好准备,另外它能使裸机恢复操作更加简单 将多个虚拟机整合到个单物理服务器上,能力还受到该服务器本地磁盘容量大小限制为了获得最大可伸缩性并且使资源利用率达到最高你需要建立存储基础设施网络,以便跟上整合计划步伐部署服务器虚
答:这个具体取决于你的物理服务器的硬件配置,以及虚拟机的资源消耗情况来定。没有固定的算法。
但是一般会有几个限制:
1内存内存基本上是一个硬限制。物理服务器的内存肯定是有限的。例如,一台服务器有8core,8G内存,通常hypervisor会占用512M内存,大概还剩下75G内存,假设每个虚拟机的配置是1corecpu,1G内存,那么在此机器上最多可以运行7个这样的虚拟机。再创建新的虚拟机时,就会报错说内存不够。在此情况下,每个虚拟机在满负载情况下最多可以拥有1个cpucore的运算能力,1G的内存空间。
当然,现在的hypervisor基本上都支持over-commit的功能,也就是说,如果你的内存只有8G,但是设定一定比例的overcommit,例如50%,那么你可以最多分出去12G内存。还是上面那个例子,如果设定overcommit为50%,那么最多可以创建11个虚拟机(1core,1Gmem)。在服务器虚拟化方面,建议overcommit设置的不要太高,一般20%。在桌面虚拟化方面,可以将overcommit设置到50%
2网卡如果服务器只有一个网卡,所有虚拟机的网络流量都是通过一块网卡出去,虚拟机越多,每个虚拟机可以使用的带宽就会越少,这个是需要综合考虑。例如使用多个网卡等。
3CPUCPU资源基本上都是采用时分复用,也就是时间片的方式来轮询的。
4磁盘I/O是本地磁盘还是网络磁盘?如果是网络磁盘,是使用的iSCSI还是光纤?不同的情况,负载是不一样的。
一般一台服务器上能跑多少个虚拟机,需要综合考虑物理服务器,虚拟机负载等方面的整体情况,再来计算。没有一个固定的公式。
什么是虚拟化
虚拟化是一个广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。如同空旷、通透的写字楼,整个楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率。这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术。
虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
虚拟化技术也与VMware Workstation等同样能达到虚拟效果的软件不同,是一个巨大的技术进步,具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面。
虚拟化技术有很多定义,下面就给出了一些这样的定义。
“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。” ——Jonathan Eunice,Illuminata Inc。
“虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。” ——Wikipedia
“虚拟化:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。” ——Open Grid Services Architecture Glossary of Terms。
虚拟化的目的是什么
虚拟化的主要目的是对IT基础设施进行简化。它可以简化对资源以及对资源管理的访问。
消费者可以是一名最终用户、应用程序、访问资源或与资源进行交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入和提供输出。资源可以是硬件,例如服务器、磁盘、网络、仪器;也可以是软件,例如Web服务。
消费者通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以在IT基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进行升级或应用补丁,因为标准接口并没有发生变化。
IT基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系,管理员可以在保证管理工作对消费者产生最少影响的基础上实现对IT基础设施的管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定(SLA)驱动来自动完成。
在这个基础上,网格计算可以广泛地利用虚拟化技术。网格计算可以对IT基础设施进行虚拟化。它处理IT基础设施的共享和管理,动态提供符合用户和应用程序需求的资源,同时还将提供对基础设施的简化访问。
虚拟化的解决方案
纯软件虚拟化解决方案存在很多限制。“客户”操作系统很多情况下是通过虚拟虚拟化机监视器(VirtualMachineMonitor,VMM)来与硬件进行通信,由VMM来决定其对系统上所有虚拟机的访问。(注意,大多数处理器和内存访问独立于VMM,只在发生特定事件时才会涉及VMM,如页面错误。)在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上操作系统所处的位置,而操作系统的位置是传统意义上应用程序所处的位置。这一额外的通信层需要进行二进制转换,以通过提供到物理资源(如处理器、内存、存储、显卡和网卡等)的接口,模拟硬件环境。这种转换必然会增加系统的复杂性。此外,客户操作系统的支持受到虚拟机环境的能力限制,这会阻碍特定技术的部署,如64位客户操作系统。在纯软件解决方案中,软件堆栈增加的复杂性意味着,这些环境难于管理,因而会加大确保系统可靠性和安全性的困难。
硬件方案
而CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程虚拟化度上提高性能。
虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。另外,在纯软件VMM中,缺少对64位客户操作系统的支持,而随着64位处理器的不断普及,这一严重缺点也日益突出。而CPU的虚拟化技术除支持广泛的传统操作系统之外,还支持64位客户操作系统。虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操作系统本身。即使只是CPU支持虚拟化技术,在配合VMM的软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。两大CPU巨头Intel和AMD都想方设法在虚拟化领域中占得先机,但是AMD的虚拟化技术在时间上要比Intel落后几个月。
Intel自2005年末开始便在其处理器产品线中推广应用IntelVirtualizationTechnology(IntelVT)虚拟化技术。Intel已经发布了具有IntelVT虚拟化技术的一系列处理器产品,包括桌面平台的Pentium46X2系列、PentiumD9X0系列和PentiumEE9XX系列,还有CoreDuo系列和CoreSolo系列中的部分产品,以及服务器/工作站平台上的XeonLV系列、Xeon5000系列、Xeon5100系列、XeonMP7000系列以及Itanium29000系列;同时绝大多数的Intel下一代主流处理器,包括Merom虚拟化
核心移动处理器,Conroe核心桌面处理器,Woodcrest核心服务器处理器,以及基于Montecito核心的Itanium2高端服务器处理器都将支持IntelVT虚拟化技术。而AMD方面也已经发布了支持AMDVirtualizationTechnology(AMDVT)虚拟化技术的一系列处理器产品,包括SocketS1接口的Turion64X2系列以及SocketAM2接口的Athlon64X2系列和Athlon64FX系列等等,并且绝大多数的AMD下一代主流处理器,包括即将发布的SocketF接口的Opteron都将支持AMDVT虚拟化技术。
0条评论