最近发现了关于虚拟化的宝藏资料,瑞斯拜!原文链接如下:
目录
- [🪐 虚拟化基础](#🪐 虚拟化基础)
- [🍃 虚拟化分类](#🍃 虚拟化分类)
- [🦕 CPU虚拟化](#🦕 CPU虚拟化)
- [🦖 内存虚拟化](#🦖 内存虚拟化)
- [🐊 IO虚拟化](#🐊 IO虚拟化)
- [🦎 存储虚拟化](#🦎 存储虚拟化)
- [🌱 架构](#🌱 架构)
- [🍊 实现](#🍊 实现)
- [🧿 视频](#🧿 视频)
- [🍀 论文](#🍀 论文)
- [🌰 开源项目](#🌰 开源项目)
- [📄 文章](#📄 文章)
- [📙 电子书籍](#📙 电子书籍)
🪐 虚拟化基础
虚拟化技术
虚拟化四种网络模型
虚拟化思维导图
🍃 虚拟化分类
🦕 CPU虚拟化
CPU虚拟化三种实现技术
1. 基于二进制翻译的全虚拟化(Full Virtualization with Binary Translation)
2. 超虚拟化(或者半虚拟化/操作系统辅助虚拟化 Paravirtualization)
3. 硬件辅助的虚拟化
4. CPU的三种虚拟化机制
🦖 内存虚拟化
内存虚拟化思维导图
VMM内存虚拟化实现方式
- 软件方式:通过软件实现内存地址的翻译,比如 Shadow page table (影子页表)技术
- 硬件实现:基于 CPU 的辅助虚拟化功能,比如 AMD 的 NPT 和 Intel 的 EPT 技术
1. 内存虚拟化
2. KVM内存虚拟化
3. 内存虚拟化-shadow实现
4. 内存虚拟化
5. 影子页表技术
6. EPT技术
🐊 IO虚拟化
I/O虚拟化三种方式
- 全虚拟化:宿主机截获客户机对I/O设备的访问请求,然后通过软件模拟真实的硬件。这种方式对客户机而言非常透明,无需考虑底层硬件的情况,不需要修改操作系统。
- 半虚拟化:通过前端驱动/后端驱动模拟实现I/O虚拟化。客户机中的驱动程序为前端,宿主机提供的与客户机通信的驱动程序为后端。前端驱动将客户机的请求通过与宿主机间的特殊通信机制发送给后端驱动,后端驱动在处理完请求后再发送给物理驱动。
- IO透传:直接把物理设备分配给虚拟机使用,这种方式需要硬件平台具备I/O透传技术,例如Intel VT-d技术。它能获得近乎本地的性能,并且CPU开销不高。
1. I/O虚拟化
2. I/O虚拟化三种形式
3. I/O虚拟化基本原理
4. I/O虚拟化面临的问题及解决方案
🦎 存储虚拟化
存储虚拟化结构
1. 块虚拟化
2. 磁盘虚拟化
3. 磁带、磁带驱动器、磁带库虚拟化
4. 文件系统虚拟化
5. 文件/记录虚拟化
6. 基于主机的虚拟化
7. 基于网络的虚拟化
8. 基于存储设备、存储子系统的虚拟化
9. 带内虚拟化
10. 带外虚拟化
🌱 架构
虚拟化架构图
🍊 实现
🧿 视频
🍀 论文
🌰 开源项目
KVM
KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。
使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等。
Xen
Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
OpenVZ
OpenVZ是基于Linux内核和作业系统的操作系统级虚拟化技术。OpenVZ允许物理服务器运行多个操作系统,被称虚拟专用服务器(VPS,Virtual Private Server)或虚拟环境(VE, Virtual Environment)。
与VMware这种虚拟机和Xen这种半虚拟化技 术相比,OpenVZ的host OS和guest OS都必需是Linux(虽然在不同的虚拟环境里可以用不同的Linux发行版)。但是,OpenVZ声称这样做有性能上的优势。根据OpenVZ网站的 说法,使用OpenVZ与使用独立的服务器相比,性能只会有1-3%的损失。
OpenVZ是SWsoft, Inc.公司开发的专有软件Virtuozzo的基础。OpenVZ的授权为GPLv2。
OpenVZ由两部分组成,一个经修改过的操作系统核心与及用户工具。
VirtualBox
VirtualBox 是一款功能强大的 x86 虚拟机软件,它不仅具有丰富的特色,而且性能也很优异。更可喜的是,VirtualBox 于数日前走向开源,成为了一个发布在 GPL 许可之下的自由软件。
Lguest
Lguest 是由IBM工程师Rusty Russell(澳大利亚开发者)发起的虚拟化项目,是一个只有5000行代码的精简hypervisor(虚拟机管理程序),它已经包括在最近版本的内核里了。和KVM相似,它支持 Intel和AMD芯片的最新虚拟化技术。但又与VMware公司的ESX Server不同,在Lguest创建的虚拟机里的操作系统知道自己是被虚拟出来的。所以在调用CPU周期时它可以直接向真正的硬件发出请求,而不是作为中间媒介而降低了效率,因此这种架构大大提高了效率。Lguest采用GPL授权。
- VManagePlatform :一个KVM虚拟化管理平台
- MalAnalyzer :基于docker虚拟化的恶意代码沙箱
- PinVMP :虚拟化代码辅助分析工具
- File-Management :基于虚拟磁盘模仿ext2的图形化文件管理系统
📄 文章
📙 电子书籍
- 《VMware vSphere4 云操作系统搭建配置入门与实战》.pdf
- 《VMwareCertifiedProfessionalTest Prep》.pdf
- 《企业虚拟化实战Vmware篇》.pdf
- 《精通VMware vSphere 5原版》.pdf
- 《虚拟智慧VMware vSphere运维实录》.pdf