科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux中虚拟化方法、技术及实现(5)

Linux中虚拟化方法、技术及实现(5)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

虚拟化的含义丰富,应用广泛。目前虚拟化技术主要关注于服务器虚拟化,即在一个宿主计算机上提供多个独立操作系统。本文将探索虚拟化背后的思想,然后讨论实现虚拟化的一些技术

作者:IBM 来源:IBM 2007年9月10日

关键字: 操作系统 虚拟化 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

Linux-VServer(操作系统级虚拟化)

Linux-VServer 是一个操作系统级虚拟化解决方案。Linux-VServer 对 Linux 内核进行虚拟化,这样多个用户空间环境 —— 又称为 Virtual Private Server(VPS) —— 就可以单独运行,而不需要互相了解。Linux-VServer 通过修改 Linux 内核实现用户空间的隔离。

要将各个用户空间与其他用户空间隔离开来,就需要从上下文的概念入手。上下文 是给定 VPS 进程使用的一个容器,这样通过诸如 ps 之类的工具就可以了解 VPS 的进程。内核为最初的引导定义了一个缺省的上下文。另外管理端还能查看所有的上下文(所有的执行进程)。正如您可能猜到的那样,内核和内部数据结构也需要进行修改来支持这种虚拟化方法。

Linux-VServer 还使用了一种 chroot 格式来为每个 VPS 隔离 root 目录。虽然 chroot 允许指定新 root 目录,但还是需要其他一些功能(称为 Chroot-Barrier)来限制 VPS 脱离其隔离的 root 目录回到上级目录。给定一个隔离的 root 目录之后,每个 VPS 就可以拥有自己的用户列表和 root 密码。

2.4 和 2.6 版本的 Linux 内核支持 Linux-VServer,它可以运行于很多平台之上,包括 x86、x86-64、SPARC、MIPS、ARM 和 PowerPC。

OpenVZ(操作系统级虚拟化)

OpenVZ 是另外一个操作系统级的虚拟化解决方案,它与 Linux-VServer 类似,不过也有一些有趣的区别。OpenVZ 是一个支持虚拟化的内核(修改过的),可以支持用户空间隔离、VPS 和一组用户管理工具。例如,您可以简单地从命令行创建一个新的 VPS:

$ vzctl create 42 --ostemplate fedora-core-4
Creating VPS private area
VPS private area was created
$ vzctl start 42
Starting VPS ...
VPS is mounted

清单 1. 从命令行创建 VPS

另外还可以使用 vzlist 命令显示目前创建的 VPS,该命令与标准 Linux ps 命令类似。为了对进程进行调度,OpenVZ 还包括了两级 CPU 调度器。首先,调度器确定哪个 VPS 应该获得 CPU。在这个步骤完成之后,第二级调度器会根据给定的标准 Linux 优先级挑选进程来执行。

OpenVZ 还包括了所谓的 beancounters。beancounter 包括很多参数,这些参数为给定的 VPS 定义了资源分配。这为 VPS 提供了一定层次上的控制,定义了有多少内存可用,有多少进程间通信(IPC)对象可用等。

OpenVZ 的一个特性是检查点功能和将 VPS 从一个物理服务器迁移到其他物理服务器上的能力。检查点 意味着正在运行的 VPS 的状态被冻结并存储到一个文件中。然后可以将这个文件迁移到一个新服务器上并加以还原以使 VPS 恢复运行。OpenVZ 支持很多硬件体系结构,包括 x86、x86-64 和 PowerPC。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章