admin管理员组

文章数量:1530847

2024年1月4日发(作者:)

虚拟化1.什么是虚拟化

虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化的主要目的是对 IT 基础设施进行简化。它可以简化对资源以及对资源管理的访问。

虚拟化技术的四大特性

2.为什么要进行虚拟化

企业/单位面对的问题

虚拟化的优势

1. 整合服务器,提高资源利用率

通过 整合服务器将共用的基础架构资源聚合到池中,打破原有的“一台服务器一个应用程序”模式。

2. 降低成本,节能减排,构建绿色IT

由于服务器及相关 IT 硬件更少,因此减少了占地空间,也减少了电力和散热需求。 管理工具更加出色,可帮助提高服务器/管理员比率,因此所需人员数量也将随之减少。

3. 资源池化,提升IT灵活性

4. 统一管理,提升系统管理效率

5. 完善业务的连续性保障

3.如何实现虚拟化

解决方案

1. 软件方案

“客户”操作系统很多情况下是通过虚拟机监视器(Virtual Machine

Monitor,VMM)来与硬件进行通信,由VMM来决定其对系统上所有虚拟机的访问。在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上操作系统所处的位置,而操作系统的位置是传统意义上应用程序所处的位置。这一额外的通信层需要进行二进制转换,以通过提供到物理资源的接口,模拟硬件环境。这种转换必然会增加系统的复杂性。

2. 硬件方案

CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。

工作原理

虚拟化解决方案的底部是要进行虚拟化的机器。这台机器可能直接支持虚拟化,也可能不会直接支持虚拟化;那么就需要系统管理程序层的支持。系统管理程序,或称为 VMM,可以看作是平台硬件和操作系统的抽象化。

在某些情况中,这个系统管理程序就是一个操作系统;此时,它就称为主机操作系统. 系统管理程序之上是客户机操作系统,也称为虚拟机(VM)。这些 VM 都是一些相互隔离的操作系统,将底层硬件平台视为自己所有。但是实际上,是系统管理程序为它们制造了这种假象。

实现方法

毫无疑问,最复杂的虚拟化实现技术就是硬件仿真。在这种方法中,可以在宿主系统上创建一个硬件 VM 来仿真所想要的硬件。正如您所能预见的一样,使用硬件仿真的主要问题是速度会非常慢。由于每条指令都必须在底层硬件上进行仿真,因此速度减慢 100 倍的情况也并不稀奇。若要实现高度保真的仿真,包括周期精度、所仿真的 CPU 管道以及缓存行为,实际速度差距甚至可能会达到 1000 倍之多。 硬件仿真也有自己的优点。例如,使用硬件仿真,您可以在一个 ARM 处理器主机上运行为 PowerPC设计的操作系统,而不需要任何修改。您甚至可以运行多个虚拟机,每个虚拟器仿真一个不同的处理器。

完全虚拟化(full virtualization),也称为原始虚拟化。这种模型使用一个虚拟机,它在客户操作系统和原始硬件之间进行协调。虽然完全虚拟化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,因为中间经过了

hypervisor 的协调过程。

超虚拟化(paravirtualization)。这种方法使用了一个 hypervisor 来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。这种方法不再需要重新编译或捕获特权指令,因为操作系统本身在虚

拟化进程中会相互紧密协作。超虚拟化提供了与未经虚拟化的系统相接近的性能。与完全虚拟化类似,超虚拟化技术可以同时支持多个不同的操作系统。

操作系统级的虚拟化。种技术在操作系统本身之上实现服务器的虚拟化。这种方法支持单个操作系统,并可以将独立的服务器相互简单地隔离开来。

操作系统级的虚拟化要求对操作系统的内核进行一些修改,但是其优点是可以获得原始性能。

如何轻松实现虚拟化?

Linux在虚拟化方面已经有了很多中解决方案:VMware,VirtualBox,Xen和KVM。

KVM是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。

4.开源技术

Xen

Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行。

Xen虚拟机可以在不停止的情况下在多个物理主机之间实时迁移。在操作过程中,虚拟机在没有停止工作的情况下内存被反复的复制到目标机器。

虚拟机在最终目的地开始执行之前,会有一次60-300毫秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。

Xen是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与 Linux

是一个完美的开源组合,Novell SUSE Linux Enterprise Server 最先采用了XEN虚拟技术。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。

应用案例

1) 腾讯公司---中国最大的Web服务公司

腾讯公司经过多方测试比较后,最终选择了Novell SUSE Linux

Enterprise Server中的Xen超虚拟化技术。该技术帮助腾讯改善了硬件利用率以及提高系统负载变化时的灵活性。客户说:“在引入Xen超虚拟化技术后,我们可以在每台物理机器上运行多个虚拟服务器,这意味着我们可以潜在的显著扩大用户群,而不用相应地增加硬件成本。”

