1. 理解虚拟机
1)什么是虚拟机?
- 虚拟机就是安装在我们电脑操作系统的一个软件,而这个软件可以模拟我们的操作系统。
- 也就是说安装虚拟机软件之后,我们的电脑可以同时开多个不同的操作系统
- 虚拟机也需要划分区、需要装系统、需要维护,虚拟机就像一台独立的电脑
2)虚拟机的工作原理
首先看一下整个虚拟机在物理机上的结构图:
上图的绿色、橙色、红色就组成了三台虚拟机。
三他虚拟机依次由三部分构成:
- 虚拟机的os
- 应用程序需要的各种包
- 应用程序
而每一台虚拟机都是在虚拟机管理器的基础上建立起来的。
虚拟机管理器是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器
虚拟机管理器是运行在物理机之上,为多台虚拟机提供能够宿主在物理主机之上的基础环境。
Hypervisor可以分为两种:
I型–裸机型,直接运行在物理设备之上,是一种基于内核的虚拟机。这种类型的Hypervisor所扮演的角色是一种抽象概念的OS。
II型–宿主机型,运行在宿主机器的操作系统上。创建硬件全仿真实例。Hypervisor构建出一整套虚拟硬件平台(CPU/Memory/Storage/Adapter),上面需要你再去安装新的操作系统和需要的应用软件,这样底层和上层的OS就可以完全无关化。
3)虚拟机怎样实现在一个系统中完成对另一个系统的支持?
- 设备分为全虚拟和和半虚拟,大多数的实现都是通过在虚拟机和主机之间通过共享内存来传递数据,然后在在主机上作真正的操作。
- 比如网络包这些,在虚拟机的驱动拿到包之后,通过共享内存先传到主机,主机拿到后再当作是自己的机器的包发出去。
- 因为硬件不能同时被很多机器一起操作,所以所以这些虚假设备的操作都是通过发到主机上来进行。
- 现在intel那些cpu还是也有很多虚机指令上面的,便于主机管理客户机的那些指令了。
- 其他的主要技术是虚拟机的特权指令的翻译。就是虚拟机执行的时候,虽然也是在cpu上面跑,但一些特权指令比如页表操作什么的指令是要经过主机的翻译的,按照虚拟机的设计转换成特定的多条指令什么的。虚拟机的指令都是经过再次翻译的。
4)虚拟机与虚拟系统
虚拟机(Virtual Machine):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
虚拟系统:
- 通过生成现有操作系统的全新虚拟镜像,它具有真实linux系统完全一样的功能
- 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统
虚拟系统和传统的虚拟机(Parallels Desktop ,Vmware,VirtualBox,Virtual pc)不同在于:
- 虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动linux系统那样耗费时间,运行程序更加方便快捷
- 虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统
- 而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多
5)安装虚拟机需要具有的条件
- 检查真正的服务器是否满足虚拟化管理的条件
- 看自己系统的cpu是否支持全面虚拟化
- 查看方法: cat /proc/c