Openstack学习笔记 002:虚拟化

1 虚拟化概述

云计算的一个核心思想是在服务器端提供集中的物理计算资源,这些资源可以被分解为更小的单位来服务于用户,而实现这一核心思想需要借助于虚拟化技术[1]。

百度百科对虚拟化的解释如下:

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率[2]。

2 虚拟化分类

在物理机上实现虚拟化需要借助于虚拟机监控器。虚拟机监控器 (Virtual Monitor Machine, VMM) ,也可称为Hypervisor,处于硬件和操作系统之间,可以使每个用户拥有独立的虚拟硬件和执行环境。

根据Hypervisor在计算机系统中所处的位置,可划分为一类虚拟化 (裸机型) 和二类虚拟化 (宿主型) :
在这里插入图片描述
图1 一类虚拟化和二类虚拟化[1]

一类虚拟化的Hypervisor直接运行在硬件上,而二类虚拟化的Hypervisor在物理机的操作系统之上。

另一种划分虚拟化的方式是根据虚拟化平台的类型划分,可分为完全虚拟化和类虚拟化两种。完全虚拟化无需对客户的操作系统修改便可运行在物理机上,而类虚拟化则需修改操作系统的代码,使其适应于物理机。

3 Hypervisor

目前主要的Hypervisor有以下几种:

Hypervisor 厂家
KVM 开源
Xen 开源
VMware ESX VMware
Hyper-V 微软

表1 Hypervisor

其中开源的KVM (Kernel-Based Virtual Machine) 应用广泛,且Openstack对KVM的支持较好,因此在这里着重介绍KVM。KVM基于Linux内核实现,主要管理CPU和内存。在实际应用中需与Qemu合作完成虚拟化任务,Qemu主要负责I/O的虚拟化。

4 高层管理工具

KVM等Hypervisor提供了虚拟化的基本功能,但与用户有关的工作仍需要更高层的工具完成,这些工具包括:Libvirt、XenAPI等,这里主要介绍Libvirt[3]。

Libvirt支持多种Hypervisor,主要包括如下组成部分:

  • API
  • Libvirtd 守护进程
  • virt-manager 图形化工具
  • virsh 命令行工具

5 KVM、Libvirt与Openstack的关系

KVM+Qemu -> Libvirt -> Openstack

参考资料

[1] 英特尔开源技术中心. Openstack设计与实现[M]. 北京:电子工业出版社, 2015
[2] 百度百科. 虚拟化[EB/OL]. https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E5%8C%96/547949?fr=aladdin, 2019-7-20
[3] cloudman. 虚拟化 - 每天5分钟玩转 OpenStack(2)[EB/OL] https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587970&idx=1&sn=eeabd0d69d51a725b46a6fc773544773&chksm=8d30821bba470b0d03dbf113fb19564c82592bef0d168c3971341abdc72bd4e91c28d0e92d36&scene=21#wechat_redirect. 2019-7-20

发布了5 篇原创文章 · 获赞 0 · 访问量 88

猜你喜欢

转载自blog.csdn.net/yangfan16120029/article/details/96621204