2) 宝马集团----驰名世界的高档汽车生产企业

宝马集团(BMW Group)利用Novell带有集成Xen虚拟化软件的SUSE

Linux Enterprise Server来执行其数据中心的虚拟化工作量,从而降低硬件成本、简化部署流程。采用虚拟化技术使该公司节省了高达70%的硬件成本,同时也节省了大量的电力成本。

3) 云谷科技---基于Xen的VPS管理平台研发公司

XenSystem,是基于Xen的虚拟技术开发的一款VPS管理系统。这一款功能VPS智能管理平台,运用IT业界最新的“云计算”和“云储存”的设计理念,支持自动化的VPS云主机和服务器的实时管理功能,具备良好的兼容性和稳定性,从而简单高效地管理VPS主机的运作,与Hyper-V基于Xen的虚拟化技术后使VPS更趋稳定,运作更为高效。这也意味着IDC的运作成本会大大地降低,利润得以增加。

KVM

KVM 是 kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。 KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。

虚拟机运行在一个完全隔离环境中的完整计算机系统。

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机(Parallels Desktop,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。

流行的虚拟机软件有VMware(VMWare ACE)、Virtual Box和Virtual

PC,它们都能在Windows系统上虚拟出多个计算机。

1虚拟机技术

虚拟机技术是虚拟化技术的一种,所谓虚拟化技术就是将事物从一种形式转变成另一种形式,最常用的虚拟化技术有操作系统中内存的虚拟化,实际运行时用户需要的内存空间可能远远大于物理机器的内存大小,利用内存的虚拟化技术,用户可以将一部分硬盘虚拟化为内存,而这对用户是透明的。又如,可以利用虚拟专用网技术(VPN)在公共网络中虚拟化一条安全,稳

定的“隧道”,用户感觉像是使用私有网络一样。

虚拟机技术最早由 IBM 于上世纪六七十年代提出,被定义为硬件设备的软件模拟实现,通常的使用模式是分时共享昂贵的大型机。 虚拟机监视器(Virtual Machine Monitor,VMM)是虚拟机技术的核心,它是一层位于操作系统和计算机硬件之间的代码,用来将硬件平台分割成多个虚拟机。VMM 运行在特权模式,主要作用是隔离并且管理上层运行的多个虚拟机,仲裁它们对底层硬件的访问,并为每个客户操作系统虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器,内存,I/O 设备)。VMM 采用某种调度算法在各个虚拟机之间共享 CPU,如采用时间片轮转调度算法。

2分类

微软虚拟机

SWsoft虚拟机

Java虚拟机

Mac虚拟机

SUN虚拟机

BB虚拟机

IBM虚拟机

Intel虚拟机

Linux虚拟机

HP虚拟机

AMD虚拟机

3常用

VMware Workstation

在详细介绍之前,有几个概念要说明:

1. VM(Virtual Machine)——虚拟机,指由Vmware模拟出来的一台虚拟的计算机,也即逻辑上的一台计算机。

——指物理存在的计算机,Host′s OS指HOST上运行的操作系统。

3. Guest OS——指运行在VM上的操作系统。例如在一台安装了Windows NT的计算机上安装了Vmware,那么,HOST指的是安装

Windows NT的这台计算机,其Host′s OS为Windows NT。VM上运行的是Linux,那么Linux即为Guest OS。

特点

1.可同时在同一台PC上运行多个操作系统,每个OS都有自己独立的一个虚拟机, 就如同网络上一个独立的PC。

2.在Windows NT/2000上同时运行两个VM,相互之间可以进行对话,也可以在全屏方式下进行虚拟机之间对话,不过此时另一个虚拟机在后台运行。

3.在VM上安装同一种操作系统的另一发行版,不需要重新对硬盘进行分区。

4.虚拟机之间共享文件、应用、网络资源等。

5.可以运行C/S方式的应用,也可以在同一台计算机上,使用另一台虚拟机的所有资源。

使用Vmware,你可以同时运行Linux各种发行版、Dos、Windows各种版本,Unix等,你甚至可以在同一台计算机上安装多个Linux发行版、

多个Windows版本。笔者安装了Windows NT下的Vmware后,在VM上安装Red Hat Linux,成功 运行了Xwindow,同时也在虚拟机下安装了Windows 98。这简直令人难以置信!但是,这一切发生了,是Vmware帮助的结果!

Vmware对虚拟硬盘大小有限制,创建后以后就不允许用户再更改了。虚拟硬盘实际上是Windows NT下的一个文件,而对于 Guest OS,它则永远被看作是一个IDE硬盘。在虚拟机中,尚没有SCSI、RAID的概念。

