虚拟化学习

  • Post author:
  • Post category:其他


虚拟化学习

1.为什么需要虚拟化?

在同一个系统里面没有做资源的隔离的时候,如果某一个应用程序卡死,而导致系统卡死,那么其他应用程序也会受到影响,解决方法:虚拟机管理器,VMM(hypervisor)。使用虚拟化可以是机器利用率达到70%以上。而没有使用虚拟化一般只能打到20-30%。

虚拟化其实就是做一个资源的分配与隔离。那么外部的那个系统自然能够管理所有的虚拟化的系统。在虚拟化的基础上面再做虚拟化可能会有问题,但是直接在硬件上面直接虚拟化是不会有问题的。

磁盘和内存没有办法虚拟化出多的,但是CPU核是可以虚拟化出多个。毕竟可以使用多线程来模拟。

2.私有化云及公有化云?

企业的私有化云,以及阿里的公有化云。阿里云的服务器技术非常稳定,技术很牛。

3.全虚拟化,半虚拟化,硬件辅助虚拟化?

首先明白cpu的四个级别,不同级别上面运行的东西是不同的,权限也是不同的。OS上面有些命令必须要在ring0上面执行,但是我们最终的KVM是运行在ring0上面了,所以只有把Guest OS运行在ring1上面了。但是有些OS命令本应在ring0上运行却在ring1上运行这时候就会抛出异常,抛出异常就需要异常捕获(处理这个指令),但是异常捕获是非常耗资源的。这就是我们所说的全虚拟化,

全虚拟化不需要更改OS内核,但是比较耗资源。

半虚拟化,Guest OS会把涉及到在ring0上运行的超级调用指令发送给vmm,也就是说OS知道自己上层有一个VMM,那么要实现这样的操作就需要修改操作系统的内核指令。不再是一般的OS,而是一个特殊的OS,定制的OS。也就是要在OS中分清不同的指令级别,然后修改内核。但是我们的Windows是没有开源的,所以这个虚拟化只能是对Linux使用。所以名字才叫做半虚拟化。优点是不那么耗资源了,缺点是比较麻烦,需要修改内核。

硬件辅助虚拟化,让厂商来实现这个东西。在安装VMware的时候如果安装不了系统,那么需要开启VT服务就是这个东西。

egrep -c ‘(vmx|svm)’ /proc/cpuinfo

这里写图片描述



版权声明:本文为jiaxinhong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。