虚拟化总结
定义
- 通过虚拟化技术将一台计算机虚拟为多态逻辑计算机。简单来说:虚拟化使得在一台物理的服务器上可以跑多台虚拟机
- 虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
- 每台逻辑计算机可以运行不同的操作系统。
- 应用程序可以相互独立的运行在不同的空间内
- 物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)
- 显著提高资源使用率,和计算机工作效率
对比
虚拟化前 | 虚拟化后 |
---|---|
每台主机一个操作系统 | 多个操作系统 |
软硬件结合,操作系统与硬件紧密结合 | 虚拟机独立于硬件,能在任何硬件上运行 |
死板 | 灵活 |
分类
- 全虚拟化:
- 完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改
- 客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在——就是一个真实的物理环境一样
- 在虚拟机和硬件中间加了一层——
Hypervisor
,叫做虚拟监控器VMM
- 沟通 VM 和硬件,类似于一个翻译
- 可以运行在物理硬件之上——KVM;可以运行在另一个操作系统——QEMU WINE
- 半虚拟化技术:
- 半虚拟化需要对运行在虚拟机上的客户机操作系统
- 这些客户机操作系统会意识到它们运行在虚拟环境里
- 进行修改并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越——因为在全虚拟化的基础上,增加了一个 API,将客户操作系统(GuestOS)发出的指令进行最优化,不需要 Hypervisor 消耗资源进行翻译。
常见架构
- 寄居架构:在操作系统上运行虚拟化程序,依赖于操作系统
- 优点:简单,便于实现
- 缺点:依赖操作系统——操作系统不稳定,之上的GuestOS 再稳定也无用
- 例子:日常中几乎全是:WorkStation,VirtualBox
- 裸金属架构:直接在硬件上安装运行虚拟化程序,不依赖操作系统
- 优点:不依赖操作系统,灵活性更高
- 缺点:虚拟曾内核开发难度较大
- 例子:ESXI
参考
- 原文作者:战神西红柿
- 原文链接:https://tomatoares.github.io/posts/cloud/%E8%99%9A%E6%8B%9F%E5%8C%96%E6%80%BB%E7%BB%93/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。