您的位置:首页 > 运维架构 > 网站架构

Xen虚拟化架构简介

2015-05-31 18:39 701 查看
Xen虚拟化体系结构

    作为虚拟化客户端启动

        现代操作系统所做的第一件事就是进入保护模式并建立中断处理程序。这以为着当操作系统在Xen虚拟机中启动时,已经进入了保护模式。虽然Xen的中断处理机制已经建立,但大多数中断却不是由Xen自身处理的而是将这些中断传送到任何需要他们的客户端。

        在Xen的客户端,BIOS是不可用的,应为BIOS运行直接访问硬件,这会破坏隔离性原则。Xen中的BIOS被夺走不同的软设备所取代:

            第一,是开始页面(start info page),包含了客户端初始化内核的基本信息;

            第二,共享信息页面(shared info page),它提供了更多的数据并随着客户端运行而更新;

            第三,Xenstore,他用于在其他设备中确定那个虚拟设备可用。

        对于Xen来说,可用的设备不是真实的设备,而是抽象出来的虚拟设备,所有Domain U 仅需要提供一种单一的驱动程序支持一类设备。可以有效的减少为了仿真设备带来的额外开销。

利用特权级限制
4000
操作

    X86体系结构以非常不同的方式处理特权命令。大多数体系结构拥有两种模式:特权模式和非特权模式

    大多数针对IA32体系结构所编写的操作系统,包括Windows NT和很多类UNIX系统,只使用两个特权级。而其中的一个例外就是 OS/2,它将设备驱动程序运行在比内核低的特权级上。另一个例外就是Novell Netware,在较新的版本中它把模块加载到较低的特权级中。X86体系结构的许多不同寻常的特性一样,如果用户牺牲可移值性为代价的话,很可能高效的利用拥有的4个特权级体系结构。应为Window和UNIX都是从非X86平台体系结构开始发展的。所以他们无法使用这一特点。将内核驱逐到Ring 1 ,而Hypervisor运行在Ring
0上,意味着运行在Xen之上的内核不能使用一些特殊的特权操作,由于X86指令集的一些限制,一些事件会在执行失败的情况下不产生任何后果。

    这正是Hypervisor的责任来确保自身不会应用上述类型的任何操作。

超级调用取代特权指令

        应为内核运行在Ring 1 上,而这个个特权级不允许2内核做它想做的所有事情,所以在可控发方法内必须采用某种机制实现相同的功能,解决方法就是应用系统调用, 这是一种通知内核为用户做事的正规机制,系统调用基本上都已相同的方式工作,而不受操作系统平台的影响:

            1.引导变量置寄存器或堆栈

            2.产生一个熟知的中断或者激活一个特别的系统调用指令

            3.作为中断的结果跳转至内核的中断处理程序

            4.在内核特权级中处理系统调用

            5.转入较低特权级并返回。

快速系统调用

            Xen提供了一个快速系统调用接口。客户端内核会为80h中断指定一个处理程序,而这个处理程序是在Hypervisor运行至建立的,并绕过了通常的Xen处理程序。

探索Xen事件模型

            Xen模拟采用的是事件机制。Hypervisor应该做的第一件事是为事件交付注册一个回调函数(callback)。当事件交付给Hypervisor时,各种标志都被置位来指示3哪一个事件出现。事件可以直接来自Xen,也可以由其他客户端引起。就像信号一样,Xen的事件时通过回调函数(callback)交付。

与共享内存进行通信

            应为可以用个共享内存实现诸如管道和消息队列等机制,所以对于要求监控管理程序(Hypervisor)最小化的Xen来说,没有必要提供该除共享内存外的任何东西。

            Xen向内存页提供两种基本的交互域(interdomain)操作:共享和转移。一个共享页类似于POSIX共享内存中页的共享,两个域都能访问其中的内容。页转移是一种粗粒度

            消息传递机制。

拆分设备驱动模型

            Xen驱动模型是Xen理念的一个很好的实例。向PC所能应用的无数设备提供支持,对于Xen来说是一项繁重的工作。Xen授权一个客户端提供硬件支持及Domain 0。

            Xen设备驱动程序通常由四个主要部分组成:

                真实的驱动程序

                被拆分驱动程序的后半部

                共享特权级缓冲区

                被拆分驱动程序的前半部

 

VM的生命周期

    


   

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: