本文主要是介绍从KVM虚拟化到Openstack云化架构综述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
摘要
OpenStack的虚拟化技术
OpenStack架构介绍
Nova
Swift
KeyStone
Neutron
Glance
Cinder
Ceilometer
Heat
摘要
这两年的工作中,接触到公有云和私有云的项目还不少。起初对于Openstack的了解,仅停留在其几大组件的交互上,如Nova、Neutron、Glance等,以及对各大云厂商功能点上。随着项目的深入,慢慢发觉了解组件的交互,虽然对于做项目来说基本够用,但做为一名负责人的售前同学,总觉得需要进一步理清楚,Openstack使用到的相关虚拟层技术,如KVM、QEMU、SDN等。本篇文章,已经在要总结的任务中delay了很久,今天下定决心,集网上多篇文章,整理从KVM虚拟化到Openstack的云化架构综述,希望各位同学多提建议。(下一篇文档,估计要写写AI相关的语音、视觉、NLP和知识图谱相关的了)
Openstack是一个云管平台,不是一项技术,这可能是一名非计算机专业的小白容易搞混的问题。计算、存储和网络的虚拟化,由底层hypervisor,如KVM、Qemu、Xen等提供。其实所谓的管理平台,主要是为了方便大家使用。如果没有OpenStack,同样可以通过virsh、virt-manager来创建虚拟机,只不过敲命令行的方式,就像windows之前的doc命令输入一样,需要一定的学习成本,对于普通用户的操作不是很便利。说到虚拟化,我们简单看一下虚拟化的分类,以及常见的Hypervisor,KVM和Xen的区别。
OpenStack的虚拟化技术
在OS中加入一个虚拟化层(VMM),虚拟化层可以对下层(HostOS)硬件资源(物理CPU、内存、磁盘、网卡、显卡等)进行封装、隔离,抽象为另一种形式的逻辑资源,再提供给上层(GuestOS)使用。所以你可以理解VMM其实就是联系HostOS和GuestOS的一个中间件,当然虚拟化可以将一份资源抽象为多份,也可以将多份资源抽象为一份。通过虚拟化技术实现的虚拟机一般被称之为GuestOS(客户),而作为GuestOS载体的物理主机称之为HostOS(宿主)。
现在市场上最常见的虚拟化软件有VMWare workstation(VMWare)、VirtualBox(Oracle)、Hyper-V(Microsoft)、KVM(Redhat)、Xen等,这些软件统称之为VMM(Virtual Machine Monitor),使用不同的虚拟化实现。而这些虚拟化实现的方式可以分为:
- 全虚拟化:也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(VMM 虚拟机管理程序)来捕获处理。既VMM会为GuestOS抽象模拟出它所需要的包括CPU、磁盘、内存、网卡、显卡等抽象硬件资源,所以全虚拟化的GuestOS并不会知道自己其实是一台虚拟机。全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为Hypervisor需要占用一些资源。典型的全虚拟化软件有:VMWare、Hyper-V、KVM-x86(复杂指令集)。
全虚拟化的两种实现方式:
1、基于二进制翻译的全虚拟化;2、基于扫描和修补的全虚拟化。
- 半虚拟化:是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。典型的半虚拟化软件有:Xen、KVM-PowerPC(简易指令集)半虚拟化除了修改内核外还有另外一种实现方法–在每一个GuestOS中安装半虚拟化软件:VMTools、RHEVTools。
这篇关于从KVM虚拟化到Openstack云化架构综述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!