虚拟机的基本概念

  • 虚拟机概述
  • 虚拟技术
  • 虚拟化系统
  • 虚拟化方法
  • 虚拟机的资源分配
  • 虚拟机主要用处


虚拟机概述

虚拟机(Virtual Machine) 指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。是利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。

过虚拟化win7 过虚拟化机器_虚拟机

虚拟技术

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

虚拟化系统

虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。

虚拟系统和传统的虚拟机(Parallels Desktop,Vmware,VirtualBox,Virtual pc)不同在于

1)虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷。
2)虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。

虚拟化方法

第一类虚拟机管理程序

从技术上讲,第一类虚拟机管理程序就像一个操作系统,因为他是唯一一个运行在最高特权级的程序。他在裸机上运行并且具备多道程序功能。虚拟机管理程序向上层提供若干台虚拟机,这些虚拟机是裸机硬件的精准复制品。由于每台虚拟机都与裸机相同,所以在不同的虚拟机上可以运行任何不同的操作系统。

虚拟机作为用户态的一个进程运行,不允许执行敏感指令。然而虚拟机上的操作系统认为自己运行在内核态(实际上不是),称为虚拟内核态。虚拟机中的用户进程认为自己运行在用户态(实际上确实是)。当虚拟机操作系统执行了一条CPU处于内核态才允许执行的指令时,会陷入虚拟机管理程序。在支持虚拟化的CPU上,虚拟机管理程序检查这条指令是由虚拟机中的操作系统执行的还是由用户程序执行的。如果是 操作系统,虚拟机管理程序将安排这条指令功能的正确执行;如果是后者,虚拟机管理程序将模拟真实硬件面对用户态执行敏感指令时的行为。

在过去不支持虚拟化的CPU上,真实硬件不会直接执行虚拟机中的敏感指令,这些敏感指令被转为虚拟机管理程序的调用,由虚拟机管理程序模拟这些指令的功能。

第二类虚拟机管理程序

他是依赖于Windows、Linux等操作系统分配和调度资源的程序,很像一个普通的进程。第二类虚拟机管理程序仍然伪装成具有CPU和各种设配的完整计算机。VMware Workstation是首个X86平台上的第二类虚拟机管理程序。

运行在这两类虚拟机管理程序上的操作系统都称为客户操作系统。对于第二类虚拟机管理程序,运行在底层硬件上的操作系统称为宿主操作系统。

首次启动时,第二类虚拟机管理程序像一台刚启动的计算机那样运转,期望找到的驱动器可以是虚拟设备。然后将操作系统安装到虚磁盘上(其实只是宿主操作系统中的一个文件)。客户操作系统安装完成后,就能启动并运行。

虚拟机的资源分配

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

1)CPU

虚拟机每个vCPU(虚拟机管理系统的CPU)只运行在一个物理核心之上,因此CPU频率越高虚拟机的运行速度也就越高,vCPU数量越多有助于提升应用的性能表现。如果虚拟机需要占用大量的CPU时间,那么可以考虑为虚拟机分配第二个vCPU,但是,为虚拟机分配两个以上vCPU并不一定让应用运行的更快,因为只有多线程应用才能有效地使用多个vCPU。

2)RAM

RAM(主存,是与CPU直接交换数据的内部存储器)资源通常有限,因此在给虚拟机分配RAM时需要格外小心。物理内存被完全用完后,必须确定哪些虚拟机能够保留物理内存,哪些虚拟机要释放物理内存。这称之为“内存回收”。当虚拟机占用的物理内存被回收后,存在的一个风险就是会对虚拟机的性能造成影响。虚拟机被回收的内存越多,相应的风险也就越大。

3)网络带宽

网络带宽包括虚拟机和虚拟交换机之间的带宽虚拟交换机与外部网络之间的带宽。对于与外部物理网络的连接,一定要确保主机具备速度最快的物理网卡。因为进行大量网络传输的虚拟机,虚拟机以及数据包的传输都会消耗CPU时间。所以运行在CPU受限的服务器之上的虚拟机会由于CPU无法快速响应请求可能会面临网络吞吐量不高的情况。

4)磁盘性能

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

虚拟机主要用处

  1. 演示环境,可以安装各种演示环境,便于做各种例子
  2. 保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行
  3. 避免每次重新安装,银行等常用工具,不经常使用,而且要求保密比较好的,单独在一个环境下面运行
  4. 想测试一下不熟悉的应用,在虚拟机中随便安装和彻底删除
  5. 体验不同版本的操作系统,如Linux、Mac等。

终端虚拟化由于其带来的维护费用的大幅降低而受到追捧——如能降低占用空间,降低购买软硬件设备的成本,节省能源和更低的维护成本。它比实际存在的终端设备更加具备性价比优势,并且虚拟化技术能大幅提升系统的安全性。