不过,你不必担心,尽管在虚拟机中不支持SCSI盘,但是,虚拟磁盘却可以建立在任何种类的硬盘上,包括IDE、SCSI甚至RAID阵列上。这些盘上的文件系统可以是FAT16、FAT32、NTFS等。此外,虚拟盘也可建立在一个可移动的磁盘上,还可以建立在一个网络文件服务器上。如果用户愿意,也可以放置在一个已划分好的分区上。

在Vmware的窗口上,模拟了多个按键,分别代表打开虚拟机电源、关闭虚拟机电源、Reset键等等。 这些按键的功能就如同真正的按键一样。如果你的Guest OS是Linux ,而你不是通过halt命令或 reboot命令关闭Linux 系统的。那么,下次启动Linux的时,Linux就会自动进行文件系统的检查与修复。因为它认为上次关机是一次真实的断电事故。

VMware 可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就像标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。 使我们可以在同一台PC机上同时运行Windows NT、Linux、Windows 9x、FreeBSD……可以在使用Linux的同时,即时转到Win 9x中运行Word。如果要使用Linux,只要轻轻一点,又回到Linux之中。就如同你有两台计算机在同时工作。实现的工具就是:虚拟计算平台——Vmware。

Parallels Desktop

Parallels Desktop是适用于Mac OS平台上的虚拟机解决方案。无需重启即可在同时一台Mac电脑上随时访问Windows和Mac两个系统上的众多应用程序。与VMware最大的区别在于Parallels Desktop无需重启,两个系统同时运行。两系统间可以实现文件互传,素材共用。

融合模式(Coherence)支持不显示Windows但是仍使用其应用程序,或者在Mac上保留熟悉的Windows背景与开始菜单。两种同时运行Windows与Mac应用程序的方式都不会对性能产生任何影响。

多虚拟机支持:Windows、Linux、Chrome OS、Mac OS、Android OS等。

Virtual PC

Virtual PC是微软公司(Microsoft) 收购过来的,最早不是微软开发的。Virtual PC可以允许你在一个工作站上同时运行多个PC操作系统,当你转向一个新OS时,可以为你运行传统应用提供一个安全的环境以保持兼容性,它可以保存重新配置的时间,使得你的支持,开发,培训工作可以更加有效。

Virtual PC 在使用PowerPC处理器的Mac OS X版本上,其模拟机“使用”Intel Pentium 4处理器及440BX 系列的主板;而在Windows版本上,会使用电脑本身的处理器。模拟电脑上使用一块标准的SVGA VESA图卡,并与S3 Trio 64 PCI 8 MByte Video RAM版本的兼容。主板使用American

Megatrends (AMI)的BIOS。并有“内置”的 Creative Labs Sound Blaster

16 PnP声卡 (Vista上或运行模拟Vista环境时,则使用Vista本身的音效系统,因为Vista并不支援Creative Labs Sound Blaster)及DEC 21041 或

DEC 21140的Ethernet网卡。

4资源分配

虚拟机资源涉及多个方面:CPU、内存、网络以及磁盘。在规划虚拟机时应该考虑这些资源之间的关系,否则,分配的资源不合理将导致虚拟机内的应用程序性能表现不佳。

CPU

虚拟机每个vCPU只运行在一个物理核心之上,因此CPU频率越高虚拟机的运行速度也就越高,vCPU数量越多有助于提升应用的性能表现。一个比较复杂的因素就是在ESXi服务器内,所有的虚拟机共享使用物理CPU。ESXi服务器的核心数越多,每个vCPU获得的核心份额也就越大,因此多核心的性能表现要强于核心频率高但数量少的情况。

如果虚拟机需要占用大量的CPU时间,那么可以考虑为虚拟机分配第二个vCPU,但是,为虚拟机分配两个以上vCPU并不一定让应用运行的更快,因为只有多线程应用才能有效地使用多个vCPU。

RAM

ESXi服务器内RAM资源通常有限,因此在给虚拟机分配RAM时需要格外小心。VMkernel在处理RAM时非常巧妙;允许虚拟机使用ESXi服务器所有的物理内存而且会尽量避免占用物理内存却没有真正使用的情况。

物理内存被完全用完后,VMkernel必须确定哪些虚拟机能够保留物理内存,哪些虚拟机要释放物理内存。这称之为“内存回收”。当虚拟机占用的物理内存被回收后,存在的一个风险就是会对虚拟机的性能造成影响。虚拟机被回收的内存越多,相应的风险也就越大。

最明智的是只为虚拟机分配完成工作所需要的内存。分配额外的内存将会增加回收风险。另一方面,当虚拟机操作系统将未被使用的内存用作磁盘缓存时,将会显著降低对磁盘系统的性能要求,所以这里有一个折衷问题。

