文章目录
这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/109291533
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!
写在开头的话
- 请记住:实践是掌握知识的最快方法
- 如果你只是怀着看看的态度去快速浏览文章,而不去认认真真的把文章里面讲的任何一个知识点去实践一遍,那么你永远也掌握不了它
- 生命不息,折腾不止!
虚拟化概述
00. 什么是虚拟化
0.1 虚拟化的定义
-
在计算机技术中,虚拟化意味着创建设备或资源的虚拟版本,如服务器、存储设备、网络或者操作系统
-
虚拟化技术
- 系统虚拟化
- 将物理服务器划分为一个个可执行单元,使物理服务器存在多个操作系统
- 存储虚拟化
raid
lvm
逻辑卷管理vtl
sds
:软件定义存储
- 网络虚拟化
- 控制平面虚拟化
- 数字平面虚拟化
sdn
:软件定义网络
GPU
虚拟化- 虚拟机共享
GPU
显卡
- 虚拟机共享
- 软件虚拟化
- 硬件支持虚拟化
sr-iov
:对网卡设备封装管理共享
- 系统虚拟化
0.2 系统虚拟化
- 这种虚拟化通常表现为在单一系统上允许多个操作系统
- 这些虚拟化操作系统同时运行,每个操作系统又是相互独立
- 虚拟化有三种实现方式
- 纯软件仿真
- 虚拟化翻译
- 容器技术
0.3 纯软件仿真
- 通过模拟完整的硬件环境来虚拟化来宾平台
- 模拟
X86
,ARM
,PowerPC
等多种CPU
- 效率比较低
- 产品或方案
QEMU
、Bochs
、PearPC
0.4 虚拟化翻译
- 多数的虚拟化而采用虚拟机管理程序
Hypervisor
Hypervisor
是一个软件层或子系统- 也称之为
VMM
(Virtual Machine Monitor
,虚拟机监控器)
- 也称之为
- 允许多种操作系统在相同的物理系统中运行
- 控制硬件并向来宾操作系统提供访问底层硬件的途径
- 向来宾操作系统提供虚拟化的硬件
0.5 X86CPU的保护环
- 图示
0.6 无硬件辅助的全虚拟化
FUll Virtualization without Hardware Assist
- 基于二进制翻译的全虚拟化
FUll Virtualization with Binary Translation
Hypervisor
运行在Ring 0
Guest OS
运行Ring 1
- 机制:异常、捕获、翻译
- 示例:
VMware Workstation
QEMU
Virtual PC
07. 半虚拟化
- 也称之为:超虚拟化、操作系统辅助虚拟化
Hypervisor
运行Ring 0
Guest OS
不能直接运行在Ring 0
,需要对Kernel
进行修改,将运行在Ring 0
上的指令转为调用Hypervisor
Guest OS
上的APP
运行在Ring 3
- 示例:
Xen
因为涉及到对
kernel
的修改,所以只能支持linux
而不支持Windows
0.8 硬件辅助的全虚拟化
-
Full Virtualization with Hardware Assist
-
Intel VT 和 AMD-V
创建一个新的Ring -1
单独给Hypervisor
使用 -
Guest OS
可以直接使用Ring 0
而无需修改 -
示例
VMware ESXi
Microsoft Hyper-V
Xen3.0
KVM
0.9 LXC 和 Docker
- 一个轻量级/操作系统虚拟化方式,由
Linux
内核支持 - 起源:
chroot
系统调用,对当前程序及其子进程改变根目录 - 优势:
- 更快速的交付和部署
- 更高效的虚拟化
- 更为轻松的迁移和扩展
- 更简单的管理
0.10 Hypervisor 分类
- 裸金属型
- 宿主型
0.11 小结
- 虚拟化实现技术
- 纯软件仿真:
QEMU
、Bochs
、PearPC
- 虚拟化翻译
- 无硬件辅助的全虚拟化
- 半虚拟化
- 硬件辅助的全虚拟化
- 容器技术
LXC
和Docker
- 纯软件仿真:
Hypervisor
的分类:- 类型1:裸金属型
- 类型2:宿主型
01. KVM是什么?
1.1 lsmod
Linux lsmod
(英文全拼:list modules
)命令用于显示已载入系统的模块。- 执行
lsmod
指令,会列出所有已载入系统的模块。Linux
操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。
1.2 KVM体系结构
-
KVM
- 初始化
CPU
硬件,打开虚拟化模式,以支持虚拟机的运行 - 负责
CPU
、内存、中断、控制器、时钟
- 初始化
-
QEMU
- 模拟网卡、显卡、存储控制器和硬盘
-
libvirt
- 它提供统一
API
、守护进程libvirtd
和一个默认命令行管理工具virsh
- 它提供统一
libvirt
OpenStack
使用的就是libvirt
的API
管理虚拟机
1.3 KVM集中管理与控制
www.linux-kvm.org
Ovirt
- 功能强大,是
RedHat
虚拟化管理平台RHEV
的开源版本 www.ovirt.org
- 功能强大,是
WebVirtMgr
www.WebVirtMgr.net
virt-manager
的Web
模式的替代品
ConVirt
www.convirture.com
- 分开源版本和商业版本
1.4 Hypervisor/VMM的选择
-
电信/ISP 公有云
- 单一
hypervisor
KVM
- 单一
-
互联网公司
- 单一
hypervisor
KVM
- 单一
-
Web
托管和SAS
细分市场- 单一或多个
hypervisor
- 容器(
LXC
,Parallels
,Docker
) KVM
- 单一或多个
-
企业
- 多种
Hypervisor
kvm
和vCenter/ESXi
- 多种
1.5 国产虚拟化解决方案概述
- 不要重复造轮子
- 国产虚拟化解决方案重点在虚拟化的管理与桌面协议
hypervisor/VMM
选择H3
:KVM
- 红山:
Xen
- 华为:
Xen -> KVM -> Xen
- 浪潮:
Xen
- 普华:
KVM
- 锐捷:
KVM
- 深信服:
KVM
- 其他
kvm
居多
1.6 资源与参考资料
redhat
官方文档https://access.redhat.com/documentation/en-us/
kvm
主页https://www.linux-kvm.org/page/Main_Page
- 提供了
kvm
的详细信息,以及大量信息来源和相关站点的链接
libvirt Virtualization API
网站http://www.libvirt.org
- 提供了有关
API
、所支持的虚拟化抽象及其使用的XML
格式的详细信息
写在最后的话:
- 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
- 欢迎关注我的CSDN博客,IDYS’BLOG
- 持续更新内容:
linux基础 | 数据通信(路由交换,WLAN) | Python基础 | 云计算 - 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
- 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!