2022-09-12-kvm介绍
1. 虚拟化
虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。
那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使用的呢?
这个主要是通过一个叫做 Hypervisor 的程序实现的。
根据 Hypervisor 的实现方式和所处的位置,虚拟化又分为两种:1型虚拟化和2型虚拟化。
1.1 1型虚拟化
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。
1型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高
1.2 2型虚拟化
物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。
2型虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM。
2. kvm
KVM ------------ Kernel-Based Virtual Machine (基于内核的虚拟机)
KVM 是基于 Linux 内核实现的。
KVM有一个内核模块叫 kvm.ko 只用于管理虚拟 CPU 和内存。
Linux 内核和qemu 负责 IO 的虚拟化
3. libvirt
KVM 的管理工具
libvirt 除了能管理 kvm 这种 Hypervisor,还能管理 Xen,VirtualBox 等
4. qemu kvm qume-kvm libvirt openstack的区别和关系。
4.1 qemu
qemu是独立的虚拟化解决方案,通过intel-VT/AMD SVM实现全虚拟化。
qemu可以不依赖kvm,也可以通过kvm提供的功能提升性能。
4.2 kvm
kvm内核模块只能提供CPU和内存虚拟化,所以必须配合qemu才能构成完整的虚拟化技术,即qemu-kvm
4.3 qemu-kvm
一个完整的模拟器,它是构建基于kvm上面的,它提供了完整的网络和I/O支持。qemu将kvm整合进来,通过 ioctl 调用/dev/kvm接口,将cpu指令相关部分交给内核模块来做。
kvm负责CPU和内存虚拟化,但不能模拟其他设备。
qemu模拟IO设备(网卡,磁盘等), 配合才能实现完整的服务器虚拟化。 qemu模拟的其他硬件,会影响这些设备的性能,于是产生了 pass through半虚拟化设备 virtio_blk, virtio_net ,用于提升设备性能。
4.4 libvirt
作为虚拟机和云管理的中间层(抽象管理层):提供各种API,供上层管理不同的虚拟机。 libvirt是管理虚拟机及其他虚拟化功能(存储、网络…)的软件集合.libvirt构建于一个抽象概念之上,为受支持的虚拟机监控程序实现的常用功能提供通用的API。 提供了跨VM平台的功能,它可以控制除了qemu之外的模拟器,包括vmware, virtualbox, xen等。为了openstack的跨VM性,openstack只会用libvirt而不直接用qemu-kvm。libvirt还提供了一些高级的功能,例如pool/volume管理
4.5 OpenStack
OpenStack不会直接控制qemu-kvm,它会用libvirt库去间接控制qemu-kvm
5 参考文档
https://www.cnblogs.com/CloudMan6/tag/OpenStack/
2022-09-12-kvm介绍相关推荐
- ARM学习思维导图 2022.09.12
- openEuler 社区 2022 年 12 月运作报告
社区活跃度 在社区所有开发者和用户的共同参与下,openEuler的3年持续迸发活力!从0到超过1.27万名开发者,从0到超过100万的社区用户,从0到超过750家企业伙伴加入社区--截至目前,在大家 ...
- Dapr中国社区活动之 分布式运行时开发者日 (2022.09.03)
自2019年10月首次发布以来,Dapr(Distributed Application Runtime,分布式应用运行时)因其"更稳定"."更可靠".&quo ...
- KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]
KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain] 学习 KVM 的系列文章: (1)介绍和安装 (2)CP ...
- HCIE-Routing Switching实验考试延期至2022年12月31日
尊敬的考生: 由于受新冠疫情不可控因素影响,2022年上半年HCIE-Routing & Switching实验考试所在城市出现出行受控等情况,造成部分考生无法在2022年6月30日之前前往考 ...
- 阿尔茨海默最新研究进展(2022年12月)
阿尔茨海默病(Alzheimer's disease, AD),俗称"老年痴呆症",是一种严重的神经退行性疾病,患者通常会出现以记忆力衰退.学习能力减弱为主的症状,并伴有情绪调节障 ...
- 【2022.09.04】关于升级打怪学编程活动的通知
把电子学会全国青少年软件编程等级考试作为游戏的关卡,带着小朋友们升级打怪. 升级打怪计划 每周日晚20:00,我在腾讯会议中进行直播答疑,解决小朋友们本周遇到的编程问题,辅助小朋友们提升编程的技能. ...
- 2022年12月国产数据库大事记-墨天轮
本文为墨天轮技术社区整理的2022年12月国产数据库大事件和重要产品发布消息. 目录 12月国产数据库大事记(时间线) 产品/版本发布 兼容认证 排行榜新增数据库 厂商活动 相关资料 12月国产数据库 ...
- 2022.09 青少年Python等级考试(六级) 编程题部分
2022.09 青少年Python等级考试 编程题部分(共3题,共30分) 36.小明编写一个类实现设置马的品种.年龄.性别及速度,输出相应的语句,请补全代码. 如下代码输出结果为"一匹 ...
- KVM介绍 虚拟化简史
KVM介绍 为什么需要CPU虚拟化 X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机 硬件.x86 架构提供四个特权级别给操作系统和应用程序来访问硬件. Ring ...
最新文章
- 原本要与Hinton当同事,最后被迫Bengio门下读博?| 独立研究员的坎坷之路
- 人工智能+能源:能源行业变革新趋势
- 关于 @ngrx/Store 下 obj 的扩展问题
- cpp_extension dist must be a Distribution instance
- python视频教程从入门到精通全集-python从入门到精通视频(全60集)免费高速下载...
- 对话国际农民丰收节贸易会-万祥军:雀巢全球谋定农民合作
- 计算机考研学科专业基础,2018考研计算机学科专业基础综合考试大纲 出炉
- java filehelper_Java常用工具类---IP工具类、File文件工具类
- 介绍个好点的,JAVA技术群
- Oracle 初始化参数文件pfile和spfile
- mysql 修改root密码 修改账户登录host
- vsftpd配置系统用户为登陆用户
- Proe/Creo经典曲面造型实战案例大合集
- android 指纹存储密码,安卓指纹认证(Android Fingerprint Auth)
- java学习总结(16.07.16)Random类和BigDecimal类
- 例题5-3 安迪的第一个字典(Andy's First Dictionary,Uva 10815)
- 【动态规划】CH_0103 最短Hamilton路径
- linux保存压缩程序输出,Linux压缩zip文件
- kali Linux单用户模式的退出方法
- BUUCTF [HCTF 2018]WarmUp 1