半虚拟化,支持通过 http ftp nfs 方式进行安装。
全虚拟化,支持通过 iso文件 光驱 网络pxe 安装。
半虚拟化的意思是需要修改被虚拟系统的内核,以实现系统能被完美的虚拟在Xen上面。完全虚拟化则是不需要修改系统内核则可以直接运行在Xen上面。
PV vs. FV
PV(Para-Vritralization)和FV(Full-Vritralization)的差别,主要以guest OS的硬件仿真程度做区分。
FV:FV是一般较常看到的作法,所有的guest OS完全不会看到实际的硬件为何,只能使用由Supervisor所提供的所有虚拟硬件,因此,在这种机制下,guest OS动作的性能一定会大受虚拟接口的影响。另外还有一个特点,就是因为完全仿真的关系,不支持新的技术,连ACPI开关机的机制都无法使用,也就是当使用者在FV的guest OS下,若直接触动关机的按钮(这里的按钮是由VMM所提供的,不是主机上的)会直接断电,而不会进行关机程序。
PV:至于PV的作法,有鉴于一般Virtual Machine工具都是以完全仿真的方式,造成性能上的降低,因此,XEN在设计上,希望各操作系统可以在开发时就已经将XEN的技术包括进去,这样在使用时,就可以用局部仿真的方式,让操作系统可以直接使用到硬件中的CPU、内存等,而不需要通过XEN做仿真的操作。
这样,若硬件都是由Virtual Machine仿真出来的,性能自然会变得比较慢,所以XEN所主推的概念就是,当操作系统默认支持XEN时就可以通过XEN的机制,直接使用到底层的硬件,而不是每个OS都要通过Hypervisor的接口,性能上就可大为提高。
在PV与FV的安装上,对CPU的要求是有差异的。以PV而言,因为OS原本就支持XEN,所以不需要经过特殊的处理步骤,因此,对CPU来于,没有特殊的要求,基本上都可以使用。
但FV就不同,因为FV模式是以完全仿真的方式进行,所以CPU必须要特别将此功能加入到CPU的核心中,因此,CPU是有特殊需求的。在Intel与AMD中针对Virtual Machine所加入的功能名称不同,分别为Intel VT与AMD-V。
半虚拟化与全虚拟化的区别:
全虚拟化:guest系统每一次对于硬件的请求,都会由hypervisor(系统管理程序)接管,并转换成hypervisor的代码,由hypervisor负责对最终硬件进行操作。好处是guest系统每一次对于物理硬件的请求都会变为对hypervisor管理的虚拟硬件的请求,很好的隔离了guest系统与物理系统,当物理系统进行升级或者硬件更换时,无需修改guest系统。坏处则是每一指令转化会使得资源消耗过多。
半虚拟化:共享当前系统的硬件驱动,只负责guest系统请求的资源调度。好处是避免了对硬件请求的指令重写,提高了系统性能,有效的利用资源。坏处是每一次硬件系统升级要对guest系统改写。
半虚拟化工作方式:
半虚拟化由domain zero(零域)和hypervisor共同管理,零域负责guest系统的管理,类似于管理员的角色,hypervisor负责与底层硬件交互。
原生式和宿主式:
半虚拟化又分为原生式和宿主式,宿主式最典型的是vmware,vmware运行于一个安装好的操作系统中,并对安装在其上面的其他软件系统进行统一管理,由于宿主操作系统同时可能要运行其他的程序,导致虚拟系统效率不够稳定,优点则是安装方便。原生式比如Xen,由零域对其他guest系统进行管理,由于这种方式不需要一个宿主操作系统,所以原生式与硬件之间的管理层可以更轻薄。原生式类似于安装一个新的操作系统,宿主式类似于安装一个软件。