写在前面
网络虚拟化曾经只是内核虚拟化功能开发者才会关注的技术。但随着云计算模式和云原生概念的推广,云上业务的部署形态都已转向了虚拟机和容器,而两者都依赖网络虚拟化技术提供高性能网络功能,因此虚拟网络已经是云环境下的主流网络形态。而云上的虚拟机和容器对网络虚拟化技术的易用性、功能和性能都提出了更高的要求。
对于云上环境的网络基础设施开发者来说,网络虚拟化已经成为了一种必须掌握的技术。但在学习网络虚拟化技术时,笔者没能找到一个能够完整介绍网络虚拟化技术类型、原理和实现的信息源,特别是中文资料。因此,笔者计划将学习网络虚拟化技术过程中收集到的信息总结一下,形成一系列介绍各种网络虚拟化技术的文章,供后续的学习和工作中参考。每项技术都会从笔者最关心的问题出发,介绍相关知识并尝试回答这些问题。
本文是其中的第一篇,介绍最经典的网络虚拟化技术——QEMU虚拟网卡。
问题
- 使用QEMU虚拟网卡时,guest系统中是如何使用网卡和网络的?是否感知虚拟化设备的存在,是否需要和运行在物理机上时使用不同的配置?是否需要修改内核?
- 在guest系统中如何感知和加载网卡?QEMU是如何实现来支持这种功能的?
- 在guest系统中如何通过网卡收发报文?QEMU是如何实现来支持这种功能的?
- guest系统收发的报文,在QEMU和host系统中是如何流转的?通过哪些环节实现guest和host、guest和外部网络间的交互?
- 用QEMU虚拟网卡方式支持虚拟机网络功能有哪些优点和不足?
QEMU
QEMU是LINUX平台上广泛应用的虚拟机管理器(VMM),它能够模拟多种硬件架构和设备,支持模拟运行多种不同的操作系统。其中,QEMU就支持了对特定网卡设备(例如e1000)的全虚拟化,使得guest操作系统和内核不需要做任何修改就能使用原有的网卡驱动完成网络操作。

本文详细解析了QEMU如何在虚拟环境中全虚拟化网卡,使guest系统无缝使用网络,同时探讨了QEMU的网络模拟原理、报文收发流程及后端网络模式。重点介绍了QEMU-KVM架构,以及其优点与性能限制。
1151

被折叠的 条评论
为什么被折叠?



