1. 小红帽首页
  2. Linux资源
  3. Linux实验教程

Linux虚拟化技术概览

<虚拟化技术即是对资源的抽象>

如果把X86平台的CPU,内存和外设作为资源,那对应的虚拟化技术就是平台虚拟化,在同一个X86平台

上面,可以虚拟多个X86平台,每个平台可以运行自己独立完整的操作系统。

(Platform Virtualization)QEMU,KVM,XEN Server,ESXI,Hyper-V ……

如果把操作系统及其提供的系统调用作为资源,那虚拟化就表现为操作系统虚拟化,例如Linux容器虚拟化技术

就是在同一个Linux操作系统之上,虚拟出多个同样的操作系统,每个应用程序认为自己运行在一个独立的OS,

LXC、Docker。

……

X86平台指令集权限划分

Ring 0 : 操作系统使用

Ring 1-2:驱动程序使用

Ring 3: 应用程序使用

Linux虚拟化技术概览

Linux虚拟化技术概览

虚拟化管理程序 Hypervisor(VMM)

一种运行在物理机和虚拟机操作系统之间的中间软件层,可以允许多个操作系统和应用共享硬件,也称做VMM

(Virtual Machine Monitor),即虚拟机监视器。

Linux虚拟化技术概览

Hypervisor类型1: 半虚拟化 (Para-virtualization)

对客户操作系统(VM)的内核进行修改,将运行在Ring0上的指令转为调用Hypervisor,XEN

Linux虚拟化技术概览

Linux虚拟化技术概览

Hypervisor类型2:硬件辅助全虚拟化 (Hardware-Assisted Full Virtualization)

对CPU指令集进行改造,Intel VT-x / AMD-V

客户操作系统可以直接使用Ring 0而无需修改,KVM

Linux虚拟化技术概览

Linux虚拟化技术概览

Hypervisor类型3:软件全虚拟化 (非硬件辅助全虚拟化)

模拟CPU让VM使用,即软件全虚拟化 QEMU,效率最低

操作系统虚拟化(轻量级)

允许操作系统内核拥有彼此隔离和分割的多用户空间实例instance,这些实例也称之为容器。

基于Linux内核中的namespace、cgroup实现,LXC、Docker

Linux虚拟化技术概览

Linux虚拟化技术概览

Hypervisor比较

Linux虚拟化技术概览

QEMU

软件模拟虚拟化、可以模拟多种硬件,包括X86架构处理器、AMD64架构处理器、ARM、SPARC 与 PowerPC 架构等。

效率低,一般用于研究测试场景

KVM

KVM kernel-based virtual machine

是x86架构下硬件辅助的全虚拟化的首选解决方案

KVM需要经过修改的QEMU软件(qemu-kvm)来实现虚拟机的管理

KVM就是内核的一个模块,用户空间通过QEMU模拟硬件提供给虚拟机使用,一台虚拟机就是一个普通的Linux进程,虚拟机中的VCPU就是该进程中的线程。

Linux虚拟化技术概览

Libvirt

libvirt是一套免费、开源的支持Linux下主流虚拟化管理程序的C函数库,其旨在为包括KVM在内的各种虚拟化管理程序提供一套方案、可靠的编程接口。

当前主流Linux平台上默认的虚拟化管理工具virt-manager,virsh等都是基于libvirt开发。

Linux虚拟化技术概览

发布者:rhce_net,转转请注明出处:https://www.rhce.net/766.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

0757-22 129 198

在线咨询:点击这里给我发消息

邮件:rhce@rhce.net

工作时间:周一至周五,全天

QR code