10月14日,业内资深云计算专家在信服云《云集技术学社》系列直播课上进行了《深信服aSV服务器虚拟化功能及原理》的分享,介绍了服务器虚拟化的基本原理和深信服aSV服务器虚拟化特色技术。以下是他的分享内容摘要。
看点一
服务器虚拟化的发展
从上世纪60年代开始,服务器虚拟化经历了60多年的发展,也有着十分明显的代际变化。
第一代是基于二进制翻译的全虚拟化,它的典型应用是早期的VMware Workstation。核心是通过二进制发育的方式实现虚拟机的复用。
第二代是半虚拟化,它的典型应用是Xen,通过修改操作系统内核,替换掉不能虚拟化的指令,通过超级调用(Hypercall)直接和底层的虚拟化层Hypervisor来通讯,Hypervisor 同时也提供了超级调用接口来满足其他关键内核操作,比如内存管理、中断和时间保持。这种做法省去了全虚拟化中的捕获和模拟,大大提高了效率。
第三代是硬件辅助虚拟化,核心是在裸金属上安装VMware,在上面跑GuestOS指令。有别于上两代的是,它不用修改任何的GuestOS指令,可以直接运行。
看点二
服务器虚拟化基本原理
01
深信服目前应用的硬件辅助虚拟化是基于Qemu-KVM实现的。
KVM是内核的一个驱动(kvm.ko),工作在内核态(CPU Ring0),实际上是Linux内核一个标准组件。KVM 内核模块收到该请求后,它先做一些准备工作,比如将vCPU上下文加载到 VMCS (Virtual Machine Control Structure)等,然后驱动 CPU 进入 VMX Non-Root 模式,开始执行客户机代码。
Qemu是一个应用程序,工作在用户态(User mode 、CPU Ring3),提供外设的模拟、vCPU模拟、主控逻辑、IO收发等,当GuestOS 需要发送IO请求、需要发送网络包的时候,都需要调用VM_Exit让Qemu协助实现。它能够支持CPU 和 memory 超分、半虚拟化 I/O、热插拔、对称多处理、实时迁移、PCI 设备直接分配和单根 I/O 虚拟化、内核同页合并、NUMA等多项功能。使用Qemu的云厂商在这些功能配置上都是类似的。
使用Qemu-KVM有三种运行模式:
第一种是客户模式(Guest Ring0~3),可以简单理解
看点一
服务器虚拟化的发展
从上世纪60年代开始,服务器虚拟化经历了60多年的发展,也有着十分明显的代际变化。
第一代是基于二进制翻译的全虚拟化,它的典型应用是早期的VMware Workstation。核心是通过二进制发育的方式实现虚拟机的复用。
第二代是半虚拟化,它的典型应用是Xen,通过修改操作系统内核,替换掉不能虚拟化的指令,通过超级调用(Hypercall)直接和底层的虚拟化层Hypervisor来通讯,Hypervisor 同时也提供了超级调用接口来满足其他关键内核操作,比如内存管理、中断和时间保持。这种做法省去了全虚拟化中的捕获和模拟,大大提高了效率。
第三代是硬件辅助虚拟化,核心是在裸金属上安装VMware,在上面跑GuestOS指令。有别于上两代的是,它不用修改任何的GuestOS指令,可以直接运行。
看点二
服务器虚拟化基本原理
01
Qemu-KVM基本原理介绍
深信服目前应用的硬件辅助虚拟化是基于Qemu-KVM实现的。
KVM是内核的一个驱动(kvm.ko),工作在内核态(CPU Ring0),实际上是Linux内核一个标准组件。KVM 内核模块收到该请求后,它先做一些准备工作,比如将vCPU上下文加载到 VMCS (Virtual Machine Control Structure)等,然后驱动 CPU 进入 VMX Non-Root 模式,开始执行客户机代码。
Qemu是一个应用程序,工作在用户态(User mode 、CPU Ring3),提供外设的模拟、vCPU模拟、主控逻辑、IO收发等,当GuestOS 需要发送IO请求、需要发送网络包的时候,都需要调用VM_Exit让Qemu协助实现。它能够支持CPU 和 memory 超分、半虚拟化 I/O、热插拔、对称多处理、实时迁移、PCI 设备直接分配和单根 I/O 虚拟化、内核同页合并、NUMA等多项功能。使用Qemu的云厂商在这些功能配置上都是类似的。
使用Qemu-KVM有三种运行模式:
第一种是客户模式(Guest Ring0~3),可以简单理解