对于数据库服务器以及VDI桌面来说,为虚拟机分配更多的内存往往更划算—在一台ESXi服务器上运行更少的虚拟机—而不是购买高性能的磁盘阵列。关键在于针对虚拟机的负载分配足够多内存而且没有浪费。

网络带宽

网络带宽包括两个方面:一是虚拟机和虚拟交换机之间的带宽,二是虚拟交换机与外部网络之间的带宽。如果希望虚拟机获得最大带宽那么应该使用VMXNET3网络适配器,VMXNET3在最小的CPU开销下提供了最好的吞吐量。如果情况允许,所有的虚拟机都应该使用VMXNET3网络适配器。

对于与外部物理网络的连接,一定要确保ESXi主机具备速度最快的物理网卡;10Gb是一个不错的选择,即使物理网卡的数量很少,但10Gb能够允许虚拟机承受突发的网络流量。

请记住,进行大量网络传输的虚拟机,虚拟机以及数据包的传输都会消耗CPU时间。因此,运行在CPU受限的ESXi服务器之上的虚拟机由于CPU无法快速响应请求可能会面临网络吞吐量不高的情况。

磁盘性能

磁盘性能往往是无声的性能杀手。虚拟机磁盘性能受阵列磁盘数量、类型以及运行在其上的虚拟机的数量的限制。因为集中地共享存储架构将导致通过同一位置访问所有的虚拟机磁盘,阵列的存储控制器以及磁盘过载情况很容易出现,只剩下虚拟机在等待存储的响应。

虚拟机等待磁盘IO、虚拟机CPU空闲对性能的影响有很大不同。等待IO的虚拟机无法做其他工作,因此高I/O等待时间意味着性能肯定会下降。进行周密的存储设计以避免上述情况的发生至关重要。[3]

合理选择磁盘 提升虚拟机性能

在虚拟化中,hypervisor将工作负载从运行在底层的物理硬件中抽象出来,允许快速分配并共享计算资源,迁移工作负载。尽管hypervisor以及与虚拟化兼容的处理器性能开销很小,但是虚拟化层的存在却对性能有影响。

当磁盘性能对工作负载至关重要时,某些管理员可能会选择以直通模式配置LUN,允许虚拟机的操作系统绕过hypervisor与直接LUN进行通信。例如,Windows服务器虚拟机可能使用直通模式绕过Hyper-V直接访问磁盘,这对SQL Server数据库的性能有些许提升。然而,由于客户操作系统(采用直通模式)以及hypervisor试图同时访问磁盘,那么hypervisor必须被配置为忽略直通LUN。

直通模式存在的问题是其不被某些重要的虚拟化功能比如虚拟机快照或者集群所支持。因此,虚拟机在实际上可能会受益于虚拟化提供的各种功能特性而非采用直通模式所带来的处于边缘地位的性能提升。管理员需要评估虚拟机的需求并确定直通模式的适宜性。

除直通模式外,Hyper-V以及其他hypervisor还提供了其他磁盘存储选项。例如,当.VHD文件被创建时,大小固定的磁盘将分配所有的数据块。一旦被创建,大小固定的磁盘就不能够进行调整了。然而,动态扩展磁盘从一开始创建的就是没有数据块的.VHD文件,当数据写入到.VHD文件中后磁盘空间才会被分配出去。这和精简配置类似,尽管在逻辑上创建了一块磁盘,但实际的磁盘空间只有数据写入时才会被用到。

差分磁盘是一种特殊的动态扩展磁盘类型。其设计思路是父磁盘拥有固定的镜像而且差分磁盘与父磁盘相关联,因此写入到磁盘的数据被存放在差分磁盘而非.VHD文件中。读请求首先检查差分磁盘的.VHD文件,如果没有更改,就会读父.VHD文件。当需要标准化的磁盘镜像而且回滚功能很重要时,差分是一个不错的主意,但是管理员在维护父子磁盘配置时可能会面临挑战。

虚拟系统

概念

虚拟系统,也常被称为影子系统,是一种电脑软件,可以在现有的操作系统上虚拟出一个相同的环境,并在该虚拟环境中运行应用程序,而所有访问与改变系统的活动将会被限制在该环境下,意即虚拟系统与实体系统是隔离的,虚拟系统中的活动不会造成实体系统的改变。

虚拟系统和虚拟机的不同在于:虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统。而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。

优点

1.虚拟技术是一种调配计算机资源的方法,它能更有效、更灵活的提供和利用计算机资源,降低成本,节省开支。

2.在虚拟环境里更容易实现程序自动化,有效地减少了测试要求和应用程序的兼容性问题,在系统崩溃时更容易实施恢复操作。

本文标签: 系统虚拟化虚拟硬件磁盘