53 | 存储虚拟化(上):如何建立自己保管的单独档案库?
刘超
该思维导图由 AI 生成,仅供参考
前面几节,我们讲了 CPU 和内存的虚拟化。我们知道,完全虚拟化是很慢的,而通过内核的 KVM 技术和 EPT 技术,加速虚拟机对于物理 CPU 和内存的使用,我们称为硬件辅助虚拟化。
对于一台虚拟机而言,除了要虚拟化 CPU 和内存,存储和网络也需要虚拟化,存储和网络都属于外部设备,这些外部设备应该如何虚拟化呢?
当然一种方式还是完全虚拟化。比如,有什么样的硬盘设备或者网卡设备,我们就用 qemu 模拟一个一模一样的软件的硬盘和网卡设备,这样在虚拟机里面的操作系统看来,使用这些设备和使用物理设备是一样的。当然缺点就是,qemu 模拟的设备又是一个翻译官的角色。虽然这个时候虚拟机里面的操作系统,意识不到自己是运行在虚拟机里面的,但是这种每个指令都翻译的方式,实在是太慢了。
另外一种方式就是,虚拟机里面的操作系统不是一个通用的操作系统,它知道自己是运行在虚拟机里面的,使用的硬盘设备和网络设备都是虚拟的,应该加载特殊的驱动才能运行。这些特殊的驱动往往要通过虚拟机里面和外面配合工作的模式,来加速对于物理存储和网络设备的使用。
virtio 的基本原理
在虚拟化技术的早期,不同的虚拟化技术会针对不同硬盘设备和网络设备实现不同的驱动,虚拟机里面的操作系统也要根据不同的虚拟化技术和物理存储和网络设备,选择加载不同的驱动。但是,由于硬盘设备和网络设备太多了,驱动纷繁复杂。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了存储虚拟化的基本原理和实现过程。首先介绍了硬件辅助虚拟化的重要性,然后详细解释了virtio的基本原理和架构,以及Virtio Block Device的继承关系和初始化过程。通过对VirtIODevice、VirtQueue和vring之间的关系的解释,读者可以快速了解存储虚拟化的核心概念和实现细节。文章还从qemu的启动过程中探讨了存储虚拟化的初始化过程,以及对qcow2文件格式的研究。总体而言,本文内容深入浅出,适合技术人员快速了解存储虚拟化的基本原理和实现过程。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈 Linux 操作系统》,新⼈⾸单¥68
《趣谈 Linux 操作系统》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(10)
- 最新
- 精选
- cuikt留个言,讲的挺好!
作者回复: 谢谢
2019-08-151 - 潇是潇洒的洒留个爪,虽然大部分都看不懂,但是我的初心是了解操作系统的概念,所以第一遍不关注细节,构建系统的大体框架,知道有这么个事儿就好了,好像看到这里,还能坚持的人就很少了,留个言,鼓励自己一下,希望再回来来看的时候,自己会多一些明悟。2019-09-06137
- 莫名赞,之前只是粗略读了一遍,留个大概印象。最近在优化虚拟机存储性能,重新拜读,受益匪浅,理解深刻了很多。2020-07-2914
- 靠人品去赢老师他这个协程和go的协程对比有什么异同?2019-09-173
- Geek_c2c8d1哇!看到这里的人已经越来越少了,虽然我也看不懂,但是还是想坚持看完第一遍,有个印象。这两个月在找工作,来这里打个卡。2021-08-151
- A免帅叫哥这一节比内存和cpu的虚拟化简单很多。2021-04-231
- 焦太郎没有什么复杂的问题是分层解决不了的,如果有,就是分的还不够(- -)2023-05-17归属地:河南
- Geek_cc94b0看的晕,但是还是坚持下来2022-07-28归属地:陕西
- 无在vm里用的大部分是协程的话,是不是一些long running的服务在vm上跑会比在裸机上跑性能更好? 用户/内核态之间的切换会少很多吧?2022-01-24
- luo讲的好2022-01-231
收起评论