当前位置:首页 > 虚拟化 > 正文

轻量级虚拟化软件(有哪些常用的虚拟化软件)

Xen虚拟机监控与虚拟化技术(二)

优点是操作系统无需任何修改就可以直接运行在虚拟硬件上,但它也有很多缺点,特别是对于目前广泛使用的IA(或x)架构而言。这种方法的缺点也不容忽视。它的设计会导致静默失败(//如果权限级别不够则静默,将直接导致执行失败并且不会产生其他响应),而不是产生一个简单的陷阱供我们使用。另外,x架构中MMU的有效虚拟化也是一件非常困难的事情。这个问题是可以解决的,但同时,他们必须付出操作复杂性增加和系统性能降低的代价。VMwareESXServer[]需要动态重写VMM控制的部分机器代码。其中就是可能需要VMM干预的插入陷阱操作(//在哪里插入陷阱操作直到程序运行才知道,所以需要动态重写相关代码),因为需要执行所有特殊指令不能造成陷阱。捕获并处理,因此这个转换(//动态重写代码)必须应用于整个guestOS内核(导致相关的转换执行和缓存开销)。ESXServer实现中使用的技术是创建一个系统结构(例如页表的ShadowVersion),通过为每次更新提供一个陷阱来解决虚拟页表和物理页表之间的一致性问题。操作(//具体细节请参见ESXServer命令),但是当处理更新密集型操作时(例如创建新的应用程序进程时此方法会带来较高的开销)。另外需要有非常复杂的访问性质。实时和虚拟等实际资源,使guestOS能够更好地支持时间敏感的任务。还可以正确处理TCP超时和RTT估计。提供真实的机器地址以允许guestOS利用超级页面(superpage)或页面着色(pagecoloring)等方法来提高性能。我们提出的虚拟机抽象可以避免全虚拟化带来的各种缺陷。这种虚拟机抽象与底层硬件类似但又不完全相同,因此被称为半虚拟化。(//paravirtualization还是翻译为半虚拟化?以下翻译沿用了半虚拟化方法。虽然该方法需要对guestOS进行一些修改,但可以提高性能。有一点需要注意的是,半虚拟化方法不会修改应用程序二进制接口(ABI),因此用户不会我们对半虚拟化方法的讨论遵循许多规则,无需修改在guestOS上运行的应用程序。最基本的是支持未修改的应用程序二进制文件的实现。即用户不需要修改应用程序即可Xen特定的。因此转换要求我们虚拟化现有标准ABI所需的所有架构功能。支持完整的多应用操作系统非常重要,这需要在单个guestOS实例中虚拟化复杂的服务器配置(//例如,如果在guestOS上配置了ftp服务,则硬件虚拟必须开放相应的端口)半虚拟化必须具有高性能,针对那些不合作的(//这里不合作是指硬件架构不支持共享,所以它是在需要资源隔离的机器架构上进行半虚拟化(比如准确性和性能的风险)注意半虚拟化的方法这些网络服务大多数都是为虚拟机设计的网络服务规模小且不受欢迎(//应用的不受欢迎也意味着Xen的设计目标是最终支持近100个虚拟机运行行业标准的应用程序和服务。由于设计目标如此不同,我们也可能将Denali的设计选项与我们自己的设计规则结合起来。为了让讨论变得有用,首先,Denali不需要关注现有的ABI,因此他们的VM接口忽略了相关的架构特性。例如,Denali并不完全支持x分段机制,但在NetBSDLinux和WindowsXP等操作系统中却支持。它已在ABI中被提出并被广泛使用。例如,它经常被用在线程库中。

Linux命名空间到底是什么?我从来不理解这个抽象概念。看了别人的分析后,我写道:
从Linux内核版本2.6.24开始,Linux支持6种不同的命名空间类型。(具体不记得了)
命名空间是一种轻量级的虚拟化方法。
传统的虚拟化软件虚拟了很多不同的功能。/>通过给出命名空间;进程与进程之间是不可见的。
命名空间相当于容器。
命名空间本质上创建了系统的不同视图。