VPS之虚拟化技术Xen介绍
VPS(Virtual Private Server)技术,是一种将一台物理服务器分成几个虚拟云服务器的技术。虚拟化成功提高了资源的利用率,解决了硬件和系统之间的依赖性。
不少用户在选购VPS动态拨号服务器时常常会有疑问,为什么相同配置条件下VPS的价格却有区别?这里就要提到一个专有名词“虚拟化技术”:实现VPS的技术分为虚拟化技术和容器技术,专门对Xen这种虚拟化技术进行一个详细的讲解。
Xen
Xen是一个开放源代码的Para-virtualizing虚拟机。
Para既有并列也有半的意思,因此国内翻译过来也会把这种虚拟化叫做半虚拟化。
小科普:什么是虚拟机?
虚拟机(Virtual Machine)是一种通过软件模拟出来的具有一整套硬件系统功能、在一个完全隔离的环境中的完整计算机系统。创建虚拟机时要把实体机的部分内存和硬盘容量分割出来当作虚拟机的内存与硬盘容量,每个虚拟机都拥有各自独立的硬盘、CMOS跟操作系统,操作起来与实体机的操作一致。
Xen虚拟机可以在多个物理服务器之间实时迁移。
根据笔者自己查阅文献后的总结,会发现Xen比百科中的寥寥数笔复杂得多。
Xen出现的时候还没有硬件辅助虚拟化技术,因此要使用Xen的代价是要修改操作系统内核,好让操作系统在遇到指令时不会去调用CPU指令工作是直接调用hypercall。Windows操作系统内核是无法修改的,但有支持Xen的Linux版本。
服务器安装Linux后再装Xen,此时会修改Linux系统内核,改完重启服务器后工作系统就不再是Linux而是Xen的Hypercall,图中的Host Os是之前的Linux,本质上是一个虚拟机。
假如再创建Guest Os就会出现在图中Host Os右侧,又被称为Paravirtualized Os。
在CSDN中把Xen分为Xen Para-virtualized和Xen hvm两种,上面提到过Xen不是一个真正的虚拟机而是运作自己内核的一种半虚拟化技术,尽管Xen Para-virtualized因为Windows系统内核无法被修改而只支持Linux,但Xen hvm因为在内核调用方面不完全依赖服务器内核因此支持Windows系统(Xen hvm是全虚拟化,可虚拟所有常见操作系统,需要CPU指令支持)。