非常好的一个讲解网站:https://cloud.tencent.com/developer/article/1769577
一、什么是虚拟化
1、虚拟化技术分类
虚拟化按应用场景分类可分为操作系统虚拟化,应用程序虚拟化,桌面虚拟化。
按照硬件资源调用模式分类可分为全虚拟化,半虚拟化。全虚拟化与半虚拟化的区别在于是否需要对虚拟操作系统的内核进行修改,全虚拟化不需要,半虚拟化需要
全虚拟化:
是虚拟化操作系统与底层系统完全隔离,无需更改操作系统,如KVM,VMware。常用的VMware Workstation 是桌面版 Hypervisor
全虚拟化的VMM(监视器)会将一个OS所能够操作的CPU、内存等物理设备逻辑抽象成虚拟CPU、虚拟内存后交由GuestOS来使用,因此无需更改任何东西。
全虚拟化又分为软件辅助的全虚拟化和硬件辅助的全虚拟化。
软件辅助的全虚拟化是CPU在无法判断特权指令归属时的产物——软件辅助虚拟化能够成功的将所有在GuestOS中执行的系统内核特权指令进行捕获、翻译,使之成为只能对GuestOS生效的虚拟特权指令。
但是退一步来说,之所以需要这么做的前提是因为CPU并不能准确的去判断一个特权指令到底是由GuestOS发出的还是由HostOS发出的,这样也就无法针对一个正确的OS去将这一个特权指令执行。
硬件辅助全虚拟化主要使用了支持虚拟化功能的CPU进行支撑,CPU可以明确的分辨出来自GuestOS的特权指令,并针对GuestOS进行特权操作,而不会影响到HostOS。
半虚拟化:
在虚拟化客户操作系统加入特定的虚拟指令,通过指令直接通过hypervisor(虚拟机管理程序)调用硬件系统,免去hypervisor转换的消耗
2、基于虚拟机的虚拟化
虚拟化是云计算的基础。虚拟化就是在一台物理服务器上,运行多台“虚拟服务器“,也被称为虚拟机。虚拟机是Guest,共享宿主机Host的CPU、内存、硬件、网卡等资源。这种属于全虚拟化。
3、基于容器的虚拟化
容器是一种没有Guest OS的轻量级虚拟机,多个容器共享一个OS内核,容器中包含所需要部署的应用和它依赖的系统环境。由于共享操作系统内核,所以容器依赖于底层的操作系统。
二、云计算与虚拟化
虚拟化是云计算构建资源池的一个主要方式
云计算是一种概念,不是一种技术
三、云计算平台Openstack
1、什么是Openstack
OpenStack是一个利用虚拟资源池构建和管理私有云和公共云的平台
OpenStack平台的各个组件负责处理计算、网络、存储、身份和镜像服务等核心云计算服务。
2、OpenStack的工作原理
OpenStack本身并不会虚拟化资源,但会使用虚拟化资源来构建云。
OpenStack本身也不会执行命令,但它会将命令转发到基础OS。
OpenStack、虚拟化软件和基础操作系统这这三种技术协同工作,存在相互依赖性。
3、OpenStack的组成
四、云计算中虚拟化选型
早期由于容器技术的不完善,云计算只有虚拟机这一种选择。随着容器技术的兴起,继续容器的虚拟化性能更高,交付速度快,管理方便,而且资源利用率更高,可能是比虚拟机更高的方案。但容器技术的隔离性不强,导致安全性不强,还存在操作系统依赖性问题。现阶段Saas(应用及服务)和Pass(平台及服务)层可能由容器虚拟化对外提供服务,但基础的Iaas依旧是基于虚拟机的虚拟化
标签:容器,操作系统,虚拟化,虚拟机,技术,OpenStack,CPU From: https://www.cnblogs.com/chinachuan/p/16898410.html